@charset "UTF-8";
/*
 * Base Group
 */
.lh-tight {
  line-height: 1.2;
}

.lh-normal {
  line-height: 1.5;
}

.lh-loose {
  line-height: 1.8;
}

.ls-tight {
  letter-spacing: -0.04em;
}

.ls-normal {
  letter-spacing: 0em;
}

.ls-loose {
  letter-spacing: 0.04em;
}

/*
font size settings
$font-sizes:最小値と最大値を指定
記入例：@include font-size(mapname);
*/
/*
 * Base Group
 */
:root {
  --spacing-scale: 1;
  --color-accent: #b59a5e;
  --color-accentDark: #9a8049;
}

@media (max-width: 768px) {
  :root {
    --spacing-scale: 0.65;
  }
}
html {
  font-size: 16px;
}
@media screen and (max-width: 1240px) {
  html {
    font-size: 14px;
  }
}
@media screen and (max-width: 768px) {
  html {
    font-size: 12px;
  }
}
@media screen and (max-width: 479px) {
  html {
    font-size: 12px;
  }
}

body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Yu Gothic", "游ゴシック", "Meiryo", "メイリオ", sans-serif;
  line-height: 1.8;
  -webkit-text-size-adjust: 100%;
  color: #444;
  font-size: 1rem;
  background-color: var(--color-background);
}

main {
  position: relative;
}

a {
  transition: all 0.3s;
  text-decoration: none;
}
a:link, a:visited {
  color: var(--color-link);
}
a:hover, a:active {
  color: color-mix(in srgb, var(--color-link) 80%, black);
}

img {
  max-width: 100%;
  height: auto;
}

/*
 * Layout Group
 */
/*
 * Base Group
 */
.ly_header_inner {
  max-width: 1600px;
  margin: 0 auto;
}

.ly_cont {
  background-color: #fff;
}

.ly_contHidden {
  overflow: hidden;
  background-color: #fff;
}

.ly_cont_inner {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
}
@media screen and (max-width: 1240px) {
  .ly_cont_inner {
    padding-right: 4%;
    padding-left: 4%;
  }
}

.ly_footer {
  position: relative;
}

.ly_footer_inner {
  max-width: 1200px;
  margin: 0 auto;
}

/*
 * Module Group - Block
 */
/*
 * Base Group
 */
.bl_header {
  width: 100%;
  padding: 0 40px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10000;
  opacity: 1;
}
@media screen and (max-width: 479px) {
  .bl_header {
    padding-left: 20px;
  }
}
.bl_header.__fixed {
  background: var(--color-warmWhite);
  position: fixed;
  top: 0;
  opacity: 1;
  transform: translateY(-100%);
  /* 初期位置：上に隠れた状態 */
  animation: slideDown 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}
.bl_header.__fixed.__hide {
  animation: slideUp 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}
.bl_header.__fixed .bl_header_list_link {
  color: var(--color-link);
}
.bl_header.__fixed .bl_header_list_link:link, .bl_header.__fixed .bl_header_list_link:visited {
  color: var(--color-link);
}
.bl_header.__fixed .bl_header_list_link:hover, .bl_header.__fixed .bl_header_list_link:active {
  color: color-mix(in srgb, var(--color-link) 80%, var(--color-link));
}
.bl_header.__fixed .bl_header_list_link:after {
  content: "";
  background: var(--color-link);
}
.bl_header.__fixed .bl_header_cta_link {
  border-color: var(--color-link);
}
.bl_header.__fixed .bl_header_cta_link:link, .bl_header.__fixed .bl_header_cta_link:visited {
  color: var(--color-link);
}
.bl_header.__fixed .bl_header_cta_link:hover, .bl_header.__fixed .bl_header_cta_link:active {
  color: var(--color-white);
  background: var(--color-darkGray);
}
.bl_header.__fixed .bl_header_cta_link.__white {
  color: var(--color-white);
  border: 1px solid hsla(0, 0%, 100%, 0.2);
  background: var(--color-primary);
}
.bl_header.__fixed .bl_header_cta_link.__white:hover, .bl_header.__fixed .bl_header_cta_link.__white:active {
  background: var(--color-darkGray);
}

@keyframes slideUp {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-100%);
  }
}
@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
.bl_header_inner {
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .bl_header_inner {
    height: 70px;
  }
}

.bl_header_logo {
  flex-shrink: 0;
  line-height: 0;
}
.bl_header_logo img {
  height: 50px;
  width: auto;
  display: block;
}
@media screen and (max-width: 768px) {
  .bl_header_logo img {
    height: 42px;
  }
}
@media screen and (max-width: 479px) {
  .bl_header_logo img {
    height: 36px;
  }
}

body.index .bl_header:not(.__fixed) .bl_header_logo img {
  filter: brightness(0) invert(1);
}

.bl_header_menu {
  width: 100%;
  display: flex;
  align-items: center;
  /* ナビをCTA側（右）へ寄せる */
  justify-content: flex-end;
}
@media screen and (max-width: 768px) {
  .bl_header_menu {
    display: none;
  }
}

.bl_header_list {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-left: 44px;
}
.bl_header_list.__lower .bl_header_list_link {
  color: var(--color-link);
}
.bl_header_list.__lower .bl_header_list_link:link, .bl_header_list.__lower .bl_header_list_link:visited {
  color: var(--color-link);
}
.bl_header_list.__lower .bl_header_list_link:hover, .bl_header_list.__lower .bl_header_list_link:active {
  color: color-mix(in srgb, var(--color-link) 80%, var(--color-link));
}
.bl_header_list.__lower .bl_header_list_link:after {
  content: "";
  background: var(--color-link);
}

.bl_header_list_link {
  position: relative;
  font-size: var(--fontsize-s);
  color: var(--color-headerNav);
}
.bl_header_list_link:link, .bl_header_list_link:visited {
  color: var(--color-headerNav);
}
.bl_header_list_link:hover, .bl_header_list_link:active {
  color: color-mix(in srgb, var(--color-headerNav) 80%, var(--color-warmWhite));
}
.bl_header_list_link:after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 100%;
  background: var(--color-headerNav);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -12px;
  transition: top 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  opacity: 0;
}
.bl_header_list_link:hover:after {
  top: -8px;
  opacity: 1;
}

.bl_header_cta {
  display: flex;
  align-items: center;
  gap: 8px;
  /* 右寄せナビとCTAボタンの間隔 */
  margin-left: 40px;
}
@media screen and (max-width: 768px) {
  .bl_header_cta {
    display: none;
  }
}
.bl_header_cta.__lower .bl_header_cta_link {
  border-color: var(--color-link);
}
.bl_header_cta.__lower .bl_header_cta_link:link, .bl_header_cta.__lower .bl_header_cta_link:visited {
  color: var(--color-link);
}
.bl_header_cta.__lower .bl_header_cta_link:hover, .bl_header_cta.__lower .bl_header_cta_link:active {
  color: var(--color-white);
  background: var(--color-darkGray);
}
.bl_header_cta.__lower .bl_header_cta_link.__white {
  color: var(--color-white);
  border: 1px solid hsla(0, 0%, 100%, 0.2);
  background: var(--color-primary);
}
.bl_header_cta.__lower .bl_header_cta_link.__white:hover, .bl_header_cta.__lower .bl_header_cta_link.__white:active {
  background: var(--color-darkGray);
}

.bl_header_cta_link {
  font-size: var(--fontsize-s);
  width: auto;
  padding: 0 22px;
  height: 36px;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-white);
  border-radius: 18px;
}
.bl_header_cta_link:link, .bl_header_cta_link:visited {
  color: var(--color-headerNav);
}
.bl_header_cta_link:hover, .bl_header_cta_link:active {
  color: var(--color-link);
  background: var(--color-white);
}
.bl_header_cta_link.__white {
  border: 1px solid hsla(0, 0%, 100%, 0.2);
  background: hsla(0, 0%, 100%, 0.2);
}
.bl_header_cta_link.__white:hover, .bl_header_cta_link.__white:active {
  background: var(--color-white);
}

/*
 * Base Group
 */
.bl_footer {
  position: relative;
}

.bl_footer_main {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.bl_footer_logo {
  position: relative;
  max-width: 300px;
}

.bl_footer_link {
  line-height: 0;
}

.bl_footer_logo_txt {
  margin-top: 1em;
  font-size: var(--fontsize-m);
  letter-spacing: 0.04em;
  font-family: "Shippori Mincho", "游明朝", "YuMincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}

.bl_footer_nav {
  position: relative;
  margin-top: 2em;
}

.bl_footer_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5em 1.75em;
}

.bl_footer_list_item {
  margin-top: 0;
}

.bl_footer_list_link {
  font-size: var(--fontsize-s);
  font-weight: 500;
  line-height: 2.4;
}

.bl_footer_lower {
  border-top: 1px solid var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.bl_footer_lower_left {
  display: flex;
  align-items: center;
  gap: 2em;
}

.bl_footer_lower_left_link {
  font-size: var(--fontsize-s);
}

.bl_footer_copyright {
  font-size: var(--fontsize-s);
  color: var(--color-gray);
}

/*
 * Base Group
 */
.bl_container {
  position: relative;
}
.bl_container.__slider {
  overflow: hidden;
}

.bl_container_inner-middle {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
}
@media screen and (max-width: 1240px) {
  .bl_container_inner-middle {
    padding-right: 4%;
    padding-left: 4%;
  }
}
.bl_container_inner-middle.__col2 {
  position: relative;
  display: flex;
  align-items: flex-start;
}
.bl_container_inner-large {
  position: relative;
  width: 86.666%;
  max-width: 1536px;
  margin-left: auto;
  margin-right: auto;
}
.bl_container_inner-large.__col2 {
  position: relative;
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .bl_container_inner-large.__col2.__shop {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  .bl_container_inner-large.__col2.__shop .bl_container_toc_side {
    position: relative;
    display: block;
    width: 100%;
    top: auto;
    margin-bottom: 60px;
  }
}
@media screen and (max-width: 768px) {
  .bl_container_inner-large.__col2.__shop .bl_container_toc_list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px 0;
  }
}
@media screen and (max-width: 768px) {
  .bl_container_inner-large.__col2.__shop .bl_container_toc_item {
    width: 50%;
    margin-top: 0;
  }
}

.bl_container_toc_side {
  width: 25%;
  position: sticky;
  top: 120px;
}
@media screen and (max-width: 768px) {
  .bl_container_toc_side {
    display: none;
  }
}

.bl_container_toc_list {
  display: flex;
  flex-direction: column;
}

.bl_container_toc_item:not(:first-child) {
  margin-top: 1.5625rem;
}

.bl_container_toc_link {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.bl_container_toc_link .icon {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  font-size: var(--fontsize-s);
  border-radius: 50%;
  background: var(--color-primary);
  transition: background 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.bl_container_toc_link .txt {
  padding-bottom: 0.15em;
  padding-left: 0.75em;
  line-height: 1;
  font-size: var(--fontsize-s);
}
.bl_container_toc_link:hover .icon {
  background-color: var(--color-darkGray);
}

.bl_container_toc_main {
  width: 75%;
  max-width: 1152px;
}
@media screen and (max-width: 768px) {
  .bl_container_toc_main {
    width: 100%;
  }
}

/*
 * Base Group
 */
.bl_parallax {
  overflow: hidden;
}

.bl_parallax_band {
  height: 42.96875vw;
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--color-white);
  clip-path: inset(0);
}
@media screen and (max-width: 768px) {
  .bl_parallax_band {
    padding-inline: 6.4vw;
  }
}
@media screen and (max-width: 479px) {
  .bl_parallax_band {
    height: 80vw;
    min-height: initial;
  }
}
.bl_parallax_band:before {
  content: "";
  width: 100%;
  height: 100vh;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -2;
}
.bl_parallax_band.__01:before {
  background-image: url(../images/index/bg_02.jpg);
}
.bl_parallax_band.__02:before {
  background-image: url(../images/index/bg_02.jpg);
}

.bl_parallax_full {
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--color-white);
  clip-path: inset(0);
}
.bl_parallax_full:before {
  content: "";
  width: 100%;
  height: 100vh;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -2;
}
@media screen and (max-width: 768px) {
  .bl_parallax_full.__concept {
    min-height: auto;
    align-items: flex-start;
    padding: 80px 6.666vw;
  }
}
.bl_parallax_full.__concept:before {
  background-image: url(../images/about/concept_bg.jpg);
}

/*
 * Base Group
 */
.bl_hero-index {
  position: relative;
  width: 100%;
  height: 100dvh;
  overflow: hidden;
  background-color: var(--color-primary);
}
.bl_hero-index .bl_hero_slider {
  position: absolute;
  inset: 0;
  z-index: 0;
  height: 100%;
}
.bl_hero-index .bl_hero_slider .splide__track,
.bl_hero-index .bl_hero_slider .splide__list {
  height: 100%;
}
.bl_hero-index .bl_hero_slider .splide__slide {
  height: 100%;
}
.bl_hero-index .bl_hero_slider .splide__slide > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.bl_hero-index:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(26, 42, 34, 0.25) 0%, rgba(26, 42, 34, 0.6) 100%);
  z-index: 1;
}
.bl_hero-index .bl_hero_catch {
  position: absolute;
  top: 50%;
  left: clamp(24px, 6vw, 100px);
  transform: translateY(-50%);
  z-index: 2;
  color: var(--color-white);
}
@media screen and (max-width: 479px) {
  .bl_hero-index .bl_hero_catch {
    left: 6.666vw;
    right: 6.666vw;
  }
}
.bl_hero-index .bl_hero_ttl {
  font-size: clamp(2.2rem, 3.6vw, 3.25rem);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.bl_hero-index .bl_hero_sub {
  margin-top: 1.4em;
  font-size: var(--fontsize-l);
  font-weight: 500;
  letter-spacing: 0.08em;
}
.bl_hero-01 {
  position: relative;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .bl_hero-01 {
    display: block;
  }
}
.bl_hero-01 .bl_hero_image {
  position: relative;
  width: 50vw;
  height: 100dvh;
}
.bl_hero-01 .bl_hero_image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 768px) {
  .bl_hero-01 .bl_hero_image {
    /* 100vwはスクロールバー幅を含み横スクロールの原因になるため、親(全幅)基準の100%に */
    width: 100%;
    height: 120vw;
  }
}
.bl_hero-01 .bl_hero_body {
  position: relative;
  display: flex;
  flex-direction: column;
  align-content: flex-start;
  justify-content: center;
  width: 50vw;
  height: 100dvh;
  padding: 0 6.666vw;
  color: var(--color-black);
}
@media screen and (max-width: 768px) {
  .bl_hero-01 .bl_hero_body {
    width: 100%;
    height: auto;
    padding: 60px 6.666vw 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}
.bl_hero-01 .bl_hero_enttl {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  font-size: var(--fontsize-s);
  font-weight: 500;
  letter-spacing: 0.16em;
  color: var(--color-accent);
  margin-bottom: 1em;
}
.bl_hero-01 .bl_hero_ttl {
  font-size: var(--fontsize-xl);
  font-weight: 500;
}
.bl_hero-01 .bl_hero_txt {
  font-size: var(--fontsize-s);
  margin-top: 2em;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.bl_hero-02 {
  position: relative;
}
.bl_hero-02 .bl_hero_enttl {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  font-size: var(--fontsize-60);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.15;
}
.bl_hero-02 .bl_hero_ttl {
  font-size: var(--fontsize-s);
  letter-spacing: 0.05em;
  line-height: 1.3;
  font-weight: 400;
}
.bl_hero-02 .bl_hero_txt {
  margin-top: 2.625rem;
  letter-spacing: 0.05em;
  line-height: 2.3;
}
.bl_hero-03 {
  position: relative;
  height: 39.375vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .bl_hero-03 {
    height: 100vw;
  }
}
.bl_hero-03 .bl_hero_body {
  color: var(--color-white);
  text-align: center;
}
.bl_hero-03 .bl_hero_enttl {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  font-size: var(--fontsize-xxl);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
.bl_hero-03 .bl_hero_ttl {
  font-size: var(--fontsize-s);
  letter-spacing: 0.05em;
  line-height: 1.3;
  font-weight: 400;
}
.bl_hero-03 .bl_hero_txt {
  margin-top: 2.625rem;
  letter-spacing: 0.05em;
  line-height: 2.3;
}
.bl_hero-03.__list {
  background-image: url(../images/list/hero_bg.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/*
 * Base Group
 */
.bl_about-index {
  position: relative;
  padding: 19.79166vw 0 28.95833vw;
}
@media screen and (max-width: 768px) {
  .bl_about-index {
    padding: 130px 0 105px;
  }
}
.bl_about-index .bl_about_main {
  margin-left: 36vw;
  max-width: 34vw;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .bl_about-index .bl_about_main {
    width: 86.666%;
    max-width: 458px;
    margin: 0 auto;
    padding: 50px 0 70px;
  }
}
.bl_about-index .bl_about_enttl {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  display: block;
  font-size: var(--fontsize-s);
  font-weight: 500;
  letter-spacing: 0.16em;
  color: var(--color-accent);
  margin-bottom: 1em;
}
.bl_about-index .bl_about_ttl {
  font-size: var(--fontsize-xl);
}
.bl_about-index .bl_about_txt {
  margin-top: 1.5625em;
}
.bl_about-index .bl_about_txt > p {
  line-height: 2.4;
}
.bl_about-index .bl_about_btn {
  margin-top: 70px;
}
@media screen and (max-width: 768px) {
  .bl_about-index .bl_about_images {
    display: flex;
    justify-content: space-between;
  }
}
.bl_about-index .bl_about_image {
  position: absolute;
  z-index: 0;
}
@media screen and (max-width: 768px) {
  .bl_about-index .bl_about_image {
    position: relative;
  }
}
.bl_about-index .bl_about_image.__01 {
  width: 29.1666vw;
  top: 12.6vw;
  left: 0;
  aspect-ratio: 2/3;
  overflow: hidden;
}
.bl_about-index .bl_about_image.__01 > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 768px) {
  .bl_about-index .bl_about_image.__01 {
    width: 56.41vw;
    top: auto;
    left: auto;
    aspect-ratio: auto;
  }
  .bl_about-index .bl_about_image.__01 > img {
    height: auto;
  }
}
.bl_about-index .bl_about_image.__02 {
  width: 21.145vw;
  top: 7.8125vw;
  right: 0;
}
@media screen and (max-width: 768px) {
  .bl_about-index .bl_about_image.__02 {
    width: 34.615vw;
    margin-top: 31.53vw;
    top: auto;
    right: auto;
  }
}
.bl_about-index .bl_about_image.__03 {
  width: 21.04166vw;
  top: 37.375vw;
  right: 7vw;
}
@media screen and (max-width: 768px) {
  .bl_about-index .bl_about_image.__03 {
    width: 54.615vw;
    top: auto;
    right: auto;
    margin-top: 20px;
    margin-left: auto;
  }
}
.bl_about-index .bl_about_image.__04 {
  width: 15.41666vw;
  top: 64vw;
  right: 5.34vw;
}
@media screen and (max-width: 768px) {
  .bl_about-index .bl_about_image.__04 {
    width: 40vw;
    top: auto;
    right: auto;
    margin-top: 30px;
    margin-left: 0;
  }
}

/*
 * Base Group
 */
.bl_recommend {
  position: relative;
}

.bl_recommend_slider {
  overflow: visible;
  margin-top: 30px;
}
.bl_recommend_slider .splide__track {
  overflow: visible;
}
.bl_recommend_slider .js_splide_slide:hover .js_splide_img img {
  transform: scaleX(1.1) scaleY(1.1);
  filter: brightness(1.1);
}
.bl_recommend_slider .js_splide_slide:hover .js_splide_txt {
  opacity: 0.5;
}
.bl_recommend_slider .js_splide_img {
  overflow: hidden;
  aspect-ratio: 4/3;
}
.bl_recommend_slider .js_splide_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1), filter 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.bl_recommend_slider .js_splide_txt {
  margin-top: 1.066rem;
  transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.bl_recommend_slider .js_splide_txt .ttl {
  font-size: var(--fontsize-l);
  line-height: 1.88;
}
.bl_recommend_slider .js_splide_txt .txt {
  font-size: var(--fontsize-s);
}
.bl_recommend_slider .splide__pagination {
  display: flex;
  position: relative;
  bottom: auto;
  width: calc(100% - 150px);
  height: 2px;
  background: var(--color-grayLight);
  border-radius: 2px;
  padding: 0;
  gap: 0;
  margin-top: 1.5rem;
  list-style: none;
  counter-reset: none;
  overflow: hidden;
}
.bl_recommend_slider .splide__pagination li {
  display: none;
}
.bl_recommend_slider .splide__pagination__bar {
  position: absolute;
  left: 0;
  display: block;
  height: 2px;
  background: #333;
  border-radius: 2px;
  transition: width 400ms ease;
}
.bl_recommend_slider .splide__arrows {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: -20px;
}
.bl_recommend_slider .splide__arrow {
  position: static;
  transform: none;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid #ccc;
  border-radius: 50%;
  opacity: 1;
  transition: background 0.4s cubic-bezier(0.215, 0.61, 0.355, 1), fill 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.bl_recommend_slider .splide__arrow:hover {
  background: var(--color-primary);
}
.bl_recommend_slider .splide__arrow:hover svg {
  fill: var(--color-white);
}
.bl_recommend_slider .splide__arrow:disabled {
  opacity: 0.3;
}
.bl_recommend_slider .splide__arrow svg {
  width: 16px;
  height: 16px;
}
.bl_recommend_slider .splide-controller {
  padding-top: 1rem;
  /* 矢印の下に余白（終端のJS生成要素のため後続要素が無く、例外的に下方向padding） */
  padding-bottom: 2.5rem;
}

/*
 * Base Group
 */
.bl_warmWhite {
  position: relative;
}

.bl_points {
  position: relative;
  padding-top: 46px;
}
@media screen and (max-width: 768px) {
  .bl_points {
    padding-top: 37px;
  }
}
@media screen and (max-width: 479px) {
  .bl_points {
    padding-top: 40px;
  }
}

.bl_points_list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 7.5%;
  justify-content: space-between;
}
@media screen and (max-width: 479px) {
  .bl_points_list {
    display: block;
  }
}
.bl_points_list.__col3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 4%;
}
@media screen and (max-width: 479px) {
  .bl_points_list.__col3 {
    display: block;
  }
}
.bl_points_list.__col3 .bl_points_list_item {
  width: auto;
}
.bl_points_list.__col3 .bl_points_list_item:nth-of-type(2n) {
  margin-top: 0;
}
@media screen and (max-width: 479px) {
  .bl_points_list.__col3 .bl_points_list_item {
    width: 76.666vw;
  }
  .bl_points_list.__col3 .bl_points_list_item:nth-of-type(n+2) {
    margin-top: 70px;
  }
}
.bl_points_list.__col3 .bl_points_list_image {
  aspect-ratio: 4/3;
  overflow: hidden;
}
.bl_points_list.__col3 .bl_points_list_image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.bl_points_list_item {
  position: relative;
  width: 46.25%;
}
.bl_points_list_item:nth-of-type(2n) {
  margin-top: 100px;
}
@media screen and (max-width: 479px) {
  .bl_points_list_item {
    width: 76.666vw;
    margin-right: auto;
    margin-left: auto;
  }
  .bl_points_list_item:nth-of-type(n+2) {
    margin-top: 70px;
  }
}

.bl_points_list_budge {
  width: 92px;
  height: 92px;
  display: flex;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  color: var(--color-accentDark);
  position: absolute;
  top: -46px;
  left: -46px;
  z-index: 10;
}
@media screen and (max-width: 768px) {
  .bl_points_list_budge {
    width: 74px;
    height: 74px;
    top: -37px;
    left: -37px;
  }
}
@media screen and (max-width: 479px) {
  .bl_points_list_budge {
    width: 60px;
    height: 60px;
    top: -40px;
    left: -20px;
  }
}
.bl_points_list_budge:before {
  content: "";
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: block;
  background-color: var(--color-warmWhite);
  position: absolute;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .bl_points_list_budge:before {
    width: 80px;
    height: 80px;
  }
}
@media screen and (max-width: 479px) {
  .bl_points_list_budge:before {
    width: 65px;
    height: 65px;
  }
}
.bl_points_list_budge:after {
  content: "";
  width: 92px;
  height: 92px;
  border-radius: 50%;
  display: block;
  border: 1px solid var(--color-gray);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .bl_points_list_budge:after {
    width: 74px;
    height: 74px;
  }
}
@media screen and (max-width: 479px) {
  .bl_points_list_budge:after {
    width: 60px;
    height: 60px;
  }
}
.bl_points_list_budge .label {
  display: block;
  font-size: var(--fontsize-s);
}
.bl_points_list_budge .num {
  display: block;
  font-size: var(--fontsize-xl);
  font-weight: 500;
  line-height: 1;
}

.bl_points_list_image {
  line-height: 1;
}

.bl_points_list_body {
  margin-top: 1.875rem;
}

.bl_points_list_ttl {
  font-size: var(--fontsize-l);
  font-weight: 500;
}

.bl_points_list_txt {
  margin-top: 1em;
}

/*
 * Base Group
 */
.bl_price {
  position: relative;
}

.bl_price_list {
  position: relative;
}
.bl_price_list.__onlyTop .bl_price_list_item:last-child {
  border-bottom: none;
}
.bl_price_list.__onlyTop .bl_price_list_item:last-child:before {
  content: none;
}
@media screen and (max-width: 768px) {
  .bl_price_list.__lower .bl_price_list_item:first-child {
    padding-top: 0;
    border-top: 0;
  }
  .bl_price_list.__lower .bl_price_list_item:first-child:before {
    content: none;
  }
}
@media screen and (max-width: 768px) {
  .bl_price_list.__lower .bl_price_list_img {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .bl_price_list.__lower .bl_price_list_body {
    width: 100%;
  }
}

.bl_price_list_item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .bl_price_list_item {
    display: block;
  }
}
.bl_price_list_item:not(:first-child) {
  margin-top: 5rem;
}
.bl_price_list_item:first-child {
  padding-top: 5.3125rem;
  border-top: 1px solid var(--color-primary);
}
.bl_price_list_item:first-child:before {
  content: "";
  width: 100%;
  height: 1px;
  border-top: 1px solid var(--color-primary);
  position: absolute;
  top: 5px;
  left: 0;
}
@media screen and (max-width: 768px) {
  .bl_price_list_item:first-child:before {
    top: 4px;
  }
}
@media screen and (max-width: 479px) {
  .bl_price_list_item:first-child:before {
    top: 3px;
  }
}
.bl_price_list_item:last-child {
  padding-bottom: 5.3125rem;
  border-bottom: 1px solid var(--color-primary);
}
.bl_price_list_item:last-child:before {
  content: "";
  width: 100%;
  height: 1px;
  border-bottom: 1px solid var(--color-primary);
  position: absolute;
  bottom: 5px;
  left: 0;
}
@media screen and (max-width: 768px) {
  .bl_price_list_item:last-child:before {
    bottom: 4px;
  }
}
@media screen and (max-width: 479px) {
  .bl_price_list_item:last-child:before {
    bottom: 3px;
  }
}

.bl_price_list_img {
  width: 29.1666%;
}
.bl_price_list_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 768px) {
  .bl_price_list_img {
    width: 57.8666vw;
    margin: 0 auto;
  }
}

.bl_price_list_body {
  width: 64.75%;
}
@media screen and (max-width: 768px) {
  .bl_price_list_body {
    width: 80vw;
    margin-top: 1.5625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

.bl_price_list_ttl {
  font-size: var(--fontsize-xl);
  margin-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .bl_price_list_ttl {
    text-align: center;
  }
}

.bl_price_list_wrap {
  display: inline-flex;
  align-items: baseline;
}
@media screen and (max-width: 768px) {
  .bl_price_list_wrap {
    display: flex;
    justify-content: center;
  }
}
.bl_price_list_wrap .num {
  font-size: var(--fontsize-l);
  line-height: 1;
  font-weight: 500;
}
.bl_price_list_wrap .sub {
  font-weight: 500;
  line-height: 1;
}

.bl_price_list_outline {
  margin-top: 2em;
}

.bl_price_list_contents {
  margin-top: 2em;
}

.bl_price_link {
  margin-top: 1.875rem;
}
.bl_price_link > a {
  font-size: var(--fontsize-s);
  padding-bottom: 0.4em;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75em;
  line-height: 1.5;
  letter-spacing: 0.05em;
  border-bottom: 1px solid var(--color-primary);
}
.bl_price_link > a:hover, .bl_price_link > a:active {
  opacity: 0.7;
  border-color: rgba(0, 0, 0, 0);
}

.bl_price_detail {
  position: relative;
}
.bl_price_detail.__option .bl_price_detail_wrap {
  border-bottom: none;
}

.bl_price_detail_ttl {
  font-size: var(--fontsize-l);
  letter-spacing: 0.05em;
  line-height: 1.2;
  border-radius: 4px;
  background: var(--color-secondry);
  margin-bottom: 0.625rem;
  padding: 1.125rem 1.375rem;
}

.bl_price_detail_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.bl_price_detail_wrap {
  width: 47.5%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--color-warmWhite);
}
@media screen and (max-width: 768px) {
  .bl_price_detail_wrap {
    width: 100%;
  }
}

.bl_price_detail_dt {
  line-height: 1.8;
  padding: 1.25rem 0;
}

.bl_price_detail_dd {
  text-align: right;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.bl_price_detail_txt {
  margin-top: 1.25rem;
}

/*
 * Base Group
 */
.bl_news {
  position: relative;
}

.bl_news_list {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1.25rem 3.875%;
}

.bl_news_list_item {
  width: 30.75%;
}
@media screen and (max-width: 479px) {
  .bl_news_list_item {
    width: 80vw;
    margin-top: 1.5625rem;
    margin-right: auto;
    margin-left: auto;
  }
}

.bl_news_list_link {
  display: block;
  background: var(--color-white);
  padding: 1.25rem;
}
.bl_news_list_link:hover .bl_news_list_img img {
  transform: scaleX(1.1) scaleY(1.1);
  filter: brightness(1.1);
}
.bl_news_list_link:hover .bl_news_list_body {
  opacity: 0.5;
}

.bl_news_list_img {
  display: block;
  width: 100%;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.bl_news_list_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1), filter 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.bl_news_list_body {
  margin-top: 1.875rem;
  padding: 0 0.625rem 1.25rem;
  transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.bl_news_list_info {
  display: flex;
  line-height: 1.5;
  color: var(--color-primary);
}
.bl_news_list_info time {
  padding: 0.1em 0;
  letter-spacing: 0.04em;
}
.bl_news_list_info .cat {
  margin-left: 0.75em;
  padding: 0.1em 0 0 0.75em;
  border-left: 1px solid var(--color-grayLight);
}

.bl_news_list_ttl {
  margin-top: 1em;
  letter-spacing: 0.05em;
  line-height: 1.666;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/*
 * Base Group
 */
.bl_faq {
  position: relative;
}

.bl_faq_list {
  position: relative;
}

.bl_faq_list_item:nth-of-type(1) {
  border-top: 1px solid var(--color-gray);
}
.bl_faq_list_item.is-open .bl_faq_list_q {
  border-bottom: none;
}
.bl_faq_list_item.is-open .bl_faq_list_q .plus:after {
  opacity: 0;
  transform: rotate(90deg);
}
.bl_faq_list_item.is-open .bl_faq_list_a {
  max-height: 500px;
  opacity: 1;
  padding: 0.625rem 0 2.25rem 2.5rem;
}

.bl_faq_list_q {
  position: relative;
  width: 100%;
  display: table;
  cursor: pointer;
  position: relative;
  padding: 2.25rem 4.0625rem 2.25rem 0;
  border-bottom: 1px solid var(--color-gray);
  transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.bl_faq_list_q .icon {
  display: table-cell;
  width: 2.5em;
  padding-left: 12px;
  text-align: left;
  vertical-align: middle;
  line-height: 1;
  color: var(--color-gray);
}
.bl_faq_list_q .ttl {
  display: table-cell;
  letter-spacing: 0.05em;
}
.bl_faq_list_q .plus {
  display: table-cell;
}
.bl_faq_list_q .plus:before {
  display: block;
  content: "";
  background-color: var(--color-plus);
  position: absolute;
  width: 12px;
  height: 1px;
  margin-top: -0.5px;
  top: 50%;
  right: 25px;
}
@media screen and (max-width: 768px) {
  .bl_faq_list_q .plus:before {
    width: 10px;
    right: 20px;
  }
}
.bl_faq_list_q .plus:after {
  display: block;
  content: "";
  background-color: var(--color-plus);
  position: absolute;
  width: 1px;
  height: 12px;
  margin-top: -6px;
  top: 50%;
  right: 30.5px;
}
@media screen and (max-width: 768px) {
  .bl_faq_list_q .plus:after {
    height: 10px;
    margin-top: -5px;
    right: 24.5px;
  }
}
.bl_faq_list_q .minus {
  display: table-cell;
  display: none;
}
.bl_faq_list_q:hover {
  opacity: 0.7;
}

.bl_faq_list_a {
  max-height: 0;
  overflow: hidden;
  width: 100%;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), padding 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease;
  opacity: 0;
  border-bottom: 1px solid var(--color-gray);
  padding: 0;
  box-sizing: border-box;
}

/*
 * Base Group
 */
.bl_collection {
  position: relative;
}

.bl_collection_lead {
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 2.3;
}

.bl_collection_main {
  position: relative;
}

.bl_collection_main_ttl {
  font-size: var(--fontsize-l);
  letter-spacing: 0.05em;
  line-height: 1.8;
}
.bl_collection_main_ttl .num {
  display: block;
  font-size: var(--fontsize-s);
}

.bl_collection_main_list {
  display: flex;
  flex-wrap: wrap;
  gap: 6.25rem 2.666%;
}
@media screen and (max-width: 768px) {
  .bl_collection_main_list {
    gap: 50px 4%;
  }
}

.bl_collection_main_list_item {
  flex: 0 0 23%;
}
@media screen and (max-width: 768px) {
  .bl_collection_main_list_item {
    flex: 0 0 48%;
  }
}

.bl_collection_main_list_img {
  aspect-ratio: 3/4;
  overflow: hidden;
}
.bl_collection_main_list_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.bl_collection_main_list_wrap {
  margin-top: 1.25rem;
}

.bl_collection_main_list_txt {
  font-size: var(--fontsize-l);
  letter-spacing: 0.05em;
  line-height: 1.333;
}

.bl_collection_main_list_sub {
  margin-top: 0.75rem;
  font-size: var(--fontsize-s);
  line-height: 1.1;
}

.bl_collection_category-main {
  position: relative;
}
.bl_collection_category-main .bl_collection_category_list {
  display: flex;
  flex-wrap: wrap;
}
.bl_collection_category-main .bl_collection_category_list_item {
  width: 33.3333333333%;
  text-align: center;
}
.bl_collection_category-main .bl_collection_category_list_link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-bottom: 1px solid var(--color-warmWhite);
  padding-bottom: 1.375rem;
  transition: border-color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.bl_collection_category-main .bl_collection_category_list_link.__current {
  border-color: var(--color-primary);
  pointer-events: none;
}
.bl_collection_category-main .bl_collection_category_list_link.__current .en,
.bl_collection_category-main .bl_collection_category_list_link.__current .jp {
  color: var(--color-black);
}
.bl_collection_category-main .bl_collection_category_list_link .en {
  font-size: var(--fontsize-l);
  line-height: 1.3;
  letter-spacing: 0.05em;
  color: var(--color-gray);
  transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.bl_collection_category-main .bl_collection_category_list_link .jp {
  font-size: var(--fontsize-s);
  color: var(--color-gray);
  transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.bl_collection_category-main .bl_collection_category_list_link:hover {
  border-color: var(--color-primary);
}
.bl_collection_category-main .bl_collection_category_list_link:hover .en,
.bl_collection_category-main .bl_collection_category_list_link:hover .jp {
  color: var(--color-black);
}
.bl_collection_category-sub {
  position: relative;
}
.bl_collection_category-sub .bl_collection_category_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .bl_collection_category-sub .bl_collection_category_list {
    justify-content: flex-start;
  }
}
.bl_collection_category-sub .bl_collection_category_list_item {
  max-width: 125px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .bl_collection_category-sub .bl_collection_category_list_item {
    max-width: none;
    width: calc((100% - 16px) / 3);
  }
}
.bl_collection_category-sub .bl_collection_category_list_link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 1em;
  font-size: var(--fontsize-s);
  line-height: 1;
  border-radius: 4px;
  background: var(--color-white);
}
.bl_collection_category-sub .bl_collection_category_list_link.__current {
  color: var(--color-white);
  background: var(--color-primary);
}
.bl_collection_category-sub .bl_collection_category_list_link:hover {
  color: var(--color-white);
  background: var(--color-primary);
}

.bl_collection_detail {
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .bl_collection_detail {
    padding-top: 30px;
  }
}
.bl_collection_detail .bl_collection_img {
  width: 43%;
}
@media screen and (max-width: 768px) {
  .bl_collection_detail .bl_collection_img {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
  }
}
.bl_collection_detail .bl_collection_img .js_splide_main .splide__track {
  overflow: hidden;
}
.bl_collection_detail .bl_collection_img .js_splide_main .splide__slide > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.bl_collection_detail .bl_collection_img .js_splide_main .splide-controller {
  width: 100%;
  margin-top: -22px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}
.bl_collection_detail .bl_collection_img .js_splide_main .splide-controller .splide__arrow {
  display: flex;
  justify-content: space-between;
  width: 100%;
  position: static;
  transform: none;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid #ccc;
  border-radius: 50%;
  opacity: 1;
}
.bl_collection_detail .bl_collection_img .js_splide_main .splide-controller .splide__arrow:hover {
  background: #f0f0f0;
}
.bl_collection_detail .bl_collection_img .js_splide_main .splide-controller .splide__arrow:disabled {
  opacity: 0.3;
}
.bl_collection_detail .bl_collection_img .js_splide_main .splide-controller .splide__arrow svg {
  width: 16px;
  height: 16px;
}
.bl_collection_detail .bl_collection_body {
  position: relative;
  width: 56%;
  max-width: calc(572px + 12%);
  margin: 0 auto;
  padding: 3.75rem 6% 0;
}
@media screen and (max-width: 768px) {
  .bl_collection_detail .bl_collection_body {
    width: 100%;
    margin-top: 6.666vw;
    padding: 13vw 0 0 0;
  }
}
.bl_collection_detail .bl_collection_ttl {
  font-size: var(--fontsize-xl);
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .bl_collection_detail .bl_collection_ttl {
    margin-top: 35px;
  }
}
.bl_collection_detail .bl_collection_subttl {
  font-size: var(--fontsize-s);
  margin-top: 0.5em;
  line-height: 1.3;
}
.bl_collection_detail .bl_collection_txt {
  margin-top: 1.5rem;
  letter-spacing: 0.05em;
  line-height: 2;
}
.bl_collection_detail .bl_collection_info {
  text-align: left;
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid var(--color-warmWhite);
  border-bottom: 1px solid var(--color-warmWhite);
  margin-top: 2.1875rem;
  padding: 1.25rem 0;
}
.bl_collection_detail .bl_collection_thumbnail {
  position: relative;
  margin-top: 2.5rem;
  overflow: hidden;
  z-index: 10;
}
@media screen and (max-width: 768px) {
  .bl_collection_detail .bl_collection_thumbnail {
    position: absolute;
    top: 0;
    margin-top: 0;
  }
}
.bl_collection_detail .js_splide_thumbnail {
  width: 100%;
  display: flex;
  transform: none;
}
.bl_collection_detail .js_splide_thumbnail .splide__track {
  overflow: hidden;
}
.bl_collection_detail .js_splide_thumbnail .splide__list {
  display: flex;
  align-items: flex-start;
}
.bl_collection_detail .js_splide_thumbnail .splide__slide {
  width: 11%;
  opacity: 0.4;
  transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  cursor: pointer;
  line-height: 0;
  aspect-ratio: 3/4;
  overflow: hidden;
}
.bl_collection_detail .js_splide_thumbnail .splide__slide > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.bl_collection_detail .js_splide_thumbnail .splide__slide.is-active {
  opacity: 1;
  border: 1px solid var(--color-primary) !important;
}
.bl_collection_detail .bl_collection_btns {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin-top: 3.75rem;
}
.bl_collection_detail .bl_collection_btns .el_btn {
  max-width: calc((100% - 2rem) / 2);
  border-radius: 0;
}
@media screen and (max-width: 768px) {
  .bl_collection_detail .bl_collection_btns .el_btn {
    max-width: none;
    width: 100%;
  }
}
.bl_collection_detail .bl_collection_btns .el_btn:nth-of-type(2) {
  background-color: var(--color-primary);
  color: var(--color-white);
}
.bl_collection_detail .bl_collection_btns .el_btn:nth-of-type(2):hover {
  color: #fff;
  border-color: var(--color-primary);
  background: var(--color-primary);
}
.bl_collection_detail .bl_collection_subnav {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-top: 1.5625rem;
}
.bl_collection_detail .bl_collection_subnav_item {
  position: relative;
  font-size: var(--fontsize-s);
}
.bl_collection_detail .bl_collection_subnav_item:not(:first-child):before {
  content: "/";
  margin: 0 1rem;
  color: var(--color-subnav);
}
.bl_collection_detail .bl_collection_subnav_link {
  display: inline-block;
  color: var(--color-subnav);
  text-decoration: underline;
  text-underline-offset: 0.33em;
}

/*
 * Base Group
 */
.bl_shop {
  position: relative;
}
@media screen and (max-width: 768px) {
  .bl_shop {
    padding-top: 60px;
    padding-bottom: 60px;
    border-top: 1px solid var(--color-primary);
  }
}

.bl_shop_list {
  position: relative;
}
@media screen and (max-width: 768px) {
  .bl_shop_list {
    margin-top: 20px;
  }
}

.bl_shop_item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bl_shop_item:not(:first-child) {
  margin-top: 80px;
}
.bl_shop_item:first-child {
  padding-top: 85px;
  border-top: 1px solid var(--color-primary);
}
.bl_shop_item:first-child:before {
  content: "";
  width: 100%;
  height: 1px;
  border-top: 1px solid var(--color-primary);
  position: absolute;
  top: 5px;
  left: 0;
}
.bl_shop_item:last-child {
  padding-bottom: 85px;
  border-bottom: 1px solid var(--color-primary);
}
.bl_shop_item:last-child:before {
  content: "";
  width: 100%;
  height: 1px;
  border-bottom: 1px solid var(--color-primary);
  position: absolute;
  bottom: 5px;
  left: 0;
}
@media screen and (max-width: 768px) {
  .bl_shop_item {
    display: block;
  }
  .bl_shop_item:first-child {
    padding-top: 0;
    border-top: 0;
  }
  .bl_shop_item:first-child:before {
    content: none;
  }
  .bl_shop_item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }
  .bl_shop_item:last-child:before {
    content: none;
  }
}

.bl_shop_img {
  max-width: 320px;
  width: 100%;
}
.bl_shop_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 768px) {
  .bl_shop_img {
    max-width: none;
  }
}

.bl_shop_body {
  width: calc(100% - 320px);
  padding-left: 6%;
}
@media screen and (max-width: 768px) {
  .bl_shop_body {
    width: 100%;
    padding-left: 0;
    margin-top: 30px;
  }
}

.bl_shop_ttl {
  font-size: var(--fontsize-l);
  margin-bottom: 1rem;
}

.bl_shop_map {
  margin-top: 1.25rem;
  line-height: 1;
}

.bl_shop_map_link {
  display: flex;
  align-items: center;
  color: var(--color-gray);
  font-size: var(--fontsize-s);
}
.bl_shop_map_link .icon {
  line-height: 1;
}
.bl_shop_map_link .txt {
  margin-top: -0.2em;
  margin-left: 0.5em;
  letter-spacing: 0.07em;
  line-height: 1;
  text-decoration: underline;
  transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.bl_shop_info {
  align-items: center;
  letter-spacing: 0.05em;
  margin-top: 1.875rem;
}

.bl_shop_info_wrap {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.bl_shop_info_dt {
  max-width: 75px;
  width: 100%;
  font-size: var(--fontsize-s);
  text-align: center;
  line-height: 1.666;
  border: 1px solid var(--color-gray);
}

.bl_shop_info_dd {
  max-width: calc(100% - 75px);
  width: 100%;
  font-size: var(--fontsize-s);
  padding-left: 1rem;
  line-height: 1.3;
}

.bl_shop_caution {
  font-size: var(--fontsize-s);
  color: var(--color-caution);
  line-height: 1.666;
  margin-top: 1rem;
}

.bl_shop_btns {
  display: flex;
  gap: 8px;
  margin-top: 1.875rem;
}
.bl_shop_btns .el_btn {
  width: auto;
  min-width: 124px;
  min-height: 36px;
  border-radius: 18px;
  font-size: var(--fontsize-s);
}
.bl_shop_btns .el_btn:last-child {
  background-color: var(--color-primary);
  color: var(--color-white);
}
.bl_shop_btns .el_btn:last-child:hover {
  color: #fff;
  border-color: var(--color-primary);
  background: var(--color-primary);
}
@media screen and (max-width: 768px) {
  .bl_shop_btns .el_btn {
    max-width: none;
    width: calc(50% - 8px);
    border-radius: 3px;
  }
}

/*
 * Base Group
 */
.bl_media {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.bl_media.__rev {
  flex-direction: row-reverse;
}
@media screen and (max-width: 768px) {
  .bl_media {
    flex-wrap: wrap;
  }
}
.bl_media.__full {
  align-items: stretch;
}
.bl_media.__full .bl_media_img {
  width: 61.77%;
  line-height: 0;
}
@media screen and (max-width: 768px) {
  .bl_media.__full .bl_media_img {
    width: 100%;
  }
}
.bl_media.__full .bl_media_body {
  width: 38.23%;
  padding: 9.375rem 5.625vw;
  background: var(--color-white);
}
@media screen and (max-width: 768px) {
  .bl_media.__full .bl_media_body {
    width: 100%;
  }
}
@media screen and (max-width: 479px) {
  .bl_media.__full .bl_media_body {
    padding: 45px 6.666vw 80px;
  }
}
@media screen and (max-width: 768px) and (max-width: 768px) {
  .bl_media.__brand .bl_media_img {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
  }
}

.bl_media_img {
  width: 48%;
}
.bl_media_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (max-width: 768px) {
  .bl_media_img {
    width: 100%;
  }
}

.bl_media_logo > img {
  max-width: 260px;
  line-height: 0;
}
.bl_media_logo .bl_media_logo_ruby {
  font-size: var(--fontsize-s);
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .bl_media_logo {
    text-align: center;
  }
}

.bl_media_body {
  width: 48%;
}
@media screen and (max-width: 768px) {
  .bl_media_body {
    width: 100%;
    padding-top: 4%;
  }
}

.bl_media_ttl {
  font-size: var(--fontsize-media);
  font-weight: 500;
  line-height: 1.1;
  margin-bottom: 35px;
}

.bl_media_subttl {
  font-size: var(--fontsize-l);
  font-weight: 500;
  line-height: 1.1;
  margin-bottom: 35px;
}

.bl_media_txt {
  margin-bottom: 2em;
}

@media screen and (max-width: 768px) {
  .bl_media_btn .el_btn {
    margin: 0 auto;
  }
}

/*
 * Base Group
 */
.bl_card-number {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 5rem 4%;
}
@media screen and (max-width: 768px) {
  .bl_card-number {
    display: block;
  }
}
.bl_card-number .bl_card_item {
  position: relative;
  width: 48%;
}
@media screen and (max-width: 768px) {
  .bl_card-number .bl_card_item {
    width: 100%;
    margin-top: 45px;
  }
}
.bl_card-number .bl_card_img {
  position: relative;
}
.bl_card-number .bl_card_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bl_card-number .bl_card_num {
  position: absolute;
  top: clamp(10px, 2.56vw, 15px);
  right: clamp(10px, 2.56vw, 15px);
  width: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  background: var(--color-white);
  border-radius: 50%;
  z-index: 10;
}
.bl_card-number .bl_card_num > span {
  text-align: center;
  letter-spacing: 0.08em;
  color: var(--color-primary);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .bl_card-number .bl_card_num {
    width: 28px;
  }
}
.bl_card-number .bl_card_body {
  margin-top: 1.875rem;
}
.bl_card-number .bl_card_ttl {
  font-size: var(--fontsize-l);
  font-weight: 500;
  line-height: 1.66;
}
.bl_card-number .bl_card_txt {
  margin-top: 1rem;
  line-height: 1.8;
}

/*
 * Base Group
 */
.bl_footerCta {
  position: relative;
}

.bl_footerCta_list {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 479px) {
  .bl_footerCta_list {
    display: block;
  }
}
.bl_footerCta_list.__single {
  justify-content: center;
}
.bl_footerCta_list.__single .bl_footerCta_list_item {
  width: 100%;
  max-width: 720px;
  text-align: center;
}
.bl_footerCta_list.__single .bl_footerCta_list_btn {
  max-width: 360px;
  margin-left: auto;
  margin-right: auto;
}

.bl_footerCta_list_item {
  width: 49%;
  display: block;
  padding: 4.375rem;
  background: var(--color-white);
}
@media screen and (max-width: 479px) {
  .bl_footerCta_list_item {
    width: 100%;
    padding: 35px 6.666vw 6.666vw;
  }
  .bl_footerCta_list_item:nth-of-type(2) {
    margin-top: 20px;
  }
}

.bl_footerCta_list_ttl {
  font-size: var(--fontsize-xl);
  font-weight: 500;
  text-align: center;
}
.bl_footerCta_list_ttl .en {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  display: block;
  text-align: center;
  font-size: var(--fontsize-s);
  font-weight: 500;
  letter-spacing: 0.16em;
  color: var(--color-primary);
  margin-top: 0.5em;
}

.bl_footerCta_list_txt {
  margin-top: 2em;
}

.bl_footerCta_list_btn {
  margin-top: 4em;
}
.bl_footerCta_list_btn .el_btn {
  border-radius: 0;
}

/*
 * Base Group
 */
.bl_sns {
  position: relative;
}

.bl_sns_inner {
  position: relative;
  width: 100%;
  height: 25vw;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  color: var(--color-white);
  background-image: url(../images/index/bg_02.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (max-width: 479px) {
  .bl_sns_inner {
    height: 83.3333vw;
  }
}
.bl_sns_inner:after {
  content: "";
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.2);
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  left: 0;
  transition: background 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.bl_sns_inner:link, .bl_sns_inner:visited {
  color: var(--color-white);
}
.bl_sns_inner:hover:after {
  background: rgba(0, 0, 0, 0);
}

.bl_sns_ttl {
  position: relative;
  font-size: var(--fontsize-xl);
  font-weight: 500;
  letter-spacing: 0.5em;
  text-align: center;
}

/*
 * Base Group
 */
.bl_values {
  position: relative;
  padding-top: 170px;
  padding-bottom: 170px;
}
@media screen and (max-width: 768px) {
  .bl_values {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

.bl_values_header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .bl_values_header {
    display: block;
    padding-bottom: 40px;
  }
}

.bl_values_header_left {
  margin-right: 3.125rem;
  margin-bottom: 0;
  padding-right: 3.125rem;
  border-right: 1px solid var(--color-primary);
}
@media screen and (max-width: 768px) {
  .bl_values_header_left {
    margin-right: 0;
    padding-right: 0;
    text-align: center;
    border-right: none;
  }
}

@media screen and (max-width: 768px) {
  .bl_values_header_right {
    margin-top: 1em;
    text-align: center;
  }
}

.bl_values_header_ttl {
  font-size: var(--fontsize-60);
  font-weight: 500;
  line-height: 1.2;
}

.bl_values_header_subttl {
  margin-top: 0;
  font-size: var(--fontsize-s);
}

.bl_values_header_txt {
  font-size: var(--fontsize-l);
  font-weight: 500;
}

.bl_values_slider {
  overflow: visible;
  margin-top: 30px;
}
.bl_values_slider .splide__track {
  overflow: visible;
}
.bl_values_slider .splide__slide {
  width: 100%;
  max-width: 924px;
  background: hsla(0, 0%, 100%, 0.75);
}
@media screen and (max-width: 1240px) {
  .bl_values_slider .splide__slide {
    max-width: 720px;
  }
}
@media screen and (max-width: 768px) {
  .bl_values_slider .splide__slide {
    max-width: 312px;
  }
}
.bl_values_slider .js_splide_slide {
  display: flex;
  padding: 15px;
}
@media screen and (max-width: 768px) {
  .bl_values_slider .js_splide_slide {
    display: block;
  }
}
.bl_values_slider .js_splide_img {
  width: 50%;
}
@media screen and (max-width: 768px) {
  .bl_values_slider .js_splide_img {
    width: 100%;
    aspect-ratio: 3/2;
    overflow: hidden;
  }
}
.bl_values_slider .js_splide_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bl_values_slider .js_splide_body {
  width: 50%;
  padding: 8.5% 5.5% 0;
}
@media screen and (max-width: 768px) {
  .bl_values_slider .js_splide_body {
    width: 100%;
    padding: 24px 4% 30px;
  }
}
.bl_values_slider .js_splide_point {
  display: flex;
  align-items: center;
  color: var(--color-primary);
}
.bl_values_slider .js_splide_point .label {
  margin-top: 0.2em;
  line-height: 1;
  font-size: var(--fontsize-s);
}
.bl_values_slider .js_splide_point .num {
  margin-left: 0.2em;
  line-height: 1;
  letter-spacing: 0;
  font-size: var(--fontsize-xl);
}
.bl_values_slider .js_splide_wrap {
  margin-top: 1.5625rem;
}
.bl_values_slider .js_splide_ttl {
  font-size: var(--fontsize-l);
  line-height: 1.88;
}
.bl_values_slider .js_splide_txt {
  margin-top: 1.2rem;
  line-height: 2;
}
.bl_values_slider .splide__pagination {
  display: flex;
  position: relative;
  bottom: auto;
  width: calc(100% - 150px);
  height: 2px;
  background: var(--color-grayLight);
  border-radius: 2px;
  padding: 0;
  gap: 0;
  margin-top: 1.5rem;
  list-style: none;
  counter-reset: none;
  overflow: hidden;
}
.bl_values_slider .splide__pagination li {
  display: none;
}
.bl_values_slider .splide__pagination__bar {
  position: absolute;
  left: 0;
  display: block;
  height: 2px;
  background: #333;
  border-radius: 2px;
  transition: width 400ms ease;
}
.bl_values_slider .splide__arrows {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: -20px;
}
.bl_values_slider .splide__arrow {
  position: static;
  transform: none;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid #ccc;
  border-radius: 50%;
  opacity: 1;
  transition: background 0.4s cubic-bezier(0.215, 0.61, 0.355, 1), fill 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.bl_values_slider .splide__arrow:hover {
  background: var(--color-primary);
}
.bl_values_slider .splide__arrow:hover svg {
  fill: var(--color-white);
}
.bl_values_slider .splide__arrow:disabled {
  opacity: 0.3;
}
.bl_values_slider .splide__arrow svg {
  width: 16px;
  height: 16px;
}
.bl_values_slider .splide-controller {
  padding-top: 1rem;
}

/*
 * Base Group
 */
.bl_dl-company {
  position: relative;
  width: 100%;
}
.bl_dl-company .bl_dl_item {
  display: flex;
  align-items: center;
  border-top: 1px solid var(--color-gray);
}
.bl_dl-company .bl_dl_item.__bgc {
  background-color: var(--color-grayLight);
}
.bl_dl-company .bl_dl_item > dt {
  max-width: 250px;
  width: 100%;
  padding: 1.5em;
  line-height: 1.6;
  font-weight: 500;
}
@media screen and (max-width: 479px) {
  .bl_dl-company .bl_dl_item > dt {
    padding: 1.5rem 1.5rem 0 0;
    max-width: none;
    font-size: var(--fontsize-l);
  }
}
.bl_dl-company .bl_dl_item > dd {
  width: 100%;
  padding: 1.5em;
  line-height: 1.6;
  flex-grow: 1;
}
@media screen and (max-width: 479px) {
  .bl_dl-company .bl_dl_item > dd {
    padding: 0 1.5rem 1.5rem 0;
  }
}
.bl_dl-company .bl_dl_item:last-child {
  border-bottom: 1px solid var(--color-gray);
}
@media screen and (max-width: 479px) {
  .bl_dl-company .bl_dl_item {
    flex-direction: column;
    align-items: flex-start;
  }
}

/*
 * Base Group
 */
.bl_history {
  position: relative;
  width: 100%;
}

.bl_history_item {
  position: relative;
  display: flex;
  gap: 2.5rem;
  padding: 0 0 3rem 2.25rem;
}
@media screen and (max-width: 479px) {
  .bl_history_item {
    display: block;
    gap: 0;
    padding-left: 1.75rem;
  }
}
.bl_history_item:last-child {
  padding-bottom: 0;
}
.bl_history_item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: -1px;
  top: calc(0.35em + 5.5px);
  height: 100%;
  width: 1px;
  background: var(--color-gray);
}
.bl_history_item:before {
  content: "";
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--color-primary);
  position: absolute;
  left: -6px;
  top: 0.35em;
}

.bl_history_date {
  flex-shrink: 0;
  width: 9em;
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-primary);
}
@media screen and (max-width: 479px) {
  .bl_history_date {
    width: auto;
    margin-bottom: 0.5em;
  }
}

.bl_history_body {
  flex-grow: 1;
  line-height: 1.8;
}

/* 沿革セクションを濃緑背景(hp_bgc_primary)化。日付・本文・タイムライン装飾を白系にして視認性を確保 */
#history .bl_history_date {
  color: var(--color-white);
}
#history .bl_history_body {
  color: var(--color-warmWhite);
}
#history .bl_history_item::before {
  background: var(--color-white);
}
#history .bl_history_item:not(:last-child)::after {
  background: rgba(255, 255, 255, 0.35);
}

/*
 * Base Group
 */
.bl_contact {
  position: relative;
}

.bl_contact_line {
  background: var(--color-primary);
  color: var(--color-white);
  text-align: center;
  border-radius: 8px;
  padding: 4.375rem 6.666vw;
}
@media screen and (max-width: 479px) {
  .bl_contact_line {
    padding: 3rem 6.666vw;
  }
}

.bl_contact_line_en {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  display: block;
  font-size: var(--fontsize-s);
  font-weight: 500;
  letter-spacing: 0.16em;
  margin-bottom: 1em;
}

.bl_contact_line_ttl {
  font-size: var(--fontsize-xl);
  font-weight: 500;
  line-height: 1.4;
}

.bl_contact_line_txt {
  margin-top: 1.5em;
  line-height: 2;
}

.bl_contact_line_btn {
  margin-top: 2.5em;
  display: flex;
  justify-content: center;
}
.bl_contact_line_btn .el_btn {
  max-width: 360px;
}

.bl_contact_form {
  position: relative;
}

.bl_contact_form_lead {
  line-height: 2;
}

.bl_contact_form_item {
  margin-top: 2rem;
}
.bl_contact_form_item:first-of-type {
  margin-top: 0;
}

.bl_contact_form_label {
  display: block;
  font-weight: 500;
  margin-bottom: 0.625em;
}
.bl_contact_form_label .req {
  margin-left: 0.5em;
  font-size: var(--fontsize-s);
  color: var(--color-primary);
}

.bl_contact_form_input {
  width: 100%;
  padding: 0.875em 1em;
  line-height: 1.6;
  border: 1px solid var(--color-gray);
  border-radius: 4px;
  background: var(--color-white);
  transition: border-color 0.3s;
}
.bl_contact_form_input:focus {
  outline: none;
  border-color: var(--color-primary);
}
.bl_contact_form_input.__textarea {
  min-height: 180px;
  resize: vertical;
}

.bl_contact_form_btn {
  margin-top: 2.5rem;
  display: flex;
  justify-content: center;
}
.bl_contact_form_btn .el_btn {
  max-width: 280px;
  cursor: pointer;
}

/* PCでは予約/お問い合わせボタンが横長になりすぎないよう幅をキャップ（SPは全幅維持） */
@media screen and (min-width: 769px) {
  .bl_contact_line_btn .el_btn.__full,
  .bl_contact_form_btn .el_btn.__full {
    max-width: 360px;
  }
}

/*
 * Base Group
 */
.bl_article {
  position: relative;
}

.bl_article_info {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: var(--fontsize-s);
}
.bl_article_info time {
  letter-spacing: 0.05em;
  color: var(--color-gray);
}
.bl_article_info .cat {
  padding: 0.35em 1em;
  line-height: 1;
  color: var(--color-white);
  background: var(--color-primary);
  border-radius: 2px;
}

.bl_article_ttl {
  margin-top: 1rem;
  font-size: var(--fontsize-xl);
  font-weight: 500;
  line-height: 1.5;
}

.bl_article_img {
  margin-top: 2.5rem;
  aspect-ratio: 3/2;
  overflow: hidden;
  border-radius: 4px;
}
.bl_article_img > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.bl_article_body {
  margin-top: 3rem;
  line-height: 2;
}
.bl_article_body > * + * {
  margin-top: 1.5em;
}
.bl_article_body h2 {
  margin-top: 2.5em;
  padding-bottom: 0.5em;
  font-size: var(--fontsize-l);
  font-weight: 500;
  border-bottom: 1px solid var(--color-gray);
}
.bl_article_body h3 {
  margin-top: 2em;
  font-size: var(--fontsize-m);
  font-weight: 700;
}
.bl_article_body ul {
  padding-left: 1.25em;
  list-style: disc;
}
.bl_article_body li + li {
  margin-top: 0.5em;
}
.bl_article_body a {
  color: var(--color-primary);
  text-decoration: underline;
}

.bl_article_back {
  margin-top: 4rem;
  text-align: center;
}

/*
 * Base Group
 */
.bl_breadcrumb {
  position: absolute;
  bottom: 40px;
  left: 40px;
}

.bl_breadcrumb_list {
  display: flex;
  align-items: center;
}

.bl_breadcrumb_item {
  display: flex;
  align-items: center;
  color: var(--color-gray);
  font-size: var(--fontsize-s);
}
.bl_breadcrumb_item + .bl_breadcrumb_item:before {
  content: "/";
  display: inline-block;
  margin: 0 0.6em;
}
/* 濃緑セクション（hp_bgc_primary）にパンくずが重なるため、視認性確保で白に
   ・about: COMPANYセクション ／ company: 沿革セクション */
body.about .bl_breadcrumb_item,
body.about .bl_breadcrumb_item a,
body.company .bl_breadcrumb_item,
body.company .bl_breadcrumb_item a {
  color: var(--color-white);
}

/*
 * Module Group - Element
 */
/*
 * Base Group
 */
.el_heading.__white {
  color: var(--color-white);
}
.el_heading.__large .--level2 {
  font-size: var(--fontsize-60);
  line-height: 1.1;
}
.el_heading .--level2 {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  font-size: var(--fontsize-xxl);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.el_heading .--level3 {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  font-size: var(--fontsize-xl);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.45;
}
.el_heading .--lead {
  display: block;
  margin-top: 1.5em;
}

.el_heading_sb {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.875rem;
}
.el_heading_sb .--level2 {
  font-family: "Alike", "Shippori Mincho", "游明朝", "YuMincho", serif;
  letter-spacing: 0.06em;
  line-height: 1.5;
  font-size: var(--fontsize-l);
  font-weight: 500;
}
.el_heading_sb .--link {
  padding-bottom: 0.4em;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  line-height: 1.5;
  border-bottom: 1px solid var(--color-gray);
  padding-bottom: 0.4em;
}
.el_heading_sb .--link .txt {
  text-box: trim-both cap alphabetic;
}
.el_heading_sb .--link:hover, .el_heading_sb .--link:active {
  opacity: 0.7;
  border-color: rgba(0, 0, 0, 0);
}

/*
 * Base Group
 */
.el_icon {
  margin-left: 0.75rem;
  line-height: 1;
  font-size: 1rem;
}
.el_icon.__arrow:before {
  content: "→";
}

/*
 * Base Group
 */
.el_btn {
  max-width: 200px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fontsize-s);
  line-height: 1;
  height: 42px;
  border: 1px solid var(--color-gray);
  border-radius: 22px;
  transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}
.el_btn:hover {
  color: #fff;
  border-color: var(--color-primary);
  background: var(--color-primary);
}
.el_btn.__center {
  margin: 0 auto;
}
.el_btn.el_btn__w560 {
  max-width: 560px;
}
.el_btn.el_btn__wMax {
  max-width: 100%;
}
.el_btn.__full {
  max-width: none;
  width: 100%;
  height: 66px;
}
.el_btn.__bgcGray {
  color: var(--color-white);
  background-color: var(--color-gray);
}
.el_btn.__bgcGray:hover {
  background-color: var(--color-darkGray);
}
.el_btn.__bgcPrimary {
  color: var(--color-white);
  border-color: var(--color-primary);
  background-color: var(--color-primary);
}
.el_btn.__bgcPrimary:hover {
  color: var(--color-white);
  border-color: var(--color-plus);
  background-color: var(--color-plus);
}
.el_btn.__bgcWhite {
  color: var(--color-primary);
  border-color: var(--color-white);
  background-color: var(--color-white);
}
.el_btn.__bgcWhite:hover {
  color: var(--color-primary);
  border-color: var(--color-grayLight);
  background-color: var(--color-grayLight);
}

/*
 * Pages Group
 * 各種ページの設定
 */
/*
 * Base Group
 */
.pa_mainvisual {
  position: relative;
  z-index: auto;
  margin-top: 140px;
}
@media (max-width: 768px) {
  .pa_mainvisual {
    margin-top: calc(140px * 0.6666666667);
  }
}
@media (max-width: 480px) {
  .pa_mainvisual {
    margin-top: calc(140px * 0.5);
  }
}
.pa_mainvisual {
  padding-top: 48px;
}
@media (max-width: 768px) {
  .pa_mainvisual {
    padding-top: calc(48px * 0.6666666667);
  }
}
@media (max-width: 480px) {
  .pa_mainvisual {
    padding-top: calc(48px * 0.5);
  }
}
.pa_mainvisual {
  padding-bottom: 48px;
}
@media (max-width: 768px) {
  .pa_mainvisual {
    padding-bottom: calc(48px * 0.6666666667);
  }
}
@media (max-width: 480px) {
  .pa_mainvisual {
    padding-bottom: calc(48px * 0.5);
  }
}
.pa_mainvisual:after {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url(../images/index/mv_bg@2x.png);
  background-size: 55%;
  background-repeat: no-repeat;
  background-position: 20% 35%;
}

/*
 * Helper Group
 */
/*
 * Base Group
 */
.hp_sp {
  display: none;
}
@media screen and (max-width: 479px) {
  .hp_sp {
    display: block;
  }
}

.hp_sp-tab {
  display: none;
}
@media screen and (max-width: 768px) {
  .hp_sp-tab {
    display: block;
  }
}

.hp_sp-pc {
  display: none;
}
@media screen and (max-width: 1240px) {
  .hp_sp-pc {
    display: block;
  }
}

.hp_tab {
  display: none;
}
@media screen and (min-width: 481px) and (max-width: 768px) {
  .hp_tab {
    display: block;
  }
}

.hp_tab-pc {
  display: none;
}
@media screen and (min-width: 481px) and (max-width: 1240px) {
  .hp_tab-pc {
    display: block;
  }
}

.hp_pc {
  display: none;
}
@media screen and (min-width: 769px) and (max-width: 1240px) {
  .hp_pc {
    display: block;
  }
}

/* PC(≥769px)全幅で表示する改行用（.hp_pc は 769-1240px 限定のため、1240px超でも効く版） */
.hp_pc-all {
  display: none;
}
@media screen and (min-width: 769px) {
  .hp_pc-all {
    display: block;
  }
}

.hp_base {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
}
@media screen and (max-width: 1240px) {
  .hp_base {
    padding-right: 4%;
    padding-left: 4%;
  }
}

.hp_bgc_wramWhite {
  background-color: var(--color-warmWhite);
}

.hp_bgc_primary {
  background-color: var(--color-primary);
}

.hp_fs2 {
  font-size: clamp(0.9375rem, 0.7401315789rem + 0.6578947368vw, 1.25rem);
}

.hp_tar {
  text-align: right;
}

.hp_tac {
  text-align: center;
}

.hp_tal {
  text-align: left;
}

.hp_fwB {
  font-weight: bold;
}

.hp_mt120 {
  margin-top: 120px;
}
@media (max-width: 768px) {
  .hp_mt120 {
    margin-top: calc(120px * 0.6666666667);
  }
}
@media (max-width: 480px) {
  .hp_mt120 {
    margin-top: calc(120px * 0.5);
  }
}

.hp_space {
  padding-right: 4%;
  padding-left: 4%;
}

.hp_wsnw {
  white-space: nowrap;
}

/*
 * Unique Group
 */
/*
 * program Group
 */
/*
 * Base Group
 */
.js_fade {
  opacity: 0;
  transition: opacity 1.2s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.js_fade.__true {
  opacity: 1;
}
.js_fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s cubic-bezier(0.215, 0.61, 0.355, 1), transform 1.2s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.js_fade-up.__true {
  opacity: 1;
  transform: translateY(0);
}

/*
 * Base Group
 */
.js_scroll_active.bl_header {
  background-color: transparent;
  backdrop-filter: blur(30px);
}
.js_scroll_active .bl_header_inner {
  min-height: 80px;
}
.js_scroll_active .bl_header_nav_list.bl_header_nav_list__offWhite {
  padding: 1.089% 6.069%;
}
.js_scroll_active .bl_header_nav_list.bl_header_nav_list__green {
  padding: 1.089% 4.079%;
}
.js_scroll_active .bl_header_nav_link {
  font-size: clamp(0.625rem, 0.5460526316rem + 0.2631578947vw, 0.75rem);
}

/*
 * Original Group
 */
/*
 * Base Group
 */
header .header_menu {
  display: none;
  position: fixed;
  right: 18px;
  top: 32px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  z-index: 10000;
}
header .header_menu div {
  position: relative;
}
header .header_menu span {
  display: block;
  position: absolute;
  height: 1px;
  width: 100%;
  background: #292929;
  left: 0;
  -webkit-transition: 0.35s ease-in-out;
  -moz-transition: 0.35s ease-in-out;
  transition: 0.35s ease-in-out;
}
header .header_menu span:nth-child(1) {
  top: 10px;
}
header .header_menu span:nth-child(2) {
  top: 20px;
}
header .header_menu span:nth-child(3) {
  top: 30px;
}
@media screen and (max-width: 768px) {
  header .header_menu {
    display: block;
    /* SPヘッダー高さ70pxに合わせ、バー中心(要素上端+20px)をヘッダー中央(35px)へ */
    top: 15px;
  }
}
header .header_menu.open span:nth-child(1) {
  top: 20px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg);
  background: #292929;
}
header .header_menu.open span:nth-child(2) {
  width: 0;
  left: 50%;
}
header .header_menu.open span:nth-child(3) {
  top: 20px;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  transform: rotate(-45deg);
  background: #292929;
}

#spNav {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
  touch-action: none;
  background-color: rgba(0, 0, 0, 0);
  transform: translateX(100%);
  opacity: 0;
  visibility: hidden;
  transition: transform 0.4s ease, opacity 0.3s ease;
  will-change: transform, opacity;
  z-index: 9999;
}
#spNav.__active {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
  transition: opacity 0.8s;
}
#spNav.__active .spNav_bg {
  opacity: 1;
  visibility: visible;
}
#spNav.__active .spNav_wrapper {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
  transition: opacity 0.4s, transform 0.8s;
}
#spNav.__active .spNav_body {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  transition: opacity 0.4s 0.6s, transform 0.8s 0.6s;
}
#spNav .spNav_bg {
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
}
#spNav .spNav_wrapper {
  position: relative;
  width: 300px;
  height: 100%;
  margin-left: auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background: var(--color-warmWhite);
  transform: translateX(100%);
  opacity: 0;
  transition: transform 0.4s ease, opacity 0.3s ease;
  will-change: transform, opacity;
}
#spNav .spNav_body {
  width: 100%;
  max-height: 100dvh;
  padding: 100px 40px;
  overflow-y: auto;
  overscroll-behavior: none;
}
#spNav .spNav_nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#spNav .spNav_cta {
  margin-top: 35px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
#spNav .spNav_cta .el_btn {
  width: 100%;
  max-width: none;
  min-height: 50px;
  border-radius: 3px;
  font-size: var(--fontsize-s);
}
#spNav .spNav_cta .el_btn:last-child {
  background-color: var(--color-primary);
  color: var(--color-white);
}
#spNav .spNav_cta .el_btn:last-child:hover {
  color: #fff;
  border-color: var(--color-primary);
  background: var(--color-primary);
}
#spNav .spNav_sns {
  margin-top: 35px;
}
#spNav .spNav_sns > a {
  display: flex;
  align-items: center;
  gap: 4px;
}
#spNav .spNav_sub {
  margin-top: 35px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#spNav .spNav_sub > li {
  opacity: 0;
}
#spNav .spNav_copyright {
  display: none;
}
#spNav .spNav_copyright > a {
  font-size: var(--fontsize-s);
  color: var(--color-subnav);
}

/*
 * Base Group
 */
.dl01s {
  -webkit-animation-delay: 0.1s;
  animation-delay: 0.1s;
}

.dl02s {
  -webkit-animation-delay: 0.2s;
  animation-delay: 0.2s;
}

.dl03s {
  -webkit-animation-delay: 0.3s;
  animation-delay: 0.3s;
}

.dl04s {
  -webkit-animation-delay: 0.4s;
  animation-delay: 0.4s;
}

.dl05s {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
}

.dl06s {
  -webkit-animation-delay: 0.6s;
  animation-delay: 0.6s;
}

.dl07s {
  -webkit-animation-delay: 0.7s;
  animation-delay: 0.7s;
}

.dl08s {
  -webkit-animation-delay: 0.8s;
  animation-delay: 0.8s;
}

.dl09s {
  -webkit-animation-delay: 0.9s;
  animation-delay: 0.9s;
}

.dl1s {
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
}

.dl15s {
  -webkit-animation-delay: 1.5s;
  animation-delay: 1.5s;
}

.dl2s {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.dl25s {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s;
}

.dl3s {
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
}

.dl35s {
  -webkit-animation-delay: 3.5s;
  animation-delay: 3.5s;
}

.dl4s {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
}

.dl45s {
  -webkit-animation-delay: 4.5s;
  animation-delay: 4.5s;
}

.dl5s {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
}

.dl55s {
  -webkit-animation-delay: 5.5s;
  animation-delay: 5.5s;
}

.dl6s {
  -webkit-animation-delay: 6s;
  animation-delay: 6s;
}

.dl65s {
  -webkit-animation-delay: 6.5s;
  animation-delay: 6.5s;
}

.dl7s {
  -webkit-animation-delay: 7s;
  animation-delay: 7s;
}

.dl75s {
  -webkit-animation-delay: 7.5s;
  animation-delay: 7.5s;
}

.dl8s {
  -webkit-animation-delay: 8s;
  animation-delay: 8s;
}

.dl85s {
  -webkit-animation-delay: 8.5s;
  animation-delay: 8.5s;
}

.dl9s {
  -webkit-animation-delay: 9s;
  animation-delay: 9s;
}

.dl95s {
  -webkit-animation-delay: 9.5s;
  animation-delay: 9.5s;
}

/*
 * Base Group
 */
.mt-40 {
  margin-top: calc(2.5rem * var(--spacing-scale));
}

.mt-50 {
  margin-top: calc(3.125rem * var(--spacing-scale));
}

.mt-60 {
  margin-top: calc(3.75rem * var(--spacing-scale));
}

.mt-70 {
  margin-top: calc(4.375rem * var(--spacing-scale));
}

.mt-80 {
  margin-top: calc(5rem * var(--spacing-scale));
}

.mt-90 {
  margin-top: calc(5.625rem * var(--spacing-scale));
}

.mt-110 {
  margin-top: calc(6.875rem * var(--spacing-scale));
}

.mt-120 {
  margin-top: calc(7.5rem * var(--spacing-scale));
}

.mt-140 {
  margin-top: calc(8.75rem * var(--spacing-scale));
}

.mt-160 {
  margin-top: calc(10rem * var(--spacing-scale));
}

.mt-170 {
  margin-top: calc(10.625rem * var(--spacing-scale));
}

.mt-200 {
  margin-top: calc(12.5rem * var(--spacing-scale));
}

.mt-240 {
  margin-top: calc(15rem * var(--spacing-scale));
}

.mb-40 {
  margin-bottom: calc(2.5rem * var(--spacing-scale));
}

.mb-50 {
  margin-bottom: calc(3.125rem * var(--spacing-scale));
}

.mb-60 {
  margin-bottom: calc(3.75rem * var(--spacing-scale));
}

.mb-70 {
  margin-bottom: calc(4.375rem * var(--spacing-scale));
}

.mb-80 {
  margin-bottom: calc(5rem * var(--spacing-scale));
}

.mb-90 {
  margin-bottom: calc(5.625rem * var(--spacing-scale));
}

.mb-110 {
  margin-bottom: calc(6.875rem * var(--spacing-scale));
}

.mb-120 {
  margin-bottom: calc(7.5rem * var(--spacing-scale));
}

.mb-140 {
  margin-bottom: calc(8.75rem * var(--spacing-scale));
}

.mb-160 {
  margin-bottom: calc(10rem * var(--spacing-scale));
}

.mb-170 {
  margin-bottom: calc(10.625rem * var(--spacing-scale));
}

.mb-200 {
  margin-bottom: calc(12.5rem * var(--spacing-scale));
}

.mb-240 {
  margin-bottom: calc(15rem * var(--spacing-scale));
}

.ml-40 {
  margin-left: calc(2.5rem * var(--spacing-scale));
}

.ml-50 {
  margin-left: calc(3.125rem * var(--spacing-scale));
}

.ml-60 {
  margin-left: calc(3.75rem * var(--spacing-scale));
}

.ml-70 {
  margin-left: calc(4.375rem * var(--spacing-scale));
}

.ml-80 {
  margin-left: calc(5rem * var(--spacing-scale));
}

.ml-90 {
  margin-left: calc(5.625rem * var(--spacing-scale));
}

.ml-110 {
  margin-left: calc(6.875rem * var(--spacing-scale));
}

.ml-120 {
  margin-left: calc(7.5rem * var(--spacing-scale));
}

.ml-140 {
  margin-left: calc(8.75rem * var(--spacing-scale));
}

.ml-160 {
  margin-left: calc(10rem * var(--spacing-scale));
}

.ml-170 {
  margin-left: calc(10.625rem * var(--spacing-scale));
}

.ml-200 {
  margin-left: calc(12.5rem * var(--spacing-scale));
}

.ml-240 {
  margin-left: calc(15rem * var(--spacing-scale));
}

.mr-40 {
  margin-right: calc(2.5rem * var(--spacing-scale));
}

.mr-50 {
  margin-right: calc(3.125rem * var(--spacing-scale));
}

.mr-60 {
  margin-right: calc(3.75rem * var(--spacing-scale));
}

.mr-70 {
  margin-right: calc(4.375rem * var(--spacing-scale));
}

.mr-80 {
  margin-right: calc(5rem * var(--spacing-scale));
}

.mr-90 {
  margin-right: calc(5.625rem * var(--spacing-scale));
}

.mr-110 {
  margin-right: calc(6.875rem * var(--spacing-scale));
}

.mr-120 {
  margin-right: calc(7.5rem * var(--spacing-scale));
}

.mr-140 {
  margin-right: calc(8.75rem * var(--spacing-scale));
}

.mr-160 {
  margin-right: calc(10rem * var(--spacing-scale));
}

.mr-170 {
  margin-right: calc(10.625rem * var(--spacing-scale));
}

.mr-200 {
  margin-right: calc(12.5rem * var(--spacing-scale));
}

.mr-240 {
  margin-right: calc(15rem * var(--spacing-scale));
}

.pt-40 {
  padding-top: calc(2.5rem * var(--spacing-scale));
}

.pt-50 {
  padding-top: calc(3.125rem * var(--spacing-scale));
}

.pt-60 {
  padding-top: calc(3.75rem * var(--spacing-scale));
}

.pt-70 {
  padding-top: calc(4.375rem * var(--spacing-scale));
}

.pt-80 {
  padding-top: calc(5rem * var(--spacing-scale));
}

.pt-90 {
  padding-top: calc(5.625rem * var(--spacing-scale));
}

.pt-110 {
  padding-top: calc(6.875rem * var(--spacing-scale));
}

.pt-120 {
  padding-top: calc(7.5rem * var(--spacing-scale));
}

.pt-140 {
  padding-top: calc(8.75rem * var(--spacing-scale));
}

.pt-160 {
  padding-top: calc(10rem * var(--spacing-scale));
}

.pt-170 {
  padding-top: calc(10.625rem * var(--spacing-scale));
}

.pt-200 {
  padding-top: calc(12.5rem * var(--spacing-scale));
}

.pt-240 {
  padding-top: calc(15rem * var(--spacing-scale));
}

.pb-40 {
  padding-bottom: calc(2.5rem * var(--spacing-scale));
}

.pb-50 {
  padding-bottom: calc(3.125rem * var(--spacing-scale));
}

.pb-60 {
  padding-bottom: calc(3.75rem * var(--spacing-scale));
}

.pb-70 {
  padding-bottom: calc(4.375rem * var(--spacing-scale));
}

.pb-80 {
  padding-bottom: calc(5rem * var(--spacing-scale));
}

.pb-90 {
  padding-bottom: calc(5.625rem * var(--spacing-scale));
}

.pb-110 {
  padding-bottom: calc(6.875rem * var(--spacing-scale));
}

.pb-120 {
  padding-bottom: calc(7.5rem * var(--spacing-scale));
}

.pb-140 {
  padding-bottom: calc(8.75rem * var(--spacing-scale));
}

.pb-160 {
  padding-bottom: calc(10rem * var(--spacing-scale));
}

.pb-170 {
  padding-bottom: calc(10.625rem * var(--spacing-scale));
}

.pb-200 {
  padding-bottom: calc(12.5rem * var(--spacing-scale));
}

.pb-240 {
  padding-bottom: calc(15rem * var(--spacing-scale));
}

/*
 * Regalis Override Group
 * 見出し・キャッチコピー = 明朝体（Shippori Mincho） / 本文・料金 = ゴシック（Noto Sans JP）
 * 本文はbodyでゴシックに切替済み。以下は見出し系を明朝に保つための上書き。
 */
.bl_hero_ttl,
.bl_hero_sub,
.bl_hero_catch .bl_hero_ttl,
.bl_about_ttl,
.bl_price_list_ttl,
.bl_price_detail_ttl,
.bl_news_list_ttl,
.bl_parallax_ttl,
.bl_footerCta_list_ttl,
.bl_article_ttl,
.bl_article_body h2,
.bl_contact_line_ttl,
.bl_faq_list_q .ttl,
.bl_profile_name {
  font-family: "Shippori Mincho", "游明朝", "YuMincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}

/* 代表メッセージ／プロフィール（about用の追加コンポーネント） */
.bl_profile {
  display: flex;
  gap: 6%;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .bl_profile {
    flex-direction: column;
    gap: 40px;
  }
}
.bl_profile_img {
  width: 40%;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .bl_profile_img {
    width: 100%;
  }
}
.bl_profile_img img {
  width: 100%;
  display: block;
}
.bl_profile_body {
  flex: 1;
}
.bl_profile_message > p {
  line-height: 2.4;
  margin-bottom: 1.5em;
}
.bl_profile_name {
  margin-top: 2em;
  font-size: var(--fontsize-l);
  line-height: 1.5;
}
.bl_profile_name .role {
  display: block;
  font-size: var(--fontsize-s);
  letter-spacing: 0.08em;
  color: var(--color-gray);
  margin-bottom: 0.4em;
  font-family: "Noto Sans JP", sans-serif;
}

/* お仕立ての流れ（縦ステップ） */
.bl_flow {
  counter-reset: flow;
}
.bl_flow_item {
  position: relative;
  padding: 0 0 50px 90px;
}
@media screen and (max-width: 479px) {
  .bl_flow_item {
    padding-left: 64px;
  }
}
.bl_flow_item:not(:last-child):before {
  content: "";
  position: absolute;
  left: 31px;
  top: 12px;
  bottom: -12px;
  width: 1px;
  background-color: var(--color-secondry);
}
@media screen and (max-width: 479px) {
  .bl_flow_item:not(:last-child):before {
    left: 22px;
  }
}
.bl_flow_num {
  position: absolute;
  left: 0;
  top: 0;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px solid var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: var(--color-accentDark);
  background-color: var(--color-background);
  line-height: 1;
}
@media screen and (max-width: 479px) {
  .bl_flow_num {
    width: 44px;
    height: 44px;
  }
}
.bl_flow_num .label {
  font-size: 0.625rem;
  letter-spacing: 0.1em;
}
.bl_flow_num .num {
  font-size: var(--fontsize-l);
  font-weight: 500;
}
.bl_flow_ttl {
  font-size: var(--fontsize-l);
  line-height: 1.5;
  padding-top: 0.5em;
}
.bl_flow_txt {
  margin-top: 0.8em;
  line-height: 2;
}

/* FLOWセクションを濃緑背景(hp_bgc_primary)化。ステップ見出し・説明文を白系にして視認性を確保（STEP円は白地＋ゴールドのため据え置き） */
#flow .bl_flow_ttl {
  color: var(--color-white);
}
#flow .bl_flow_txt {
  color: var(--color-warmWhite);
}
