/* variable
*************************************************** */
:root {
  --clr-primary-default: #3F3A40;
  --clr-primary-dark: #222022;
  --clr-primary-light: #AEA4B1;

  --clr-secondary-default: #7E6C5D;
  --clr-secondary-dark: #41372F;
  --clr-secondary-light: #DDC2AD;

  --clr-bg-01: #F7F6F5;
  --clr-bg-02: #FAF1EA;

  --clr-sub-01: #BE7955;
  --clr-sub-02: #F9F3EF;
  --clr-sub-03: #8E9F28;
  --clr-sub-04: #CF727C;
  --clr-sub-05: #F0C580;
  --clr-sub-06: #9E9ABD;
  --clr-sub-07: #FAFAFA;

  --clr-mono-01: #EEEEEE;
  --clr-mono-02: #CCCCCC;
  --clr-mono-03: #AAAAAA;
  --clr-mono-04: #888888;
  --clr-mono-05: #666666;
  --clr-mono-06: #444444;

  --clr-text-primary: #3F3A40;
  --clr-text-secondary: #8E9F28;
  --clr-text-placeholder: #CCCCCC;
  --clr-text-light: #F7F7F7;

  --clr-wht: #fff;
  --clr-blk: #000000;

  --transit-default: all .4s ease-out;

  --font-en-text: "Montserrat", serif;
  --font-en-display: "EB Garamond", serif;

  --font-size-heading1: 4rem;
  --font-size-heading2: 3rem;
  --font-size-heading3: 2.5rem;
  --font-size-heading4: 2rem;
  --font-size-heading5: 1.5rem;
  --font-size-heading6: 1.25rem;

  --font-size-txt-lg: 1.125rem;
  --font-size-txt-md: 1rem;
  --font-size-txt-sm: 0.875rem;
}



/* ##############################################################################

    DEFAULT

############################################################################## */
html {
  font-size: clamp(9px, 0.8333333333vw, 1rem);
  height: 100%;
  overflow-y: scroll;
  overflow-x: hidden;
  scroll-padding-top: 5rem;
}  
body {
  font-family: 'Noto Sans JP', YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif;
  color: var(--clr-text-primary);
  /* background-color: var(--clr-bg-02); */
  font-weight: 400;
  font-feature-settings: "palt";
  line-height: 1.6;
  word-break: break-word;
  position: relative;
  overflow-x: clip;
}
* { letter-spacing: .03em; }
*,
*:after,
*::before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
ul,
ol { list-style: none; }
a {
  color: var(--clr-text-primary);
  text-decoration: none;
  transition: all .4s ease-out;
  outline : none;
  cursor: pointer;
}
a:hover {
  color: var(--clr-sub-01);
  text-decoration: none;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  transition: all .4s ease-out;
}
iframe { vertical-align: bottom; }

@media screen and (min-width: 768px) and (max-width: 1080px) {
  html {
    font-size: 0.875rem;
    overflow-y: auto;
    overflow-x: auto;
  }
  body {
    min-width: 1080px;
  }
}
@media screen and (min-width: 768px) {
  body {
    font-size: 1.125rem;
  }
  a { 
    -webkit-tap-highlight-color:rgba(0, 0, 0, 0); 
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: min(3.3816425121vw, 0.875rem);
    scroll-padding-top: 4rem;
  }
  body {
    -webkit-text-size-adjust: none;
    font-size: 1.125rem;
  }
}
select, textarea, [type="text"], [type="password"], [type="datetime"], [type="datetime-local"], [type="date"], [type="month"], [type="time"], [type="week"], [type="number"], [type="email"], [type="url"], [type="search"], [type="tel"], [type="color"], .uneditable-input {
  height: 3rem;
  font-size: 1.125rem;
  padding: .5rem 1rem;
}


/* ##############################################################################

  COMMON

############################################################################## */

/* inner
**************************************** */
.inner {
width: 90%;
max-width: 87.5rem; /* 1440 */
margin-left: auto;
margin-right: auto;
}
.inner-xs {
max-width: 47.5rem; /* 760 */
}
.inner-sm {
max-width: 58.75rem;  /* 940 */
}
.inner-md {
  max-width: 75rem;  /* 1200 */
}
.inner-lg {
max-width: 100rem;  /* 1600 */
}
.inner-xl {
max-width: 116.25rem; /* 1860 */
}
@media screen and (max-width: 767px) {
.inner {
  width: 88%;
}
}

/* section_pdg
**************************************** */
.section_pdg {
padding-block: 10rem;
}
.section_pdg-top {
padding-top: 10rem;
}
.section_pdg-btm {
padding-bottom: 10rem;
}
@media screen and (max-width: 767px) {
.section_pdg {
  padding-block: 5.7142857143rem;
}
.section_pdg-top {
  padding-top: 5.7142857143rem;
}
.section_pdg-btm {
  padding-bottom: 5.7142857143rem;
}
}

/* -- sm -- */
.section_pdg-sm {
padding-block: 5rem;
}
.section_pdg-sm-top {
padding-top: 5rem;
}
.section_pdg-sm-btm {
padding-bottom: 5rem;
}
@media screen and (max-width: 767px) {
.section_pdg-sm {
  padding-block: 2.8571428571rem;
}
.section_pdg-sm-top {
  padding-top: 2.8571428571rem;
}
.section_pdg-sm-btm {
  padding-bottom: 2.8571428571rem;
}
}

/* ttl
**************************************** */
.ttl-01,
.ttl-02,
.ttl-03,
.ttl-04,
.ttl-05,
.ttl-06 {
  position: relative;
  letter-spacing: 0.03em;
}
.ttl-01:not([class*=mgn-btm]):not(:last-child) {
  margin-bottom: 3.5rem;
}
.ttl-02:not([class*=mgn-btm]):not(:last-child),
.ttl-03:not([class*=mgn-btm]):not(:last-child),
.ttl-04:not([class*=mgn-btm]):not(:last-child),
.ttl-05:not([class*=mgn-btm]):not(:last-child),
.ttl-06:not([class*=mgn-btm]):not(:last-child) {
  margin-bottom: 1em;
}
.ttl-01 span,
.ttl-02 span,
.ttl-03 span,
.ttl-04 span,
.ttl-05 span,
.ttl-06 span {
  line-height: inherit;
  letter-spacing: inherit;
}

.ttl-01 {
  font-size: 3rem;
  font-weight: 400;
  .en {
    font-size: 1.25rem;
  }
  /* .jp {
    font-size: 2.5rem;
  } */
}
@media screen and (max-width: 767px) {
.ttl-01 {
  font-size: 2.1428571429rem;
}
}
.ttl-01 .subtitle {
margin-top: 1rem;
}
@media screen and (max-width: 767px) {
.ttl-01 .subtitle {
  margin-top: 0.5714285714rem;
}
}
.ttl-01.clr-wht .subtitle {
color: var(--clr-wht);
}
.ttl-01.clr-wht .subtitle::after {
background-color: var(--clr-wht);
}

.ttl-02 {
  font-size: 3rem;
  line-height: 1.4;
  font-weight: 400;
  .en {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
.ttl-02 {
  font-size: 1.8571428571rem;
}
}


.ttl-03 {
  font-size: 2.5rem;
  font-weight: 400;
  .en {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
.ttl-03 {
  font-size: 1.7142857143rem;
}
}

.ttl-04 {
  font-size: 2rem;
  font-weight: 400;
  .en {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
.ttl-04 {
  font-size: 1.4285714286rem;
}
}
.ttl-04.font-en {
font-size: 2rem;
}
@media screen and (max-width: 767px) {
.ttl-04.font-en {
  font-size: 1.4285714286rem;
}
}

.ttl-05 {
font-size: max(22px, 1.5rem);
}
@media screen and (max-width: 767px) {
.ttl-05 {
  font-size: 1.2857142857rem;
}
}
.ttl-05.font-en {
font-size: 1.5rem;
}
@media screen and (max-width: 767px) {
.ttl-05.font-en {
  font-size: 1.2857142857rem;
}
}

.ttl-06 {
font-size: max(18px, 1.25rem);
}
@media screen and (max-width: 767px) {
.ttl-06 {
  font-size: 1.1428571429rem;
}
}
.ttl-06.font-en {
font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
.ttl-06.font-en {
  font-size: 1.2857142857rem;
}
}

.ttl-line {
  font-weight: 400;
  position: relative;
  display: flex;
  align-items: center;
  gap: 4.375rem;
  white-space: nowrap;
  &::after {
    content: "";
    display: inline-block;
    width: 100%;
    height: 1px;
    border-top: 1px solid var(--clr-text-primary);
  }
}
.ttl-underline {
  text-decoration: underline; 
  text-underline-offset: 0.5rem;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--clr-text-secondary);
}
@media screen and (max-width: 767px) {
  .ttl-line {
    gap: 1rem;
  }
}

/* subtitle
********************************************** */
.subtitle,
.subtitle-sm {
letter-spacing: 0.03em !important;
}

.subtitle {
display: block;
color: var(--clr-primary-default);
font-size: max(16px, 1.125rem);
}
@media screen and (max-width: 767px) {
.subtitle {
  font-size: 1.1428571429rem;
}
}

/* breadcrumbs
**************************************** */
.breadcrumbs {
  margin-top: 2.5rem;
  font-size: .875rem;
}
.breadcrumbs .inner {
padding: 1rem 0;
white-space: nowrap;
}
@media print, screen and (min-width: 48em) {
.breadcrumbs .inner {
  overflow: hidden;
  text-overflow: ellipsis;
}
}
@media screen and (max-width: 767px) {
.breadcrumbs .inner {
  overflow: auto;
}
}
.breadcrumbs a:hover {
  color: var(--clr-text-secondary);
}
.breadcrumbs span span:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 0.375rem;
  height: 0.375rem;
  border-top: 1px solid var(--clr-text-primary);
  border-right: 1px solid var(--clr-text-primary);
  rotate: 45deg;
  margin: 0.15em 1em 0.15em 1em;
}

/* .color
*************************************************** */

.clr-primary-default,
.clr-primary-default * { color: var(--clr-primary-default); }  
.clr-primary-dark,
.clr-primary-dark * { color: var(--clr-primary-dark); }
.clr-primary-light,
.clr-primary-light * { color: var(--clr-primary-light); }
.clr-secondary-default,
.clr-secondary-default * { color: var(--clr-secondary-default); }
.clr-secondary-dark,
.clr-secondary-dark * { color: var(--clr-secondary-dark); }
.clr-secondary-light,
.clr-secondary-light * { color: var(--clr-secondary-light); }  
.clr-bg-01,
.clr-bg-01 * { color: var(--clr-bg-01); }  
.clr-bg-02,
.clr-bg-02 * { color: var(--clr-bg-02); }  
.clr-sub-01,
.clr-sub-01 * { color: var(--clr-sub-01); }  
.clr-sub-02,
.clr-sub-02 * { color: var(--clr-sub-02); }  
.clr-sub-03,
.clr-sub-03 * { color: var(--clr-sub-03); }  
.clr-sub-04,
.clr-sub-04 * { color: var(--clr-sub-04); }  
.clr-sub-05,
.clr-sub-05 * { color: var(--clr-sub-05); }  
.clr-sub-06,
.clr-sub-06 * { color: var(--clr-sub-06); }  
.clr-mono-01,
.clr-mono-01 * { color: var(--clr-mono-01); }  
.clr-mono-02,
.clr-mono-02 * { color: var(--clr-mono-02); }  
.clr-mono-03,
.clr-mono-03 * { color: var(--clr-mono-03); }  
.clr-mono-04,
.clr-mono-04 * { color: var(--clr-mono-04); }  
.clr-mono-05,
.clr-mono-05 * { color: var(--clr-mono-05); }  
.clr-mono-06,
.clr-mono-06 * { color: var(--clr-mono-06); }  
.clr-text-primary,
.clr-text-primary * { color: var(--clr-text-primary); }  
.clr-text-secondary,
.clr-text-secondary * { color: var(--clr-text-secondary); }  
.clr-text-placeholder,
.clr-text-placeholder * { color: var(--clr-text-placeholder); }  
.clr-text-light,
.clr-text-light * { color: var(--clr-text-light); }  
.clr-wht,
.clr-wht * { color: var(--clr-wht); }  
.clr-blk,
.clr-blk * { color: var(--clr-blk); }

.bg-primary-default { background-color: var(--clr-primary-default); }
.bg-primary-dark { background-color: var(--clr-primary-dark); }
.bg-primary-light { background-color: var(--clr-primary-light); }
.bg-secondary-default { background-color: var(--clr-secondary-default); }
.bg-secondary-dark { background-color: var(--clr-secondary-dark); }
.bg-secondary-light { background-color: var(--clr-secondary-light); }
.bg-bg-01 { background-color: var(--clr-bg-01); }
.bg-bg-02 { background-color: var(--clr-bg-02); }
.bg-sub-01 { background-color: var(--clr-sub-01); }
.bg-sub-02 { background-color: var(--clr-sub-02); }
.bg-sub-03 { background-color: var(--clr-sub-03); }
.bg-sub-04 { background-color: var(--clr-sub-04); }
.bg-sub-05 { background-color: var(--clr-sub-05); }
.bg-sub-06 { background-color: var(--clr-sub-06); }
.bg-mono-01 { background-color: var(--clr-mono-01); }
.bg-mono-02 { background-color: var(--clr-mono-02); }
.bg-mono-03 { background-color: var(--clr-mono-03); }
.bg-mono-04 { background-color: var(--clr-mono-04); }
.bg-mono-05 { background-color: var(--clr-mono-05); }
.bg-mono-06 { background-color: var(--clr-mono-06); }
.bg-text-primary { background-color: var(--clr-text-primary); }
.bg-text-secondary { background-color: var(--clr-text-secondary); }
.bg-text-placeholder { background-color: var(--clr-text-placeholder); }
.bg-text-light { background-color: var(--clr-text-light); }
.bg-wht { background-color: var(--clr-wht); }
.bg-blk { background-color: var(--clr-blk); }
.bg-01 { background-color: var(--clr-bg-01); }
.bg-02 { background-color: var(--clr-bg-02); }

/* font
**************************************** */
.bold {
  font-weight: 600;
}
.font-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.font-en {
  font-family: "Montserrat", serif;
  font-weight: 600;
}
.font-en2 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
}


/* btn
********************************************** */
.btn {
  border: 0;
  background-color: transparent;
  display: inline-block;
  display: block;
  padding: 0;
}
.btn:hover, .btn:focus, .btn:active, .btn.active, .btn.disabled, .btn[disabled] {
  background-color: transparent;
}
.btn a {
  position: relative;
  z-index: 1;
  display: block;
  padding: 0.875rem 2.5rem 0.875rem 2rem;
  border-radius: 9999px;
  width: fit-content;
  min-width: min(17.5rem, 100%);
  color: var(--clr-text-primary);
  background-color: transparent;
  border: 1px dashed var(--clr-text-primary);
  text-decoration: none;
  font-size: 1rem;
}
.btn-arrow a {
  position: relative;
  padding-right: 2.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  &::after {
    content: "";
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid;
    border-right: 2px solid;
    rotate: 45deg;
    transition: var(--transit-default);
  }
}
@media screen and (max-width: 767px) {
.btn a {
  min-width: 100%;
}
}
.btn a:hover {
  background-color: rgba(174, 164, 177, 0.30);
}
.btn a svg {
  right: 1.5rem;
  fill: currentColor;
}
.btn.btn-ctr a {
  margin-left: auto;
  margin-right: auto;
}

/* --- btn-wh --- */
.btn-wh a {
  color: var(--clr-wht);
  border: 1px dashed var(--clr-wht);
}
.btn-wh a:hover {
  background-color:var(--clr-secondary-dark);
}
.btn-wh a svg {
  fill: var(--clr-primary-default);
}
.btn-wh a:hover svg {
  fill: var(--clr-wht);
}

/* --- btn-cta --- */
.btn-cta a {
  background-color: var(--clr-secondary-default);
}
.btn-cta a:hover {
  background-color: var(--clr-secondary-dark);
}




.bg-ptn {
  background-image: url(../images/common/bg-pattern.jpg);
  background-position: center;
  background-repeat: repeat;
  background-blend-mode: multiply;
  background-attachment: fixed;
}

/* ##############################################################################

  HEADER

############################################################################## */

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  transition: var(--transit-default);
}
.header_top {
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s ease, visibility 0s linear 1s;
}
.header.hide {
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s ease, visibility 0s linear 1s;
}
.header.show {
  opacity: 1;
  visibility: visible;
  transition: opacity 1s ease, visibility 0s;
}
.header > .inner {
  height: 100%;
  max-width: 1500px;
}
@media screen and (max-width: 1080px) {
.header {
  height: 4rem;
}
.header > .inner {
  padding-left: 1.875rem;
}
}
@media print, screen and (min-width: 1081px) {
  .header {
    padding-top: 5rem;
  }
  .header-sm {
    padding-top: .25rem;
    background: linear-gradient(to bottom, rgba(250, 241, 234, 1) 0%, rgba(250, 241, 234, 0) 100%);
    padding-bottom: .25rem;
  }
}
@media screen and (max-width: 1080px) {
  .header-sm {
    background-color: rgba(255, 255, 255, 0.8);
  }
}
/* --- logo -- */
.header--logo {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  width: fit-content;
}
.header--logo a,
.footer--logo a {
display: inline-block;
}
.header--logo a:hover,
.footer--logo a:hover {
  opacity: 0.7;
  color: var(--clr-text-primary);
  text-decoration: none;
}
.header--logo .txt {
  font-size: 1rem;
  letter-spacing: .03em;
  font-weight: 600;
}

@media screen and (max-width: 1080px) {
  .header.header-sm {
    opacity: 1;
  }
  .header--logo {
    right: auto;
    left: 1rem;
  }
  .header--logo a {
    display: inline-flex;
    align-items: center;
  }
  .header--logo .txt {
    font-size: .785rem;
  }
}

/* gnav
********************************************** */
.gnav--menu li .icon_wrap {
  height: 2.875rem;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
}
.gnav--menu li .icon svg {
  display: block;
  fill: var(--clr-text-primary);
  text-align: center;
}
.gnav--menu li.service .icon svg {
  width: 1.125rem;
  aspect-ratio: 18 / 31;
}
.gnav--menu li.feature .icon svg {
  width: 2.5rem;
  aspect-ratio: 40 / 35;
}
.gnav--menu li.product .icon svg {
  width: 2.75rem;
  aspect-ratio: 44 / 47;
}
.gnav--member {
  gap: 1rem;
}
.gnav--member a {
  font-size: .875rem;
  letter-spacing: .03em;
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 50%;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 0 1rem;
  line-height: 1.2;
}
.gnav--member .icon {
  -webkit-mask-size: cover;
  mask-size: cover;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.gnav--member .login a {
  background-color: var(--clr-sub-01);;
  color:var(--clr-wht);
  .icon svg {
    fill: var(--clr-wht);
    width: 1.75rem;
    aspect-ratio: 28 / 18;
    margin-bottom: .25rem;
  }
  &:hover {
    background-color: var(--clr-wht);
    color: var(--clr-sub-01);
    .icon svg {
      fill: var(--clr-sub-01);
    }
  }
}
.gnav--member .cart a {
  background-color: rgba(63, 58, 64, 0.90);
  color: var(--clr-wht);
  .icon svg {
    fill: var(--clr-wht);
    width: 1.875rem;
    aspect-ratio: 30 / 38;
    margin-bottom: .25rem;
  }
  &:hover {
    background-color: var(--clr-sub-01);
  }
}
/* --- subnav --- */
.subnav--menu {
  margin-bottom: 1rem;
  gap: .5rem; 
}
.subnav--link {
  padding-right: 2rem;
  position: relative;
  font-size: .875rem;
  letter-spacing: .03em;
  color: var(--clr-text-primary);
  &:hover {
    color: var(--clr-sub-01);
  }
  &::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    right: .5rem;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid;
    border-right: 2px solid;
    rotate: 45deg;
    transition: var(--transit-default);
  }
}
@media print, screen and (min-width: 1081px) {
  .gnav,
  .gnav--menu,
  .gnav--menu li,
  .gnav--link {
    height: 100%;
  }
  .gnav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }
  .gnav--link {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    padding: 0 1rem;
  }
  .gnav--menu li {
    position: relative;
    &:not(:last-child):after {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      margin: auto; 
      right: 0;
      width: 1px;
      height: 86%;
      border-right: 1px solid var(--clr-sub-01);
    }
  }
  .gnav--menu a {
    width: 11.5rem;
    font-size: 1.125rem;
    letter-spacing: .03em;
    font-weight: 600;
    &:hover {
      text-decoration: none;
    }
  }

  .gnav--menu > li:hover > .gnav--link:not([href="javascript:void(0);"]),
  .gnav--menu > li.current-menu-item > .gnav--link {
    color: var(--clr-sub-01);
    .icon svg{
      fill: var(--clr-sub-01);
    }
  }
  .gnav--rgt {
    gap: 2.5rem;
  }

}
@media screen and (max-width: 1080px) {
  .gnav {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 300;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 4.5rem 7% 1.5rem;
    opacity: 0;
    pointer-events: none;
    overflow: auto;
    background-color: var(--clr-bg-02);
    -webkit-overflow-scrolling: touch;
    transition: var(--transit-default);
  }
  .gnav.active {
    opacity: 1;
    pointer-events: auto;
  }

  .gnav--menu,
  .gnav--cta {
    display: block;
  }
  .gnav--logo {
    margin-bottom: 1rem;
  }
  .gnav--menu li {
    position: relative;
    display: block;
    width: 100%;
  }
  .gnav--menu li {
    border-bottom: 1px solid var(--clr-sub-01);
  }

  .gnav--link {
    display: flex;
    align-items: center;
    padding: 1.0714285714rem;
    font-size: 1.125rem;
  }
  .gnav--menu li:not(.menu-item-has-children) a::before {
    content: "";
    border-top: 1px solid var(--clr-secondary-default);
    border-right: 1px solid var(--clr-secondary-default);
    transform: rotate(45deg);
    position: absolute;
    right: 1rem;
    top: 0;
    bottom: 0;
    margin: auto;
    display: inline-block;
    width: .5rem;
    height: .5rem;
  }
  .gnav--menu li .icon_wrap {
    width: 4rem;
    margin-right: 1rem;
    margin-bottom: 0;
  }
  .subnav--menu {
    margin-bottom: 2rem;
    margin-top: 2rem;
    gap: 1.5rem;
  }
  .subnav--menu li {
    text-align: center;
  }
  .subnav--link {
    font-size: 1.08rem;
  }
}

/* ---btn --- */
@media print, screen and (min-width: 1081px) {
.gnav_btn {
  display: none;
}
}
@media screen and (max-width: 1080px) {
  .gnav_btn {
    position: fixed;
    top: 0;
    right: 0;
    width: 4rem;
    height: 4rem;
    cursor: pointer;
    z-index: 9999;
    transition: var(--transit-default);
  }
  .gnav_btn--lines {
    position: relative;
    width: 1.7142857143rem;
    height: 1.1428571429rem;
  }
  .gnav_btn--lines span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--clr-primary-default);
    transition: var(--transit-default);
  }
  .gnav_btn--lines span:nth-of-type(1) {
    top: 0;
  }
  .gnav_btn--lines span:nth-of-type(2) {
    top: 50%;
    transform: translateY(-50%);
  }
  .gnav_btn--lines span:nth-of-type(3) {
    bottom: 0;
  }
  .active .gnav_btn--lines span:nth-of-type(1) {
    transform: translateY(0.5rem) rotate(-45deg);
  }
  .active .gnav_btn--lines span:nth-of-type(2) {
    opacity: 0;
  }
  .active .gnav_btn--lines span:nth-of-type(3) {
    transform: translateY(-0.5rem) rotate(45deg);
  }
  .gnav--member {
    justify-content: center;
    margin-top: 2rem;
  }
}



/* --- header--btm --- */
.header--btm {
  margin-top: 1.5rem;
}
/* --- search_form --- */
.search_form {
  position: relative;
}
.search_form--txt {
  width: 100%;
  border: 1px solid var(--clr-sub-01);
  border-radius: 9999px;
  padding: 0 1rem;
  height: 3rem;
  font-size: .875rem;
  letter-spacing: .03em;
  color: var(--clr-text-primary);
  background: rgba(255, 255, 255, 0.60);
  &:focus {
    outline: none;
  }
  &::placeholder {
    color: var(--clr-sub-01);
    opacity: .5;
  }
}
.search_form--btn {
  position: absolute;
  top: 0;
  right: 1rem;
  bottom: 0;
  z-index: 10;
  margin: auto;
  display: block;
  width: 1rem;
  height: 1rem;
  aspect-ratio: 1 / 1;
  padding: 0;
  background-image: url(../images/common/search.svg);
  background-position: center;
  background-size: contain;
  background-color: transparent;
  background-repeat: no-repeat;
  border: none;
  cursor: pointer;
}

@media screen and (max-width: 1080px) {
  .search_form {
    width: 80%;
    margin-inline: auto;
  }
  .search_form--txt {
    height: 3rem;
    font-size: 1rem;
  }
}

/* ##############################################################################

  FOOTER

############################################################################## */

.footer { 
  padding-bottom: 10rem;
  background-image: url(../images/common/bg-pattern.jpg);
  background-position: center;
  background-repeat: repeat;
  background-blend-mode: multiply;
  background-attachment: fixed;
}
@media screen and (max-width: 767px) {
  .footer {
    padding-bottom: 4rem;
  }
  .footer > .inner {
    width: 82%;
  }
}

/* footer_top
********************************************** */
.footer_top {
  padding-top: 10rem;
  padding-bottom: 5rem;
  border-bottom: 1px dashed var(--clr-text-primary);
}
/* ---fnav --- */
.fnav {
  gap: 5rem;
  flex-wrap: nowrap;
}
.fnav .ttl {
  font-size: 1.25rem;
  border-bottom: 1px solid var(--clr-text-primary);
  padding: 1rem 0;
  margin-bottom: 1.5rem;
}
.fnav--menu {
  width: 17.5rem;
}
.fnav--menu a {
  display: block;
  padding: .5rem 0 .5rem 2.5rem;
  font-size: var(--font-size-txt-lg);
  position: relative;
}
.fnav--menu a:hover {
  color: var(--clr-sub-01);
}
.fnav--menu a::before {
  content: "";
  width: 1rem;
  height: 2px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  left: .25rem;
  border-top: 2px solid var(--clr-text-primary);
}
@media screen and (max-width: 767px) {
  .footer_top {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .footer--logo {
    margin-bottom: 2rem;
  }

  .fnav {
    gap: 1rem;
  }
  .fnav .ttl {
    padding: .5rem 0;
    margin-bottom: 1rem;
    font-size: 1.25rem;
  }
  .fnav--menu a {
    position: relative;
    padding: 0.5em;
  }
  .fnav--menu a::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0.5em;
    left: auto;
    margin: auto;
    width: 0.4285714286rem;
    height: 0.4285714286rem;
    border-top: 1px solid;
    border-right: 1px solid;
    transform: rotate(45deg);
  }
}

.fnav--menu .sub-menu {
  font-size: var(--font-size-txt-sm);
  line-height: 1;
  opacity: 0.75;
}

/* footer_btm
*************************************************** */
.footer_btm {
  padding: 2.5rem 0;
}
.footer_btm .contact {
  margin-right: 3rem;
  line-height: 2;
}
.footer_btm--menu {
  gap: 3rem;
}
.footer_btm--menu li a {
  font-size: var(--font-size-txt-lg);
  line-height: 1;
  padding: 1rem 0;
  border-bottom: 1px solid var(--clr-text-primary);
  &:hover {
    color: var(--clr-sub-01);
    text-decoration: none;
  }
}


@media print, screen and (min-width: 768em) {
.footer_btm:has(.privacy) > .inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
}
@media screen and (max-width: 767px) {
  .footer_btm .contact {
    margin-right: 0;
    margin-bottom: 2rem;
    font-size: 1rem;
  }
  .footer_btm--menu {
    gap: 2rem;
    justify-content: end;
  }
}



.pbl a,
.pbl img {
display: block;
}
.pbl a {
opacity: 0.5;
}
.pbl a:hover {
opacity: 1;
}


/* ##############################################################################

  SIDE

############################################################################## */

.main_side {
display: grid;
grid-template-columns: minmax(0, 1fr) 16.5rem;
gap: 5rem;
}
@media screen and (max-width: 1080px) {
.main_side {
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 2.8571428571rem;
}
}

.side_section:not(:last-child) {
margin-bottom: 2rem;
padding-bottom: 2rem;
border-bottom: solid 1px var(--clr-bdr);
}

.side_main {
  display: grid;
  grid-template-columns: 22.5rem 1fr;
  gap: 6.875rem;
}
@media screen and (max-width: 767px) {
  .side_main {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 2.8571428571rem;
  }
}

/* side--ttl
**************************************** */
.side--ttl {
  font-size: 1.5rem; /* 24px */
  font-weight: 400;
  letter-spacing: .05em;
  line-height: 1.6;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--clr-text-primary);
}

/* side--list
**************************************** */
.side--list a {
  position: relative;
  display: block;
  padding: 1.125rem 1rem 1.125rem 5rem;
  font-size: 1.25rem; /* 20px */
  line-height: 1.6;
  letter-spacing: .05em;
  background-color: var(--clr-sub-07);
  margin-bottom: .5rem;
}
.side--list a:hover {
  opacity: 1;
  color: var(--clr-sub-01);
  background-color: var(--clr-wht);
  text-decoration: none;
}
.side--list a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  left: 2.5rem;
  margin: auto;
  width: .75em;
  height: 2px;
  border-top: solid 2px var(--clr-text-primary);
  transition: all .4s ease-out;
}
.side--list a:hover::before {
  border-top-color: var(--clr-main);
}
.side--list a::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 1.5rem;
  width: 0.5rem;
  height: 0.5rem;
  border-top: 2px solid;
  border-right: 2px solid;
  rotate: 45deg;
  transition: var(--transit-default);
}

.side--group--ttl {
  margin-top: 3rem;
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: .05em;
  line-height: 1.6;
  padding-left: 2rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--clr-wht);
}

@media screen and (max-width: 767px) {
  .side--list a {
    padding-top: .5rem;
    padding-bottom: .5rem;
    font-size: 1.071rem; /* 15px */
  }
}



/* ##############################################################################

  INDEX

############################################################################## */

.top .ttl_wrap {
  gap: 2.5rem;
  margin-bottom: 3.5rem;
}
.top .ttl_wrap .txt {
  font-size: 1.125rem;
  line-height: 1.8;
}
.top .ttl_wrap .ttl-03 {
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .top .ttl_wrap {
    gap: 1rem;
    margin-bottom: 2rem;
  }
  .top .ttl_wrap .txt {
    line-height: 1.6;
  }
}


/* hero
********************************************** */
.hero {
  position: relative;
  height: auto;
  overflow: clip;
}
.hero--bg {
  height: 100vh;
  position: relative;
}
.hero--bg.hide {
  opacity: 0;
  visibility: hidden;
  transition: opacity 5s linear, visibility 0s linear 5s;
}
.hand-lft {
  bottom: -10rem;
  left: 0;
  transform-origin: left;
  transform: rotate(0);
  transition-duration: 4s;
  width: 53.5rem;
}
.hand-rgt {
  top: 0;
  right: 0;
  transform-origin: right;
  transform: rotate(0);
  transition-duration: 4s;
  width: 53.3rem;
}
.hero--bg.active {
  .hand-lft {
    transform: rotate(-10deg);
  }
  .hand-rgt {
    transform: rotate(5deg);
  }
}
.hero--cont {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hero--cont.cont-01 {
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 1;
}
.hero--cont.cont-02 {
  justify-content: center;
}
.hero--catch {
  font-size: 2.25rem;
  font-weight: 600;
  line-height:4;
  letter-spacing: .2em;
}
.hero--lead {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 3;
  letter-spacing: .05em;
}

.hero--cont.cont-01 {
  opacity: 0;
  visibility: hidden;
  transition: opacity 3s linear, visibility 0s linear 3s;
}

.hero--cont.cont-02 {
  padding-top: 8rem;
  padding-bottom: 6rem;
}

.hero--cont.show {
  opacity: 1;
  visibility: visible;
  transition: opacity 3s linear, visibility 0s;
}

.hero--cont.hide {
  opacity: 0;
  visibility: hidden;
  transition: opacity 3s linear, visibility 0s linear 3s;
}

.home_banner {
  width: 75rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .hero--logo {
    width: 14rem;
    left: 0;
    right: 0;
    top: 6rem;
    margin: auto;
    z-index: 1;
  }
  .hand-lft {
    width: 17rem;
    left: -1rem;
    top: 8rem;
    bottom: auto;
  }
  .hand-rgt {
    width: 16rem;
    top: -1em;
  }
  .hero--cont.cont-01 {
    padding-top: 7rem;
  }
  .hero--catch {
    font-size: 1.7rem;
    margin-bottom: 1rem;
  }
  .hero--lead {
    font-size: 1.15rem;
    line-height: 3;
  }
  .scroll {
    bottom: 2rem;
    left: 0;
    right: 0;
    margin: auto;
    width: 5rem;
    height: 5rem;
    background-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .85714rem;
    font-weight: 500;
    color: var(--clr-text-primary);
    &::before,
    &::after {
      content: "";
      width: 100%;
      height: 100%;
      background-color:rgba(255, 255, 255);
      position: absolute;
      z-index: -1;
      left: 0;
      top: 0;
      right: 0;
      bottom: 0;
      border-radius: 50%;
    }
    &::before {
      animation: blinking 3s ease-out -1.5s infinite forwards
    }
    &::after {
      animation: blinking 3s ease-out infinite forwards;
    }
  }
  .hero--cont.cont-02 {
    padding-top: 0rem;
  }
  .home_banner {
    width: 93%;
  }
  @keyframes blinking {
    0% {
        transform: scale(1);
        opacity: 0.6;
    }

    80% {
        opacity: 0.2;
    }
    100% {
        transform: scale(1.5);
        opacity: 0;
    }
  }
}

.bx-wrapper {
  position: relative;
  margin-bottom: 60px!important;
  padding: 0;
}
.bx-wrapper .bx-viewport {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.bx-wrapper .bx-pager {
  bottom: -30px !important;
  padding-top: 10px;
}
.bx-wrapper .bx-pager.bx-default-pager a {
  margin: 0 10px !important;
  padding-top: 15px;
  width: 100px !important;
  height: 2px !important;
  background: transparent !important;
  border-bottom: 2px solid #CCC;
  border-radius: 0 !important;
}
.bx-wrapper .bx-pager.bx-default-pager a:hover, .bx-wrapper .bx-pager.bx-default-pager a.active {
  background: transparent !important;
  border-bottom: 2px solid #3F3A40;
}



@media screen and (max-width: 767px) {
  .bx-wrapper .bx-pager.bx-default-pager a {
    margin: 0 6px !important;
    padding-top: 0;
    width: 40px !important;
  }
}

/* .home_news
*************************************************** */
.home_news {
  width: 75rem;
  margin-inline: auto;
}
.home_news--inner {
  background: rgba(255, 255, 255, 0.60);
  padding: 1.5rem 5rem;
}
.home_news--item {
  gap: 2.5rem;
  margin-bottom: .5rem;
  padding: .5rem 0;
}
.home_news--item .date {
  font-size: 1rem;
  color: var(--clr-text-secondary);
  font-family: var(--font-en-text);
  font-weight: 600;
  white-space: nowrap;
}
.home_news--item .txt {
  font-size: 1rem;
  line-height: 1.6;
  letter-spacing: .03em;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .home_news {
    width: 90%;
  }
  .home_news--inner {
    padding: 1.5rem 1.5rem;
  }
  .home_news--item {
    gap: .25rem;
    margin-bottom: .5rem;
    padding: .5rem 0;
  }
}

/* .home_message
*************************************************** */
.home_message {
  background-image: url(../images/top/message-bg.png);
  background-size: cover;
  background-position: center;
  padding-bottom: 37rem;
  color: var(--clr-wht);
  margin-top: 14.5rem;
  &::before {
    content: "";
    position: absolute;
    left: 0;
    top: -14.5rem;
    width: 100%;
    height: 14.5rem;
    background-image: url(../images/top/section-line.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
  }
}
.home_message--bg {
  width: 100%;
  height: 100%;
  bottom: 0;
  left: 0;
  z-index: 0;
  img {
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0;
    object-fit: cover;
    object-position: bottom;
  }
}
.home_message--cont {
  position: relative;
  max-width: 65rem;
}
.home_message .ttl {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  img {
    margin-bottom: 1.7rem;
  }
  .txt {
    font-size: 2.25rem;
    font-weight: 500;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    white-space: nowrap;
  }
}
.home_message .txtarea {
  padding-top: 2.625rem;
}
.home_message .catch {
  margin-bottom: 2.5rem;
}
.home_message .catch img {
  width: 33.375rem;
}
.home_message .txtarea .txt {
  font-size: 1.125rem;
  line-height: 2.4;
  margin-bottom: 2.5rem;
  p + p {
    margin-top: 1.5rem;
  }
}
.home_message--img01 {
  top: 20rem;
  left: 4rem;
}
.home_message--img02 {
  bottom: 22rem;
  right: 12rem;
}
.home_message--deco01 {
  top: 0;
  left: 25rem;
}
.home_message--deco02 {
  bottom: 25rem;
  right: 17rem;
}
@media screen and (max-width: 767px) {
  .home_message {
    background-image: url(../images/top/message-bg-sp.png);
    background-size: cover;
    background-position: center;
    padding-bottom: 28rem;
    margin-top: 6rem;
    &::before {
      height: 6rem;
      top: -5.9rem;
    }
  }
  .home_message--bg img {
    object-fit: contain;
  }
  .home_message--cont {
    padding-top: 18rem;
  }
  .home_message .ttl {
    top: -2rem;
    .img {
      margin-bottom: .5rem;
    }
    .txt {
      font-size: 1.4rem;
    }
  }
  .home_message--img01 {
    top: 6rem;
    left: 0;
  }
  .home_message--img02 {
    bottom: 16rem;
    right: 1rem;
  }
  .home_message--deco01 {
    top: -1rem;
    left: 0;
  }
  .home_message--deco02 {
    bottom: 7rem;
    right: 0;
  }
}

/* .home_recommend
*************************************************** */
.home_recommend--item .imgarea {
  padding: 0 6.75rem;
  margin-bottom: 4rem;
  text-align: center;
}
.home_recommend--item .txtarea {
  padding: 0 7.5rem;
}
.home_recommend--item .name {
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.6;
  margin-bottom: .75rem;
}
.home_recommend--item .price {
  font-size: 2rem;
  line-height: 1.6;
  margin-bottom: .75rem;
}
.home_recommend--item .tax {
  font-size: .875rem;
  line-height: 1.6;
  font-weight: 600;
}
.home_recommend--items .slick-dots {
  display: flex;
  width: 50%;
  max-width: 960px;
  height: 2px;
  margin-left: auto;
  margin-right: auto;
  background-color: var(--clr-text-placeholder);
  overflow: hidden;
  margin-top: 9.125rem;
}
.home_recommend--items .slick-dots li {
  flex: 1;
  button {
    display: block;
    width: 100%;
    height: 2px;
    padding: 0;
    margin: 0;
    font-size: 0;
    border: none;
    border-radius: 2px;
    background-color: var(--clr-text-placeholder);
    cursor: pointer;
  }
  &.slick-active {
    button {
      background-color: var(--clr-text-primary);
    }
  }
}
.home_recommend--items .slick-arrow {
  position: absolute;
  bottom: 0;
  top: auto;
  &::before {
    content: "";
    display: block;
    width: 1rem;
    height: 1rem;
    border-top: 2px solid var(--clr-text-primary);
    border-right: 2px solid var(--clr-text-primary);
    rotate: 45deg;
    transition: var(--transit-default);
    transform: translateY(50%);
  }
  &.slick-prev {
    left: 20%;
    transform: scale(-1, 1);

  }
  &.slick-next {
    right: 20%;
  }
}
@media screen and (max-width: 767px) {
  .home_recommend--item .imgarea {
    padding: 0 3rem;
    margin-bottom: 2rem;
  }
  .home_recommend--item .txtarea {
    padding: 0 3.5rem;
  }
  .home_recommend--items .slick-dots {
    margin-top: 4rem;
  }
}


/* .home_products
*************************************************** */
.home_products--inner {
  display: grid;
  grid-template-columns: 22.5rem 1fr;
  gap: 6.875rem;
}
@media screen and (max-width: 767px) {
  .home_products--inner {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
  .home_products--side {
    order: 2;
  }
}

/* .home_series
*************************************************** */
.home_series {
  border-bottom: 1px dashed var(--clr-primary-default);
}
.home_series--items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.875rem;
}
.home_series--item {
  background-color: var(--clr-sub-07);
  padding: 1.5rem 1.5rem 3.625rem;
  position: relative;
  transition: var(--transit-default);
  cursor: pointer;
  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 6.25rem;
    height: 5px;
    border-radius: 0 0 1rem 1rem;
  }
  &:hover {
    background-color: var(--clr-sub-02);
  }
}
.home_series--item .item--link {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.home_series--item .item--ttl {
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: .045em;
  line-height: 1.6;
  margin-bottom: 1rem;
}
.home_series--item .item--txt {
  font-size: 1rem;
  line-height: 1.6
}
.home_series--item:nth-child(1) {
  &::before {
    background-color: var(--clr-sub-04);
  }
}
.home_series--item:nth-child(2) {
  &::before {
    background-color: var(--clr-sub-05);
  }
}
.home_series--item:nth-child(3) {
  &::before {
    background-color: var(--clr-sub-06);
  }
}
.home_series--item:nth-child(4) {
  &::before {
    background-color: var(--clr-sub-03);
  }
}
@media screen and (max-width: 767px) {
  .home_series--items {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .home_series--item {
    padding: .5rem 1rem 2rem;
  }
  .home_series--item .item--img {
    max-width: 80%;
    margin-inline: auto;
  }
  .home_series--item .item--ttl {
    margin-bottom: .5rem;
  }
}
/* .home_trouble
*************************************************** */
.home_trouble {
  border-bottom: 1px dashed var(--clr-primary-default);
}
.home_trouble--items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.875rem;
}
.home_trouble--item {
  background-color: var(--clr-sub-07);
  padding: 0;
  position: relative;
  transition: var(--transit-default);
  cursor: pointer;
  &:hover {
    background-color: var(--clr-sub-02);
  }
}
.home_trouble--item .item--link {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.home_trouble--item .item--img {
  margin-bottom: 1rem;
}
.home_trouble--item .item--ttl {
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.6;
  margin-bottom: 2.5rem;
}
.home_trouble--item .item--btn {
  font-size: 1rem;
  line-height: 1.6;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.125rem;
  color: var(--clr-wht);
  &::after {
    content: "";
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid;
    border-right: 2px solid;
    rotate: 45deg;
    transition: var(--transit-default);
  }
}
.home_trouble--item:nth-child(1) .item--btn {
  background-color: var(--clr-sub-04);
}
.home_trouble--item:nth-child(2) .item--btn {
  background-color: var(--clr-sub-05);
}
.home_trouble--item:nth-child(3) .item--btn {
  background-color: var(--clr-sub-06);
}
.home_trouble--item:nth-child(4) .item--btn {
  background-color: var(--clr-sub-01);
}
@media screen and (max-width: 767px) {
  .home_trouble--items {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .home_trouble--item .item--ttl {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}

/* .home_keyword
*************************************************** */
.home_keyword .ttl_wrap .txt {
  padding-bottom: .8rem;
}
.home_keyword--items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.375rem;
}
.home_keyword--item {
  border-radius: var(--border-radius-tertiary);
  border: 1px solid var(--clr-secondary-default);
  background: var(--clr-wht);
  padding: 2rem 1.5rem;
  transition: var(--transit-default);
  cursor: pointer;
  &:hover {
    background-color: var(--clr-sub-02);
  }
}
.home_keyword--item .item--link {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.home_keyword--item .item--img {
  margin-bottom: 1rem;
}
.home_keyword--item .item--ttl {
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.125rem;
  &::after {
    content: "";
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid;
    border-right: 2px solid;
    rotate: 45deg;
    transition: var(--transit-default);
  }
}
@media screen and (max-width: 767px) {
  .home_keyword--items {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .home_keyword--item {
    padding: 1rem;
  }
  .home_keyword--item .item--img {
    margin-bottom: .5rem;
  }
  .home_keyword--item .item--ttl {
    font-size: 1.125rem;
    gap: 1rem;
  }
}

/* .home_cta
*************************************************** */
.home_cta {
  background-image: url(../images/top/cta-bg.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.home_cta .ttl {
  margin-bottom: 3rem;
}
.home_cta .ttl img {
  width: 26.75rem;
}
.home_cta .txtarea {
  font-size: 1.25rem;
  line-height: 1.6;
  color: var(--clr-wht);
  margin-bottom: 6rem;
}
.home_cta .cta--btnarea {
  display: flex;
  justify-content: space-between;
  gap: 3rem;
}
.home_cta .cta--btn {
  width: 27.5rem;
  height: auto;
  aspect-ratio: 2 / 1;
  position: relative;
  a {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    padding: 2rem 2.68rem;
  }
  /* &.visitor a {
    background: rgba(238, 240, 223, 0.95);
    &:hover {
      background: #DFE0D1;
      background-blend-mode: multiply;
    }
  } */
  &.trial a {
    background: rgba(215, 213, 234, 0.95);
    &:hover {
      background: #D9D6EF;
      background-blend-mode: multiply;
    }
  }
}
.home_cta .cta--btn .txt .en {
  font-size: 1.25rem;
}
.home_cta .cta--btn .txt .jp {
  font-size: 1.5rem;
  padding-right: 1.5rem;
  position: relative;
  &::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    right: 0;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid;
    border-right: 2px solid;
    rotate: 45deg;
    transition: var(--transit-default);
  }
}

@media screen and (max-width: 767px) {
  .home_cta {
    background-image: url(../images/top/cta-bg-sp.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  .home_cta .ttl {
    margin-bottom: 2.5rem;
  }
  .home_cta .ttl img {
    width: 17rem;
  }
  .home_cta .cta--btnarea {
    flex-direction: column;
    gap: 1rem;
  }
  .home_cta .txtarea {
    font-size: 1.125rem;
    margin-bottom: 3rem;
  }
  .home_cta .cta--btn {
    width: 90%;
    margin-inline: auto;
    a {
      padding: 1rem 1.5rem;
    }
  }
}

/* .home_voice
*************************************************** */
.home_voice .ttl_wrap {
  margin-bottom: 6rem;
}
.home_voice .voice--items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
.home_voice .voice--item {
  background-color: var(--clr-sub-02);
  box-shadow: 8px 16px 40px -10px #D7CBB8;
  padding: 1.5rem;
}
.voice--item .label {
  width: 11.25rem;
  height: 2.75rem;
  background: rgba(174, 164, 177, 0.80);
  color: var(--clr-wht);
  font-size: 1.25rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  left: 0;
  right: 0;
  top: -2.5rem;
  margin: auto;
  .num {
    font-size: 2rem;
    line-height: .8;
  }
}
.voice--item {
  &.item-01 .label {
    transform: rotate(-3deg);
  }
  &.item-02 .label {
    transform: rotate(3deg);
  }
  &.item-03 .label {
    transform: rotate(-3deg);
  }
  &.item-04 .label {
    transform: rotate(3deg);
  }
}
.voice--item .item--img {
  margin-bottom: 1rem;
}
.voice--item .item--txt {
  border-bottom: 1px dashed #AEA4B1;
  display: inline;
  line-height: 2;
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  .home_voice .voice--items {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
  .home_voice .voice--item {
    max-width: 90%;
    margin-inline: auto;
  }
}

/* .home_step
*************************************************** */
.home_step--deco01 {
  top: -19rem;
  left: -16rem;
}
.home_step--deco02 {
  bottom: 10rem;
  right: 10rem;
}
.home_step .iconarea {
  margin-left: 3.5rem;
  gap: 1rem;
}
.home_step--conts {
  position: relative;
}
.home_step--cont {
  gap: 5rem;
}

.step--items {
  padding-left: 3.5rem;
  position: relative;
}
.step--item {
  background-color: var(--clr-wht);
  margin-bottom: 1rem;
  padding: 1.5rem 2rem;
  max-width: 26.375rem;
  height: auto;
  position: relative;
  &::before {
    content: "";
    position: absolute;
    left: -3.5rem;
    top: 0;
    width: 100%;
    height: calc(100% + 1rem);
    border-left: 2px solid var(--clr-text-primary);

  }
}
.step--items.night {
  .step--item {
    background-color: #f4f3ff;
  }
}
.step--item .notes-label {
  font-size: .8125rem;
  color: var(--clr-text-primary);
  position: absolute;
  bottom: .5rem;
  right: .75rem;
}
.step--item .item--ttl {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--clr-text-secondary);
  border-bottom: 1px solid var(--clr-blk);
  margin-bottom: .8rem;
  position: relative;
  .label {
    font-size: 1.5rem;
    color: var(--clr-text-primary);
    margin-right: 1rem;
  }
}
.step--item .item--ttl::before {
  content: "";
  display: inline-block;
  position: absolute;
  left: -5.5rem;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 4.25rem;
  height: 2px;
  border-top: 2px solid var(--clr-text-primary);
}
.step--item .item--ttl::after {
  content: "";
  display: inline-block;
  position: absolute;
  left: -1.5rem;
  top: 0;
  bottom: 0;
  width: .625rem;
  height: .625rem;
  margin: auto;
  border-radius: 50%;
  background-color: var(--clr-text-primary);
}
.step--item .item--txt {
  line-height: 1.7;
  font-size: 1rem;
}
.step--items .step--item:last-of-type {
  &::before {
    height: 2.75rem;
  }
}
.step--note {
  font-size: .8125rem;
  margin-top: .5rem;
}
.home_step--cont .imgarea {
  max-width: 28.75rem;
}
@media screen and (min-width: 768px) {
  .home_step--inner  {
    padding: 0 16.25rem;
    height: 300vh;
  }
  .home_step--sticky {
    position: sticky;
    height: 52rem;
    top: 8rem;
  }
  .home_step--cont {
    position: absolute;
  }
  .home_step--cont {
    opacity: 0;
    transition: opacity 1s ease;
  }
  .home_step--inner .icon {
    opacity: .3;
    transition: opacity 1s ease;
  }
  .home_step--cont.active {
    opacity: 1;
  }
  .home_step--inner .icon.active {
    opacity: 1;
  }
}

@media screen and (max-width: 767px) {
  .home_step .ttlarea {
    margin-bottom: 1rem;
  }
  .home_step--deco01 {
    left: auto;
    right: 0;
    top: -2rem;
  }
  .home_step .iconarea {
    display: none;
  }
  .home_step--cont.cont-02 {
    margin-top: 2rem;
  }
  .home_step--cont .imgarea {
    display: none;
  }
  .step--items { 
    padding-left: 0;
  }
  .step--item--ttl {
    font-size: 1.375rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .75rem;
    font-weight: 500;
  }
  .step--items.morning .step--item--ttl {
    color: var(--clr-sub-01);
  }
  .step--items.night .step--item--ttl {
    color: #8b85bb;
  }
  .step--item {
    padding: 1rem 1.25rem;
    margin-bottom: .8rem;
    &::before {
      left: -1rem;
      border-left: 1px solid var(--clr-text-primary);
    }
  }
  .step--item .item--ttl {
    font-size: 1.125rem;
    margin-bottom: .5rem;
  }
  .step--item .item--ttl::before {
    left: -2.25rem;
    width: 1rem;
    height: 1px;
    border-top: 1px solid var(--clr-text-primary);
  }
  .step--item .item--ttl::after {
    width: .5rem;
    height: .5rem;
  }
  .step--item .item--txt {
    line-height: 1.5;
  }
  .step--items .step--item:last-of-type {
    &::before {
      height: 2.25rem;
    }
  }
}

/* .home_
*************************************************** */
.faq--items {
  width: 60rem;
}
.faq--item:first-of-type {
  border-top: 1px dashed var(--clr-primary-default);
}

.faq--item {
  border-bottom: 1px dashed var(--clr-primary-default);
  padding: 2.5rem 0;
}
.faq--item .item--ttl {
  font-size: 1.5rem;
  font-weight: 400;
  position: relative;
  cursor: pointer;
}
.faq--item .item--ttl .toggle {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 3.5rem;
  height: 3.5rem;
  color: var(--clr-text-primary);
  background-color: transparent;
  border-radius: 50%;
  border: 1px solid var(--clr-text-primary);
  transition: var(--transit-default);
  &::before,
  &::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 0.75rem;
    height: 2px;
    border-bottom: 2px solid var(--clr-text-primary);
    transition: var(--transit-default);
  }
  &::after {
    transform: rotate(90deg);
  }
}
.faq--item .item--ttl:hover .toggle {
  background: rgba(174, 164, 177, 0.30);
}
.faq--item .item--ttl.active .toggle {
  background: rgba(174, 164, 177, 0.30);
  transform: rotate(180deg);
  &::after {
    opacity: 0;
  }
}

.faq--item .item--txt {
  line-height: 1.8;
  margin-top: 2rem;
  font-size: 1rem;
}

@media screen and (max-width: 767px) {
  .faq--item {
    padding: 1.5rem 0;
  }
  .faq--item .item--ttl {
    font-size: 1.25rem;
    padding-right: 3rem;
  }
  .faq--item .item--ttl .toggle {
    width: 2rem;
    height: 2rem;
  }
  .faq--item .item--txt {
    margin-top: 1.5rem;
  }
}


/* ##############################################################################

  SUBPAGE

############################################################################## */
.wrap {
  padding-top: 16rem;
  padding-bottom: 10rem;
}
.page_ttl {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.page_ttl--inner {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--clr-text-primary);
}
.page_ttl-jp {
  font-size: var(--font-size-heading1);
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin-bottom: 1.5rem;
}
.page_ttl-jp-sp {
  font-size: 3rem;
}
.page_ttl-en {
  font-size: var(--font-size-txt-lg);
  font-weight: 600;
  color: var(--clr-text-secondary);
  line-height: 1.6;
  letter-spacing: 0.056em;
}
.img_txt {
  display: flex;
  gap: 7.5rem;
  justify-content: space-between;
}
.img_txt .txt_wrap {
  max-width: 40rem;
}
.ttl-num .num {
  font-size: 3rem;
  color: var(--clr-text-primary);
  font-weight: 400;
}
.box {
  background: rgba(255, 255, 255, 0.60);
  padding: 2.5rem;
}
.box-sm {
  padding: 1.5rem 2.5rem;
}
.box-lg {
  padding: 3.5rem;
}
.box-wh {
  background: rgba(255, 255, 255);
}
.column_list {
  border-left: 16px solid var(--clr-text-secondary);
  background: rgba(255, 255, 255, 0.60);
  padding: 1.25rem 3rem;
}
.column_list-lg {
  padding: 2.25rem 3rem;
}
.column_list .ttl {
  font-size: var(--font-size-heading5);
  color: var(--clr-text-secondary);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03em;
  margin-bottom: 1rem;
  display: block;
}
.column_list-sm {
  padding: 1rem 1.5rem;
  border-left: 8px solid var(--clr-text-secondary);
  .ttl {
    font-size: 1.25rem;
  }
}
.column_item .ttl {
  font-size: var(--font-size-heading4);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03em;
  margin-bottom: 1rem;
}
.column_item .item--catch {
  font-size: 1.25rem;
}
.column_item .txt {
  line-height: 1.8;
}
.column_product {
  cursor: pointer;
}
.column_product--link {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.column_product .imgarea {
  background-color: var(--clr-wht);
  padding: 3rem;
  text-align: center;
  transition: var(--transit-default);
}
.column_product:hover .imgarea img {
  transform: scale(1.05);
}
.column_product .ttl {
  max-width: 100%;
  height: auto;
  font-size: 1rem;
  line-height: 1.6;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.125rem;
  color: var(--clr-wht);
  &::after {
    content: "";
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid;
    border-right: 2px solid;
    rotate: 45deg;
    transition: var(--transit-default);
  }
}
.column_product.pink .ttl {
  background-color: var(--clr-sub-04);
}
.column_product.yellow .ttl {
  background-color: var(--clr-sub-05);
}
.column_product.purple .ttl {
  background-color: var(--clr-sub-06);
}
.column_product.green .ttl {
  background-color: var(--clr-sub-03);
}
.column_product.brown .ttl {
  background-color: var(--clr-sub-01);
}
.column_product.gray .ttl {
  background-color: rgba(215, 213, 234);
  color: var(--clr-primary-default);
  font-size: .9375rem;
  letter-spacing: 0;
  font-weight: 400;
}
.faq--item .ttl {
  font-size: var(--font-size-heading6);
  color: var(--clr-text-secondary);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03em;
}
.faq--item ul li {
  padding-left: 1rem;
  position: relative;
  margin-bottom: 1rem;
  &::before {
    content: "";
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background-color: var(--clr-text-secondary);
    position: absolute;
    left: 0;
    top: 0.6rem;
  }
}
.faq--item ul li .sub_ttl {
  color: var(--clr-text-primary);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.03em;
  margin-bottom: .5rem;
}
table {
  border: none;
  height: auto !important;
  width: 100%;
}
th, td {
  padding: 1em;
  border: 1px solid #c9c9c9;
  vertical-align: middle;
}
.table01 {
  margin-top: 2rem;
}
.table01 th {
  background-color: var(--clr-primary-default);
  color: var(--clr-wht);
  text-align: center;
  font-weight: 400;
}
.table01 th {
  min-width: 14rem;
}
.table01 td {
  background-color: var(--clr-wht);
}
.note {
  font-size: 1rem;
  color: var(--clr-mono-05);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.03em;
  margin-top: .5rem;
  position: relative;
  padding-left: 1.2rem;
  &::before {
    content: "\203B";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
  }
}
.red {
  color: red;
}

@media screen and (max-width: 767px) {
  .wrap {
    padding-top: 5rem;
    padding-bottom: 3rem;
  }
  .page_ttl {
    padding-top: 3rem;
    padding-bottom: 1rem;
  }
  .page_ttl-jp {
    font-size: 2.125rem;
    margin-bottom: 1rem;
  }
  .page_ttl-jp-sp {
    font-size: 1.5rem;
  }
  .img_txt {
    flex-direction: column;
    gap: 1.5rem;
  }
  .ttl-num .num {
    font-size: 2.5rem;
  }
  .box {
    padding: 1.125rem;
  }
  .box-sm {
    padding: 1rem 1.5rem;
  }
  .box-lg {
    padding: 2rem;
  }
  .column_list {
    border-left: 8px solid var(--clr-text-secondary);
    padding: .8rem 1.5rem;
  }
  .column_list-lg {
    padding: 1rem 1.5rem;
  }
  .column_list .ttl {
    font-size: 1.25rem;
    margin-bottom: .5rem;
  }
  .column_list .txt {
    font-size: 1.0714285714rem;
  }
  .column_product .imgarea {
    padding: .5rem;
  }
  .column_product .ttl {
    padding: .75rem 1.25rem;
    line-height: 1.4;
    position: relative;
    &::after {
      position: absolute;
      right: .8rem;
      top: 0;
      bottom: 0;
      margin: auto;
    }
  }
  .table-sp-block th,
  .table-sp-block td {
    display: block;
    border-bottom: 0;
  }
  .table-sp-block,
  .table-sp-block th,
  .table-sp-block td {
    width: 100% !important;
  }
  .table01 {
    margin-top: 1rem;
  }
  .table01 th {
    padding: .5em;
  }
}


/* feature
*************************************************** */
.feature_message .lead {
  line-height: 2.5;
}
.index_list {
  line-height: 2;
  padding: 2.5rem 3.5rem;
}
.index_list a .en {
  margin-right: .75rem;
}
.feature_story01,
.feature_story02,
.feature_story04,
.feature_story05 {
  .catch  {
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.03em;
    position: relative;
    padding-left: 4.125rem;
    &::before {
      content: "";
      display: block;
      width: 3.75rem;
      height: 1.5px;
      position: absolute;
      left: .125rem;
      top: .8em;
      background-color: var(--clr-text-secondary);
    }
  } 
}
.feature_story01 .ttl-num .jp {
  margin-top: 2.5rem;
}
.feature_story01,
.feature_story02,
.feature_story03 {
  .txtarea {
    font-size: var(--font-size-heading6);
  }
}
.feature_story01--history .ttl {
  font-weight: 400;
  position: relative;
  display: flex;
  align-items: center;
  gap: 4.375rem;
  white-space: nowrap;
  &::after {
    content: "";
    display: inline-block;
    width: 100%;
    height: 1px;
    border-top: 1px solid var(--clr-text-primary);
  }
}
.feature_story01--history .history_list {
  margin-top: 4rem;
}
.feature_story01--history  .history_item {
  font-size: var(--font-size-heading6);
  line-height: 1.6;
  display: grid;
  grid-template-columns: 9.625rem 1fr;
  gap: 1.5rem;
  align-items: center;
  margin-bottom: 2.375rem;
}
.feature_story01--history  .history_item .year {
  position: relative;
  &::before {
    content: "";
    display: inline-block;
    position: absolute;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    background-color: var(--clr-text-secondary);
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  .unit {
    font-size: 1.125rem;
  }
}
.feature_story03 .ttl-underline{
  font-weight: 400;
}
.feature_story04--cont ul li {
  padding-left: 2.375rem;
  position: relative;
  &::before {
    content: "";
    display: inline-block;
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background-color: var(--clr-text-secondary);
    position: absolute;
    left: 1rem;
    top: 1rem;
  }
  .ttl {
    font-size: var(--font-size-heading5);
    font-weight: 400;
    display: block;
    line-height: 1.6;
    letter-spacing: 0.03em;
    margin-bottom: .75rem;
    color: var(--clr-text-secondary);
  }
}

@media screen and (max-width: 767px) {
  .feature_message .lead {
    line-height: 2;
  }
  .index_list {
    padding: 2rem 2rem;
  }
  .index_list li {
    margin-bottom: .5rem;
  }
  .index_list a .en {
    display: block;
  }
  .feature_story01,
  .feature_story02,
  .feature_story04,
  .feature_story05 {
    .catch  {
      padding-left: 2.125rem;
      &::before {
        content: "";
        display: block;
        width: 1.5rem;
        height: 1px;
        position: absolute;
        left: .125rem;
        top: .8em;
      }
    } 
  }
  .feature_story01 .ttl-num .jp {
    margin-top: 1rem;
  }
  .feature_story01--history .ttl {
    gap: 2rem;
  }
  .feature_story01--history .history_list {
    margin-top: 2rem;
  }
  .feature_story01--history  .history_item {
    display: grid;
    grid-template-columns:  1fr;
    gap: .5rem;
    margin-bottom: 1.5rem;
  }
  .feature_story01--history  .history_item .year {
    &::before {
      width: 1rem;
      height: 1rem;
      position: relative;
    }
  }
  .feature_story04--cont ul li {
    padding-left: 1.5rem;
    position: relative;
    &::before {
      content: "";
      display: inline-block;
      width: 0.375rem;
      height: 0.375rem;
      border-radius: 50%;
      background-color: var(--clr-text-secondary);
      position: absolute;
      left: .5rem;
      top: .75rem;
    }
    .ttl {
      font-size: 1.125rem;
    }
  }
}

/* guide
*************************************************** */
.guide_payment .box {
  width: 31.25rem;
  font-size: 1rem;
}
.guide_payment .box dt {
  width: 5rem;
  font-weight: 600;
  position: relative;
  &::after {
    content: "\FF1A";
    position: absolute;
    right: 1rem;
    top: 0;
    bottom: 0;
    margin: auto;
  }
}
.guide_shipping .box {
  width: 37.5rem;
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  .guide_payment .box {
    width: 100%;
  }
  .guide_shipping .box {
    width: 100%;
  }
}

/* service
*************************************************** */
@media screen and (max-width: 767px) {
  .service_visitor .cont_wrap,
  .service_visitor .column_products {
    width: 100%;
  }
}




/* ##############################################################################

  PRODUCT

############################################################################## */
.p-product-main {
  display: grid;
  grid-template-columns: 27rem 1fr;
  gap: 3rem;
  margin-bottom: 3rem
}
.p-product-thumb-list {
  display: flex;
  flex-wrap: wrap;
  margin-left: -4px;
  margin-right: -4px;
  margin-top: 8px;
}
.p-product-thumb-list__item {
  box-sizing: border-box;
  margin-bottom: 8px;
  padding-left: 4px;
  padding-right: 4px;
  width: 20%;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.p-product-thumb-list__img {
  position: relative;
  text-align: center;
}
.p-product-thumb-list__img:before {
  content: "";
  display: block;
  padding-top: 100%;
}
.p-product-thumb-list__img img {
  display: inline-block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: auto !important;
  max-width: 100%;
  max-height: 100%;
  text-align: center;
}
.p-product-img__main .slick-prev,
.p-product-img__main .slick-next {
  position: absolute;
  background: transparent;
  border: none;
  outline: none;
  font-size: 0;
  display: block;
  top: 50%;
  width: 30px;
  height: 30px;
  transition: all 0.4s ease;
  z-index: 1;
}
.p-product-img__main .slick-prev {
  left: -1rem;
}
.p-product-img__main .slick-next {
  right: -1rem;
}
.p-product-img__main .slick-prev:before, .p-product-img__main .slick-next:before {
  content: "";
  position: absolute;
  top: 7px;
  left: 10px;
  width: 15px;
  height: 15px;
  border-left: 2px solid var(--clr-text-primary);
  border-top: 2px solid var(--clr-text-primary);
  transition: all 0.4s ease;
  z-index: 1;
}
.p-product-img__main .slick-prev:before {
  transform: rotate(-45deg);
}
.p-product-img__main .slick-next:before {
  left: 4px;
  transform: rotate(135deg);
}
.p-product-info__ttl {
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: .03em;
  line-height: 1.6;
  margin-bottom: 1rem;
}
.p-product-simple_explain {
  font-size: .875rem;
  line-height: 1.8;
  margin-bottom: 1rem;
}
.p-product-price {
  font-size: 2rem;
  line-height: 1.6;
  margin-bottom: .75rem;
}
.p-product-price .tax {
  font-size: .875rem;
  line-height: 1.6;
  font-weight: 600;
}
.p-product-form-stock {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}
.product_wrap input[type=text] {
  box-sizing: border-box;
  padding: 5px;
  height: 40px;
  border: 1px solid #bfbfbf;
  font-size: 16px;
  width: 4.5rem;
}

.c-btn-cart {
  position: relative;
  z-index: 1;
  display: block;
  padding: 0.875rem 2.5rem 0.875rem 2rem;
  border-radius: 9999px;
  width: fit-content;
  min-width: min(17.5rem, 100%);
  color: var(--clr-text-primary);
  background-color: transparent;
  border: 1px dashed var(--clr-text-primary);
  text-decoration: none;
  font-size: 1rem;
  cursor: pointer;
  transition: var(--transit-default);
}
.c-btn-cart:hover {
  background-color: var(--clr-text-primary);
  color: var(--clr-wht);
}
/* .c-btn-cart::after {
  content: "";
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-top: 2px solid;
  border-right: 2px solid;
  rotate: 45deg;
  transition: var(--transit-default);
} */

.p-product-link-list {
  margin-top: 1.5rem;
}
.p-product-link-list__item {
  margin-bottom: .25rem;
}
.p-product-link-list__item a {
  font-size: .9375rem;
  line-height: 1.4;
  color: var(--clr-sub-01);
  position: relative;
  padding-left: 1.25rem;
  text-decoration: none;
  transition: var(--transit-default);
}
.p-product-link-list__item a::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 1px solid;
  border-bottom: 1px solid;
  transform: rotate(-45deg);
}
.p-product-link-list__item a:hover {
  color: var(--clr-secondary-default);
  border-bottom: 1px solid var(--clr-secondary-default);
}
.products_list.history {
  grid-template-columns: repeat(6, 1fr);
}
@media screen and (max-width: 767px) {
  .p-product-main {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    margin-bottom: 3rem;
    display: block;
  }
  .p-product-img__main {
    width: auto;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .p-product-img__main-item {
    text-align: center;
  }
  .u-overflow-slide {
    overflow-x: scroll;
    white-space: nowrap;
    padding-bottom: 1.5rem;
    width: 100%;
  }
  .p-product-thumb-list {
    margin-left: 0;
    margin-right: 0;
    flex-wrap: nowrap;
  }
  .p-product-thumb-list__item {
    margin-right: 5px;
    width: 60px;
    padding-left: 0;
    padding-right: 0;
  }
  .c-btn-cart {
    width: 100%;
  }
  .p-product-link-list__item {
    margin-bottom: .5rem;
  }
  .p-product-link-list__item a {
    font-size: 1rem;
  }
  .c-favorite-list {
    margin-left: 0;
    margin-right: 0;
    flex-wrap: nowrap;
  }
  .c-favorite-list__item {
    width: 10rem;
    margin-right: .5rem;
    margin-bottom: 0;
    padding-left: 0px;
    padding-right: 0px;
  }
  .c-favorite-list__img {
    margin-bottom: 10px;
    width: 10rem;
    text-align: center;
  }
  .c-favorite-list__txt {
    width: 10rem;
    white-space: normal;
  }
}


/* ##############################################################################

  PRODUCT_LIST

############################################################################## */
.p-item-list-head {
  display: flex;
  justify-content: space-between;
}
.p-item-list-head {
  margin-bottom: 3rem;
}
.p-item-sort-list {
  display: flex;
  flex-wrap: wrap;
}
.p-item-sort-list__item {
  margin-left: 30px;
}
.p-item-sort-list__item:first-child {
  margin-left: 0;
}
.p-item-sort-list__item span {
  text-decoration: underline;
}
.p-item-sort-list__item a:hover {
  text-decoration: underline;
  color: var(--clr-secondary-default);
}
.products_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.875rem;
}
.product_item--img {
  margin-bottom: 1rem;
}
.product_item--name {
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0.03em;
  margin-bottom: 0.5rem;
}
.product_item--price {
  font-size: 1.25rem;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0.03em;
  margin-bottom: 0.5rem;
}
.product_item--price .tax {
  font-size: 0.875rem;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0.03em;
}
.product_item--price {
  font-size: 1.25rem;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0.03em;
  margin-bottom: 0.5rem;
}
.product_item--price .tax {
  font-size: 0.875rem;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .products_list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* .group_wrap
*************************************************** */
.group_wrap {
  padding-bottom: 4rem;
  margin-bottom: 4rem;
  border-bottom: 1px solid var(--clr-text-primary);
}
.group--ttlarea {
  padding: 0 19.25rem;
  background-color: var(--clr-wht);
  height: 11.125rem;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-left: 2rem solid var(--clr-sub-04);
}
.rosehip .group--ttlarea {
  border-color: var(--clr-sub-04);
}
.rosemary .group--ttlarea {
  border-color: var(--clr-sub-06);
}
.karasuuri .group--ttlarea {
  border-color: var(--clr-sub-05);
}
.kumazasa .group--ttlarea {
  border-color: var(--clr-sub-03);
}

.group--ttlarea .ttl {
  font-size: 3rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.6;
}
.group--ttlarea .txt {
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0.03em;
}
.group--icon {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  left: 4.5rem;
}
.group--cont {
  display: grid;
  grid-template-columns: 26rem 1fr;
  gap: 4rem;
  align-items: center;
}
.group--img {
  width: 416px;
  height: 461px;
}
.group--txt .ttl {
  font-size: var(--font-size-heading4);
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.6;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--clr-text-primary);
}

@media screen and (max-width: 767px) {
  .group_wrap {
    padding-bottom: 2rem;
  }
  .group--ttlarea {
    border-width: .75rem;
    padding: 1rem 2rem 1rem 6rem;
    height: auto;
  }
  .group--ttlarea .ttl {
    font-size: 1.75rem;
  }
  .group--icon {
    left: 1rem;
    width: 7rem;
  }
  .group--cont {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .group--img {
    height: auto;
    width: 70%;
    margin: 0 auto;
  }
  .group--txt .ttl {
    font-size: 1.5rem;
  }
  .group--txt .txt {
    font-size: 1.125rem;
    line-height: 1.7;
  }
}

/* pager
*************************************************** */
.c-pager {
  margin-top: 75px;
  margin-bottom: 75px;
  text-align: center;
}
.c-pager__total {
  margin-bottom: 30px;
}
.c-pager-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 30px;
}
.c-pager-list__item {
  box-sizing: border-box;
  overflow: hidden;
  margin-left: 3px;
  margin-right: 3px;
  min-width: 30px;
  line-height: 30px;
  background: #ffffff;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .c-pager-list__item {
    display: none;
    min-width: 45px;
    line-height: 45px;
  }
}
@media screen and (max-width: 767px) {
  .c-pager-list__item.is-visible {
    display: block;
    margin-left: 15px;
    margin-right: 15px;
    width: auto;
  }
}
.c-pager-list__link {
  display: block;
  position: relative;
  border: 1px solid #ffffff;
  background: #ffffff;
  color: #000000;
  min-width: 30px;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@media screen and (max-width: 767px) {
  .c-pager-list__link {
    min-width: 45px;
  }
}
.c-pager-list__link:hover {
  border-color: #d8d8d8;
  background: #d8d8d8;
  color: #000000;
  text-decoration: none;
}
.c-pager-list__link.is-current {
  border-color: #535353;
}
@media screen and (max-width: 767px) {
  .c-pager-list__link.is-current {
    border-color: #ffffff;
  }
}
.c-pager-list__link.is-current:hover {
  border-color: #535353;
  background: #ffffff;
}
@media screen and (max-width: 767px) {
  .c-pager-list__link.is-current:hover {
    border-color: #ffffff;
  }
}
.c-pager-list__link.is-prev, .c-pager-list__link.is-next {
  border-color: #d8d8d8;
  background: #d8d8d8;
  text-indent: -99999px;
}
.c-pager-list__link.is-prev:before, .c-pager-list__link.is-next:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -2px;
  margin-top: -4px;
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}
@media screen and (max-width: 767px) {
  .c-pager-list__link.is-prev:before, .c-pager-list__link.is-next:before {
    margin-left: -4px;
    margin-top: -8px;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
  }
}
.c-pager-list__link.is-prev:hover, .c-pager-list__link.is-next:hover {
  background: rgba(216, 216, 216, 0.7);
}
.c-pager-list__link.is-prev.is-disabled:hover, .c-pager-list__link.is-next.is-disabled:hover {
  background: #d8d8d8;
}
.c-pager-list__link.is-prev:before {
  border-right: 4px solid #000000;
}
@media screen and (max-width: 767px) {
  .c-pager-list__link.is-prev:before {
    border-right: 8px solid #000000;
  }
}
.c-pager-list__link.is-prev.is-disabled:before {
  border-right-color: #aaaaaa;
}
.c-pager-list__link.is-next:before {
  border-left: 4px solid #000000;
}
@media screen and (max-width: 767px) {
  .c-pager-list__link.is-next:before {
    border-left: 8px solid #000000;
  }
}
.c-pager-list__link.is-next.is-disabled:before {
  border-left-color: #aaaaaa;
}

.c-pager-list__page {
  display: none;
}
@media screen and (max-width: 767px) {
  .c-pager-list__page {
    display: inline-block;
  }
}