@charset "utf-8";

/*
----------------------*/
/*
----------------------------------------*/
/*
---------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------
□TOPページ home
---------------------------------------------------------------------------*/
.h_secTtl {
  font-size: 4rem;
  font-weight: 700;
  position: relative;
  text-align: center;
  @media (width <=768px) {
    font-size: 2.2rem;
  }
  span:not(.not){
    color: var(--primary);
  }
}
.h_secSubTtl{
  color: var(--text-secondary);
  margin-top: 1rem;
  text-align: center;
  font-size: 1.5rem;
  @media (width <=768px) {
    font-size: 1.3rem;
  }
}
/*p-h_mainVisual
--------------------------------------*/
.p-h_mainVisual {
  width: 100%;
  height: calc(100dvh - 6.5rem);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding-bottom: 6.5rem;
  h2 {
      font-size: 6.4rem;
      font-weight: 500;
      background: linear-gradient(135deg, #f55b84 0%, #58abe4 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      @media (width <=768px) {
        font-size: 4rem;
      }
    }
  p {
    font-size: 1.8rem;
    @media (width <=768px) {
      font-size: 1.2rem;
    }
  }
}
.p-h_app_linkWrap {
  margin-top: 4rem;
  @media (width <=768px) {
    margin-top: 2rem;
    img {
      width: 15rem;
    }
  }
}
/*Main
---------------------------------------------------------------------------*/
.p-h_sec_inr {
  background: #FFFFFF;
  margin-top: 6rem;
  padding: 4rem;
  @media (width <=768px) {
    padding: 2rem;
    margin-top: 5rem;
  }
}
/*p-h_concerns
--------------------------------------*/
.p-h_concerns{
  background-color: var(--bg-color1);
}
.p-h_cns_cards {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 8rem;
  @media (width <=768px) {
    margin-top: 3rem;
  }
}
.p-h_cns_card {
  background: var(--white);
  padding: 3rem;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-subtle);
  max-width: 300px;
  text-align: left;
  @media (width <=768px) {
    padding: 2rem 3rem;
    max-width: 100%;
  }
  h4 {
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    margin-top: 1rem;
  }
  p {
    color: var(--text-secondary);
    margin-top: 0.5rem;
    font-size: 1.5rem;
    font-feature-settings: "palt";
  }
}
.p-h_cns_icon{
  text-align: center;
}
/*p-h_feature
--------------------------------------*/
.p-h_feature {
  background-color: var(--bg-color1);
}
.p-h_feat_block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  margin-top: 8rem;
  @media (width <=768px) {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-top: 3rem;
  }
  &.reverse {
    direction: rtl;
    @media (width <=768px) {
      direction: ltr;
    }
  }
  + .p-h_feat_block {
    @media (width <=768px) {
      margin-top: 6rem;
    }
  }
}
.p-h_feat_block.reverse > *{
  direction: ltr;
}
.p-h_feat_content {
  h2 {
    font-size: 3.4rem;
    font-weight: 500;
    margin-bottom: 1rem;
    color: var(--text-primary);
    line-height: 1.5;
    @media (width <=768px) {
      font-size: 2.4rem;
      font-weight: 700;
    }
  }
  p {
    font-size: 1.8rem;
    color: var(--text-secondary);
    margin-bottom: 2rem;
    font-feature-settings: "palt";
    @media (width <=768px) {
      font-size: 1.6rem;
      margin-bottom: 1.5rem;
    }
  }
}
.p-h_feat_tag {
  text-transform: uppercase;
  letter-spacing: .2rem;
  font-size: 1.6rem;
  color: var(--primary);
  font-weight: 700;
  margin-bottom: 1rem;
  display: block;
  @media (width <=768px) {
    font-size: 1.8rem;
  }
}
.p-h_feat_list {
  li {
    margin-bottom: 0.8rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    font-feature-settings: "palt";
    position: relative;
    @media (width <=768px) {
      gap: 0.2rem;
    }
    &::before,
    &::after {
      content: "";
      display: block;
      box-sizing: border-box;
    }
    &::before {
      width: 2.2rem;
      height: 2.2rem;
      border: .2rem solid var(--secondary);
      border-radius: 10rem;
      @media (width <=768px) {
        transform: scale(0.8);
      }
    }
    &::after {
      position: absolute;
      left: .5rem;
      top: .4rem;
      width: .6rem;
      height: 1rem;
      border-color: var(--secondary);
      border-width: 0 .2rem .2rem 0;
      border-style: solid;
      transform-origin: bottom left;
      transform: rotate(45deg);
      @media (width <=768px) {
        transform: rotate(45deg) scale(0.8);left: 0.65rem;
      }
    }
  }
}
.p-h_feat_visual {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-subtle);
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.visual-trisetsu {
  background: linear-gradient(135deg, #a18cd1 0%, #fbc2eb 100%);
}
.visual-rule {
  background: var(--secondary);
}
.visual-detox {
  background: linear-gradient(135deg, #FF9A9E 0%, #FECFEF 100%);
}
/*p-h_plan
--------------------------------------*/
.p-h_plan {
  background-color: var(--bg-color2);
}
.pricing {
  padding: var(--section-gap) 0;
  background-color: #FFF5F6;
  border-radius: 4rem;
  margin: 0 1rem;
}
.p-h_plan_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 3rem;
  max-width: 900px;
  margin: 8rem auto 0;
  @media (width <=768px) {
    margin: 3rem auto 0;
    grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
    gap: 6rem;
  }
}
.p-h_plan_card {
  background: var(--white);
  padding: 4.8rem 3.2rem;
  border-radius: var(--radius-lg);
  text-align: center;
  box-shadow: var(--shadow-subtle);
  transition: transform 0.3s ease;
  position: relative;
  @media (width <=768px) {
    padding: 4.8rem 2rem;
  }
  h4{
    font-weight: 700;
  }
  p{
    color: var(--text-secondary);
    font-size: 1.44rem;
  }
}
.p-h_plan_card.featured {
  border: .2rem solid var(--primary);
  box-shadow: var(--shadow-hover);
}
.p-h_plan_popularBadge {
  position: absolute;
  top: -2.4rem;
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--primary);
  color: var(--white);
  padding: 0.8rem 2.4rem;
  border-radius: 2rem;
  font-size: 1.44rem;
  font-weight: 700;
}
.p-h_plan_price {
  font-size: 4rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 1.5rem 0;
}
.p-h_plan_price span {
  font-size: 1.6rem;
  color: var(--text-secondary);
  font-weight: 400;
}
.p-h_plan_list {
  margin: 3rem 0 0;
  text-align: left;
}
.p-h_plan_list {
  li {
    margin-bottom: 1rem;
    color: var(--text-secondary);
    position: relative;
    padding-left: 2.4rem;
    &.i-check::before,
    &.i-check::after {
      content: "";
      display: block;
      box-sizing: border-box;
    }
    &.i-check::after {
      position: absolute;
      left: 0.3rem;
      top: 0.2rem;
      width: 0.8rem;
      height: 1.4rem;
      border-width: 0 0.3rem 0.3rem 0;
      border-style: solid;
      border-color: var(--secondary);
      transform-origin: bottom left;
      transform: rotate(45deg);
      @media (width <=768px) {
        transform: rotate(45deg) scale(0.9);
        top: 0.1rem;
      }
    }
    &.i-close::after,
    &.i-close::before {
      content: "";
      display: block;
      box-sizing: border-box;
      position: absolute;
      width: 1.8rem;
      height: 0.3rem;
      background: #f41b1b;
      border-radius: .5rem;
      top: 1.3rem;
      left: 0.15rem;
    }
    &.i-close::before {
      transform: rotate(45deg);
      @media (width <=768px) {
        transform: rotate(45deg) scale(0.9);
      }
    }
    &.i-close::after {
      transform: rotate(-45deg);
      @media (width <=768px) {
        transform: rotate(-45deg) scale(0.9);
      }
    }
  }
}
.p-h_plan_note{
  margin-top: 3rem;
  text-align: center;
  font-size: 1.4rem;
  @media (width <=768px) {
    text-align: left;
    font-size: 1.2rem;
    margin-top: 1.5rem;
    text-indent: -1em;
    padding-left: 1em;
  }
}
/*p-h_warning
--------------------------------------*/
.p-h_warning {
  .h_secTtl {
    span {
      display: inline-block;
      position: relative;
      padding-left: 5.4rem;
      @media (width <=768px) {
        padding-left: 3.8rem;
      }
      .i-warning{
        color: var(--primary);
        left: 1.4rem;
        top: 2.8rem;
        transform: scale(2.2);
        @media (width <=768px) {
          transform: scale(1.4);top: 1.1rem;left: 0.6rem;
        }
      }
    }
  }
}
.p-h_war_content{
  margin-top: 5rem;
  @media (width <=768px) {
    margin-top: 2rem;
  }
}
.p-h_war_catch{
  font-size: 1.8rem;
  font-weight: 500;
  text-align: center;
  @media (width <=768px) {
    font-size: 1.6rem;
  }
}
.p-h_war_list {
  border: solid .2rem #ffb03f;
  background-color: #fffcf4;
  border-radius: var(--radius-md);
  margin-top: 4rem;
  padding: 2rem;
  @media (width <=768px) {
    margin-top: 2rem;
    padding: 1.5rem;
  }
  li {
    color: var(--text-secondary);
    position: relative;
    padding-left: 2.4rem;
    + li{
      margin-top: 1rem;
    }
    &.i-check::before,
    &.i-check::after {
      content: "";
      display: block;
      box-sizing: border-box;
    }
    &.i-check::after {
      position: absolute;
      left: 0.3rem;
      top: 0.2rem;
      width: 0.8rem;
      height: 1.4rem;
      border-width: 0 0.3rem 0.3rem 0;
      border-style: solid;
      border-color: var(--secondary);
      transform-origin: bottom left;
      transform: rotate(45deg);
      @media (width <=768px) {
        transform: rotate(45deg) scale(0.9);
        top: 0.1rem;
      }
    }
  }
}
.p-h_war_app{
  margin-top: 8rem;
  text-align: center;
  @media (width <=768px) {
    margin-top: 4rem;
  }
}
.p-h_war_app_catch {
  font-size: 1.8rem;
  font-weight: 500;
  span {
    background: linear-gradient(135deg, #f55b84 0%, #58abe4 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 700;
  }
}
.p-h_war_app_linkWrap {
  margin-top: 4rem;
  @media (width <=768px) {
    margin-top: 2rem;
  }
  a {
    border-radius: .6rem;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    max-width: 22rem;
    padding: 1rem 2.5rem;
    color: #FFF;
    transition: 0.3s ease-in-out;
    font-weight: 600;
    background: rgb(149, 202, 252);
    background: linear-gradient(270deg, rgb(105 171 234) 0%, rgb(50 154 255) 100%);
    position: relative;
    &::after {
      content: '';
      width: 1rem;
      height: 1rem;
      border-top: 0.3rem solid #FFF;
      border-right: 0.3rem solid #FFF;
      transform: rotate(45deg);
      margin-left: 1rem;
      position: absolute;
      right: 3rem;
      top: 0;
      bottom: 0;
      margin: auto;
    }
  }
}
/*p-h_use
--------------------------------------*/
.p-h_use{
  background-color: var(--bg-color1);
}
.p-h_use_boxWrap {
  background: #FFFFFF;
  margin-top: 6rem;
  padding: 4rem;
  @media (width <=768px) {
    padding: 3rem 1.4rem;
    margin-top: 5rem;
  }
  + .p-h_use_boxWrap {
    margin-top: 6rem;
    @media (width <=768px) {
      margin-top: 4rem;
    }
  }
}
.p-h_use_boxWrap.flex > div{
  width: 50%;
  @media (width <=768px) {
    width: 100%;
  }
}
.p-h_use_img {
  text-align: center;
  @media (width <=768px) {
    img{
      width: 48%;
    }
  }
}
.p-h_use_boxWrap:nth-of-type(odd) {
  .p-h_use_box {
    padding-left: 2rem;
    padding-top: 2rem;
  }
}
.p-h_use_boxWrap:nth-of-type(even) {
  .p-h_use_box {
    padding-right: 2rem;
    padding-top: 2rem;
  }
}
.p-h_use_box{
  h4{
    font-size: 2rem;
    font-weight: 700;
    @media (width <=768px) {
      font-size: 1.8rem;
    }
  }
  p{
    font-feature-settings: "palt";
    &:first-of-type{
      margin-top: 2rem;
      @media (width <=768px) {
        margin-top: 1rem;
      }
    }
    &:nth-of-type(n+2){
      margin-top: 1rem;
    }
  }
}
/*p-h_update
--------------------------------------*/
.p-h_update {
  background-color: var(--bg-color1);
}
.p-h_update_list {
  margin-top: 5rem;
  border-top: 1px solid #eee;
  @media (width <= 768px) {
    margin-top: 2rem;
  }
}
.p-h_update_item {
  border-bottom: 1px solid #eee;
  a {
    display: flex;
    align-items: flex-start;
    padding: 2rem 1rem;
    color: var(--text-primary);
    transition: background-color 0.3s ease;
    @media (width <= 768px) {
      flex-wrap: wrap;
      padding: 1.5rem 0.5rem;
    }
    &:hover {
      background-color: #fafafa;
    }
    time {
      font-size: 1.4rem;
      color: var(--text-secondary);
      width: 10rem;
      flex-shrink: 0;
      padding-top: .5rem;
      @media (width <= 768px) {
        width: 8.5rem;
        margin-bottom: 0.5rem;
      }
    }
  }
}
.p-h_update_category {
  background-color: var(--primary);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  padding: 0.2rem 1rem;
  border-radius: 0.4rem;
  margin-right: 2rem;
  margin-top: 0.5rem;
  flex-shrink: 0;
  @media (width <= 768px) {
    margin-right: 1rem;
    margin-bottom: 0.5rem;
  }
}
.p-h_update_ttl {
  font-size: 1.6rem;
  @media (width <= 768px) {
    width: 100%;
  }
}