/* ##############################################################################

    DEFAULT

############################################################################## */
  html {
    font-size: max(9px, min(0.8333333333vw, 1rem));
    height: 100%;
    overflow-y: scroll;
    overflow-x: hidden;
  }
  @media screen and (min-width: 768px) and (max-width: 1080px) {
    html {
      overflow-y: auto;
      overflow-x: auto;
    }
  }
  @media screen and (max-width: 767px) {
    html {
      font-size: min(3.3816425121vw, .875rem);
    }
  }
  body {
    position: relative;
    font-family: "Poppins","Aoto Gothic Medium", YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif;
    color: var(--txt-primary);
    background-color: var(--bg-03);
    font-weight: 500;
    font-feature-settings: "palt";
    line-height: 1.7;
    word-break: break-word;
    padding-top: 7rem;
  }
  *,
  *:after,
  *::before {
    letter-spacing: .05em;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  ul,
  ol { list-style: none; }
  small,.txt-sm { font-size: 86%; line-height: 1.5; }
  .txt-lg, .txt-lg-pc { font-size: 115%; }
  a {
    color: var(--txt-primary);
    text-decoration: none;
    transition: all .4s ease-out;
    outline : none;
  }
  a:hover {
    opacity: 1;
    text-decoration: none;
    color: var(--primary-default);
  }
  img,
  svg {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    transition: all .4s ease-out;
  }
  iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    vertical-align: bottom;
  }
  address { font-style: normal; }

  @media screen and (min-width: 768px) {
    a { 
      -webkit-tap-highlight-color:rgba(0, 0, 0, 0); 
    }

    @-moz-document url-prefix() {
      * { font-feature-settings: "palt"; }
    }
    @media screen and (-webkit-min-device-pixel-ratio:0) {
      * { font-feature-settings: "palt"; }
    }
  }
  @media print, screen and (min-width: 768px) {
    body {
      font-size: max(14.1666666667px, min(0.8333333333vw, 1rem));
    }
  }
  @media screen and (max-width: 767px) {
    body {
      padding-top: 4.5rem;
      -webkit-text-size-adjust: none;
      word-break: break-all;
    }
    .txt-lg-pc { font-size: 1rem; }
  }


/* ##############################################################################

    COMMON

############################################################################## */

/* input
**************************************** */
select,
option,
textarea,
input[type="checkbox"],
input[type="radio"] {
	border: 2px solid #BABDC4;
  font-family: YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif !important;
  font-weight: 600;
}

input[type="text"],
input[type="number"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="date"],
input[type="url"] {
	padding: .5rem .75rem;
	border: 2px solid #BABDC4;
  font-family: YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif !important;
  font-weight: 600;
  border-radius: .25rem;
}

/* layout
**************************************** */

  /* --- inner --- */
  .inner {
    width: 90%;
    max-width: 100rem; /* 1600px */
    margin: 0 auto;
  }
  .inner-sm {
    max-width: 50rem;
  }
  .inner-md {
    max-width: 80rem;
  }
  .inner-lg {
    max-width: 105rem; /* 1680px */
  }

  /* --- section_pdg --- */
  .section_pdg,
  .section_pdg-top,
  .section_pdg-btm {
    font-size: 1rem;
  }
  .section_pdg {
    padding-top: 5.5rem;
    padding-bottom: 5.5rem;
  }
  .section_pdg-top {
    padding-top: 6.5rem;
  }
  .section_pdg-top-sm {
    padding-top: 3rem;
  }
  .section_pdg-btm {
    padding-bottom: 6.5rem;
  }

  /* --- float --- */
  .flt-rgt { float: right; }
  .flt-lft { float: left; }

  /* --- position --- */
  .pos_rel {
    position: relative;
    z-index: 1;
  }
  .pos_ab {
    position: absolute;
    z-index: 0;
  }

  /* --- margin --- */
  .mgn-btm0 { margin-bottom: 0; }
  .mgn-btm4 { margin-bottom: .25rem; }
  .mgn-btm8 { margin-bottom: .5rem; }
  .mgn-btm12 { margin-bottom: .75rem; }
  .mgn-btm16 { margin-bottom: 1rem; }
  .mgn-btm24 { margin-bottom: 1.5rem; }
  .mgn-btm32 { margin-bottom: 2rem; }
  .mgn-btm40 { margin-bottom: 2.5rem; }
  .mgn-btm48 { margin-bottom: 3rem; }
  .mgn-btm56 { margin-bottom: 3.5rem; }
  .mgn-btm64 { margin-bottom: 4rem; }
  .mgn-btm72 { margin-bottom: 4.5rem; }
  .mgn-btm80 { margin-bottom: 5rem; }
  .mgn-btm120 { margin-bottom: 7.5rem; }
  .mgn-btm160 { margin-bottom: 10rem; }
  .mgn-auto { width: fit-content; margin-left: auto; margin-right: auto; }

  /* --- pc or sp --- */
  .none,
  .pc-none,
  .pc-none-inline,
  .pc-none-table,
  .pc-none-flex { display: none; }
  .sp-none { display: block; }
  .sp-none-inline { display: inline; }
  .sp-none-table { display: table; }
  .sp-none-flex {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }

  @media screen and (max-width: 1650px) and (min-width: 768px) {
    .section_pdg,
    .section_pdg-top,
    .section_pdg-btm {
      font-size: 1.125rem; /* 18px */
    }
  }
  @media screen and  (max-width: 767px) {
    .inner-sm { width: 86%; }

    /* --- section_pdg --- */
    .section_pdg {
      padding-top: 3rem;
      padding-bottom: 3rem;
    }
    .section_pdg-top {
      padding-top: 3.5rem;
    }
    .section_pdg-btm {
      padding-bottom: 3.5rem;
    }
    .section_pdg-top-sm {
      padding-top: 1.5rem;
    }
    .section_deco::before {
      top: -3rem;
    }
    .section_deco2::before {
      top: -2rem;
    }

    /* --- margin --- */
    .mgn-btm12 { margin-bottom: .75rem; }
    .mgn-btm16 { margin-bottom: .75rem; }
    .mgn-btm24 { margin-bottom: 1rem; }
    .mgn-btm32 { margin-bottom: 1.5rem; }
    .mgn-btm40 { margin-bottom: 1.75rem; }
    .mgn-btm48 { margin-bottom: 2rem; }
    .mgn-btm56 { margin-bottom: 2rem; }
    .mgn-btm64 { margin-bottom: 2rem; }
    .mgn-btm72 { margin-bottom: 2.5rem; }
    .mgn-btm80 { margin-bottom: 2.5rem; }
    .mgn-btm120 { margin-bottom: 4rem; }
    .mgn-btm160 { margin-bottom: 5rem; }
    .sp-none,
    .sp-none-inline,
    .sp-none-table,
    .sp-none-flex { display: none !important; }
    .pc-none { display: block; }
    .pc-none-inline { display: inline; }
    .pc-none-table { display: table; }
    .pc-none-flex {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
    }
  }

/* flex
**************************************** */
  
  /* --- ブロック要素 --- */
  .flex {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .flex-pc-none {
    display: none;
  }

  /* --- インライン要素 --- */
  .flex-inline {
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
  }

  /* --- 逆向き --- */
  .flex-reverse {
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
  }
  
  /* --- 縦並び --- */
  .flex-column {
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }

  /* --- 水平方向揃え --- */
  .flex-j-start {
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
  }
  .flex-j-end {
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
  .flex-j-ctr {
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  .flex-j-between {
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .flex-j-around {
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }

  /* --- 垂直方向揃え --- */
  .flex-a-start {
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .flex-a-end {
    -webkit-align-items: flex-end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
  .flex-a-ctr {
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .flex-a-baseline {
    -webkit-align-items: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
  }
  .flex-a-stretch {
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
  }

  /* --- 子要素の折り返し設定 --- */
  .flex-c-nowrap {
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
  }
  .flex-c-wrap {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  /* --- 子要素の複数行設定 --- */
  .flex-c-reverse {
    -webkit-flex-wrap: wrap-reverse;
    -ms-flex-wrap: wrap-reverse;
    flex-wrap: wrap-reverse;
  }
  .flex-c-start {
    -webkit-align-content: flex-start;
    -ms-flex-line-pack: start;
    align-content: flex-start;
  }
  .flex-c-start {
    -webkit-align-items: flex-start;
    -ms-flex-line-pack: start;
    align-content: flex-start;
  }
  .flex-c-end {
    -webkit-align-content: flex-end;
    -ms-flex-line-pack: end;
    align-content: flex-end;
  }
  .flex-c-ctr {
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center;
  }
  .flex-c-baseline {
    -webkit-align-content: baseline;
    -ms-flex-line-pack: baseline;
    align-content: baseline;
  }
  .flex-c-stretch {
    -webkit-align-content: stretch;
    -ms-flex-line-pack: stretch;
    align-content: stretch;
  }
  
  /* --- gridレイアウト --- */
  .grid-col2,
  .grid-col3,
  .grid-col4 {
    display: grid;
    gap: 4rem 2rem;
    grid-auto-flow: row;
  }
  .grid-col2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid-col3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .grid-col4 {
    grid-template-columns: repeat(4, 1fr);
  }
  
  /* --- gap --- */
  .gap12 { gap: .75rem; }
  .gap16 { gap: 1rem; }
  .gap24 { gap: 1.5rem; }
  .gap32 { gap: 2rem; }

  @media screen and (max-width: 768px) {

    .flex-pc-none {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
    }

    /* --- 縦並び - sp --- */
    .flex-sp-block {
      -webkit-flex-direction: column;
      -ms-flex-direction: column;
      flex-direction: column;
    }
    .flex-sp-block.flex-col2 > *,
    .flex-sp-block.flex-col2-lg > *,
    .flex-sp-block.flex-col3 > *,
    .flex-sp-block.flex-col3-lg > * {
      width: 100%;
      margin-right: 0;
      margin-bottom: 10%;
    }
    .flex-sp-block.flex-col2 > *:last-child,
    .flex-sp-block.flex-col2-lg > *:last-child,
    .flex-sp-block.flex-col3 > *:last-child,
    .flex-sp-block.flex-col3-lg > *:last-child {
      margin-bottom: 0;
    }

    /* --- 並び順変更 - sp --- */
    .flex-sp-reverse {
      -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse;
    }

    /* --- ざっくりflexレイアウト - sp --- */
    .flex-sp-col2 > *,
    .flex-sp-col2.flex-col3 > *:nth-child(3n+3),
    .flex-sp-col2.flex-col3-lg > *:nth-child(3n+3) {
      width: 48.5%;
      margin-right: 3%;
      margin-bottom: 3%;
    }
    .flex-sp-col2 > *:nth-child(even) { margin-right: 0; }
    .flex-sp-col3 > *,
    .flex-sp-col3.flex-col4 > *:nth-child(4n+4) {
      width: 31.33%;
      margin-right: 3%;
      margin-bottom: 3%;
    }
    .flex-sp-col3 > *:nth-child(3n+3) { margin-right: 0; }

    /* --- gridレイアウト --- */
    .grid-sp-block.grid-col2 {
      grid-template-columns: repeat(1, 1fr);
    }
    .grid-sp-block.grid-col3,
    .grid-sp-block.grid-col4 {
      gap: 1rem;
      grid-template-columns: repeat(1, 1fr);
    }
  
    /* --- gap --- */
    .gap-sp7 { gap: .5rem; }
    .gap-sp10 { gap: .7rem; }
  }

/* ttl
**************************************** */
  /* --- breadcrumbs --- */
  .breadcrumbs {
    margin-top: 1rem;
    font-size: 1rem;
    color: var(--txt-secondary);
    text-align: left;
    a {
      color: var(--txt-secondary);
      text-decoration: underline;
      &::after {
        content: "";
        display: inline-block;
        width: .45em;
        aspect-ratio: 1 / 1;
        margin: 0 .75em;
        border-top: solid 1px;
        border-right: solid 1px;
        transform: translateY(-.1em) rotate(45deg);
        transition: all .4s ease-out;
      }
      &:hover {
        opacity: .7;
      }
    }
  }

  /* --- ttl-01 --- */
  .ttl-01 {
    font-size: 3.5rem;
    text-align: center;
    letter-spacing: .08em;
    &:not([class*=mgn-btm]) {
      margin-bottom: 2.5rem;
    }
    &::after {
      content: "";
      display: block;
      width: 2.5rem;
      aspect-ratio: 40 / 3;
      margin-top: 1.5rem;
      margin-left: auto;
      margin-right: auto;
      background-color: var(--primary-default);
    }
  }
  .home .ttl-01 {
    font-size: 4rem; /* 64px */
  }
  .ttl-01.txt-lft {
    text-align: left;
    &::after {
      margin-left: 0;
    }
  }
  .ttl-01 .bg,
  .hero .cacth {
    position: relative;
    display: block;
    width: fit-content;
    padding: .6em .9em;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.5rem;
    font-size: 1.125rem; /* 18px */
    line-height: 1;
    background-color: #fff;
    color: var(--primary-default);
    border-radius: .25rem;
    &::before {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      margin: auto;
      width: .875rem; /* 14px */
      height:fit-content;
      aspect-ratio: 1 / 1;
      background-color: #fff;
      transform: translateY(50%) rotate(45deg);
    }
  }
  .bg-05 .ttl-01 .bg,
  .bg-05 .ttl-01 .bg::before {
    background-color: var(--bg-01);
  }

  /* --- ttl-02 / ttl-03 --- */
  .ttl-02,
  .ttl-03 {
    align-items: center;
    justify-content: center;
    font-size: 2.5rem; /* 40px */
    line-height: 1.6;
    letter-spacing: .08em;
    text-align: center;
    &:not([class*=mgn-btm]) {
      margin-bottom: 2.5rem;
    }
    .txt-sm {
      font-size: 80%;
    }
    .line {
      display: flex;
      align-items: flex-end;
      justify-content: center;
      margin: 0 1rem;
      &:last-child {
        transform: scale(-1, 1);
      }
      &::before,
      &::after {
        content: "";
        display: inline-block;
        width: .1875rem;
        margin: 0 .25rem;
        background-color: var(--primary-default);
      }
      &::before {
        aspect-ratio: 3 / 32;
        transform: rotate(-15deg);
      }
      &::after {
        aspect-ratio: 3 / 40;
        transform: rotate(-10deg);
      }
    }
  }
  .ttl-03 {
    font-size: 2rem; /* 32px */
    letter-spacing: .04em;
    .line {
      margin: 0 .75rem;
      &::before,
      &::after {
        background-color: var(--sub-04);
      }
    }
  }

  /* --- ttl-04 --- */
  .ttl-04 {
    font-size: 2rem; /* 32px */
    line-height: 1.5;
    &:not([class*=mgn-btm]) {
      margin-bottom: 1rem;
    }
    .txt-sm {
      padding: 0 .125em;
      font-size: 75%;
    }
    .icn {
      display: inline-block;
      padding: 0 .75rem;
      margin-right: .5rem;
      border-radius: .5rem;
      color: #fff;
      font-size: 75%;
      transform: translateY(-.25rem);
    }
  }

  @media screen and (max-width: 767px) {  
    /* --- breadcrumbs --- */
    .breadcrumbs {
      margin-top: .75rem;
      font-size: .786rem; /* 11px */
      a {
        &::after {
          margin: 0 .5em;
        }
      }
    }

    /* --- ttl-01 --- */
    .ttl-01 {
      font-size: 2.2857rem; /* 32px */
      line-height: 1.5;
      &::after {
        width: 2.2857rem;
        aspect-ratio: 32 / 3;
        margin-top: 1rem;
      }
    }
    .home .ttl-01 {
      font-size: 2.2857rem; /* 32px */
    }
    .ttl-01 .bg,
    .hero .cacth {
      margin-bottom: 1rem;
      font-size: .929rem; /* 13px */
    }
  
  /* --- ttl-02 / ttl-03 --- */
    .ttl-02,
    .ttl-03 {
      font-size: 1.5rem;
      line-height: 1.5;
      align-items: flex-end;
      white-space: nowrap;
      &:not([class*=mgn-btm]) {
        margin-bottom: 1.5rem;
      }
      .line {
        margin: 0 .75rem;
        &::before,
        &::after {
          width: .15rem;
          margin: 0 .125rem;
        }
        &::before {
          aspect-ratio: 2 / 32;
        }
        &::after {
          aspect-ratio: 2 / 40;
          transform: rotate(-12deg);
        }
      }
    }
    .ttl-03 {
      font-size: 1.25rem;
      .line {
        &::before {
          aspect-ratio: 2 / 16;
        }
        &::after {
          aspect-ratio: 2 / 24;
        }
      }
    }
  
    /* --- ttl-04 --- */
    .ttl-04 {
      font-size: 1.5rem;
      &:not([class*=mgn-btm]) {
        margin-bottom: .75rem;
      }
    }
  }

/* .color
*************************************************** */
  :root {
    --primary-default: #007357;
    --primary-dark: #1D5548;
    --primary-light: #009E65;

    --secondary-default: #00B2C2;
    --secondary-dark: #006D85;
    --secondary-light: #67D5DD;

    --bg-01: #EDF7DD;
    --bg-02: #ABE2E9;
    --bg-03: #F3F2E9;
    --bg-04: #FBD600;
    --bg-05: #fff;

    --sub-01: #00958F;
    --sub-02: #A8D248;
    --sub-03: #FBD600;
    --sub-04: #C24D0D;
    --sub-042: #ee8718;
    --sub-05: #CB465C;
    --sub-06: #913C85;

    --area-01: #F3BEBD;
    --area-02: #FCD7A2;
    --area-03: #D8E6AF;
    --area-04: #9FD9C2;
    --area-05: #8AC8E6;
    --area-06: #F6DFE0;
    --area-07: #FDEBD2;
    --area-08: #DCF3C5;
    --area-09: #D4EADC;
    --area-10: #D4ECF2;

    --txt-primary: #181818;
    --txt-secondary: #404134;
    --txt-placeholder: #DDDACD;
    --txt-light: #fff;
  }

/* bg
**************************************** */
  .bg-01 { background-color: var(--bg-01) !important; }
  .bg-02 { background-color: var(--bg-02) !important; }
  .bg-03 { background-color: var(--bg-03) !important; }
  .bg-04 { background-color: var(--bg-04) !important; }
  .bg-05 { background-color: var(--bg-05) !important; }
  .bg-wh { background-color: #fff; }
  .bg-gr { background-color: var(--primary-default); }
  .bg-or { background-color: var(--sub-04); }
  .bg-or2 { background-color: var(--sub-042); }
  .bg-rd { background-color: var(--sub-05); }

  .bg-gifu,
  .list-gifu li:before { background-color: var(--area-07) !important; }
  .bg-seino,
  .list-seino li:before  { background-color: var(--area-06) !important; }
  .bg-chuno,
  .list-chuno li:before  { background-color: var(--area-08) !important; }
  .bg-tono,
  .list-tono li:before  { background-color: var(--area-09) !important; }
  .bg-hida,
  .list-hida li:before  { background-color: var(--area-10) !important; }

  .bg-02-img,
  .bg-03-img,
  .bg-04-img,
  .bg-02-round,
  .bg-04-round,
  .bg-05-round,
  .bg-03-deco,
  .bg-04-deco,
  .bg-05-deco { position: relative; }
  .bg-05-deco { z-index: 10; }
  .bg-02-img { background: linear-gradient(to bottom, var(--bg-02) 45rem, #7BD5E1 45.1rem); }
  .bg-03-img { background: var(--bg-03); }
  .bg-04-img { background: linear-gradient(to bottom, var(--bg-04) 45rem, #FEC228 45.1rem); }
  .bg-02-img::before,
  .bg-03-img::before,
  .bg-04-img::before { 
    content: "";
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-size: 100% auto;
    pointer-events: none;
  }
  .bg-02-img::before { 
    background-position: top 12.5rem center;
    background-image: url(../images/common/bg-02.png);
  }
  .bg-03-img::before { 
    background-position: top 13rem center;
    background-image: url(../images/common/bg-03.png);
  }
  .bg-04-img::before { 
    background-position: top 5rem center;
    background-image: url(../images/common/bg-04.png);
  }

  .bg-02-round::after,
  .bg-04-round::after,
  .bg-05-round::after,
  .bg-04-deco::after,
  .bg-05-deco::before,
  .bg-05-deco::after { 
    content: "";
    position: absolute;
    top: 1px;
    right: 0;
    left: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: auto 100%;
    transform: translateY(-100%);
  }
  .bg-02-round,
  .bg-04-round,
  .bg-05-round { 
    margin-top: 10rem;
    &::after { 
      height: 10rem;
    }
  }
  .bg-02-round::after { 
    background-image: url(../images/common/bg-02-round.png);
  }
  .bg-04-round::after { 
    background-image: url(../images/common/bg-04-round.png);
  }
  .bg-05-round::after { 
    background-image: url(../images/common/bg-05-round.png);
  }
  .bg-04-deco::after { 
    height: 1.5rem;
    background-image: url(../images/common/bg-04-deco.png);
  }
  .bg-05-deco::before { 
    height: 1.5rem;
    background-image: url(../images/common/bg-05-deco.png);
  }
  .bg-05-deco::after { 
    top: auto;
    bottom: 1px;
    height: 1.5rem;
    transform: translateY(100%) rotate(180deg);
    background-image: url(../images/common/bg-05-deco.png);
  }
  
  @media screen and (min-width: 1920px) {
    .bg-02-round::after,
    .bg-04-round::after,
    .bg-05-round::after,
    .bg-04-deco::after,
    .bg-05-deco::before,
    .bg-05-deco::after { 
      background-size: cover;
    }
    .bg-02-round::after,
    .bg-04-round::after,
    .bg-05-round::after {
      background-position: top center;
    }
  }
  @media screen and (max-width: 767px) {
    .bg-02-img { background: linear-gradient(to bottom, var(--bg-02) 40rem, #7BD5E1 40.1rem); }
    .bg-03-img { background: var(--bg-03); }
    .bg-04-img { background: linear-gradient(to bottom, var(--bg-04) 40rem, #FEC228 40.1rem); }
    .bg-02-img::before,
    .bg-03-img::before,
    .bg-04-img::before { 
      background-size: 200% auto;
    }

    .bg-02-round,
    .bg-04-round,
    .bg-05-round { 
      margin-top: calc(10rem / 2);
      &::after { 
        height: calc(10rem / 2);
      }
    }
    .bg-04-deco::after,
    .bg-05-deco::before,
    .bg-05-deco::after { 
      height: calc(1.5rem / 2);
    }
  }

/* txt
**************************************** */
  .txt-wh { color: #fff; }
  .txt-gr { color: var(--primary-default); }
  .txt-yl { color: var(--sub-03); }
  .txt-or { color: var(--sub-04); }
  .txt-or2 { color: var(--sub-042); }
  .txt-rd { color: var(--sub-05); }
  .txt-ctr,
  .txt-ctr-pc  { text-align: center; }
  .txt-rgt  { text-align: right; }
  .txt-lft  { text-align: left !important; }
  .txt-border {
    color: var(--sub-05) !important;
    text-decoration: underline;
    transition: all .4s ease-out;
  }
  .txt-attention {
    display: block;
    margin-top: .5em;
    padding-left: 1em;
    text-indent: -1em;
    line-height: 1.8;
    font-size: .875rem; /* 14px */
    font-weight: 500;
  }
  .clip-txt3 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  @media screen and (max-width: 767px) {
    .txt-ctr-pc,
    .txt-lft-sp { text-align: left !important; }
  }

/* font
**************************************** */
  .bold,
  strong,
  .ttl-01,
  .ttl-02,
  .ttl-03,
  .txt-link,
  h1,h2,h3,h4,h5,h6 {
    font-family: "Poppins","Aoto Gothic Bold", YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif;
    font-weight: 700;
  }
  .font-jp {
    font-family: "Puhu Sour AP";
  }
  .font-en {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-style: normal;
  }
  .txt-link {
    text-decoration: underline;
  }

/* btn
********************************************** */
  /* --- btn-01 --- */
  .btn-01 > *,
  .cart-step4 .checkout_button {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    min-width: 27rem; /* 440px */
    margin-left: auto;
    margin-right: auto;
    padding: 1.4rem 5rem !important;
    background-color: var(--primary-default) !important;
    color: #fff !important;
    box-shadow: 0 .375rem 0 0 rgba(0, 0, 0, 0.10);
    border-radius: 999px !important;
    border: none !important;
    transition: all .3s ease-out !important;
    font-size: 1.5rem; /* 24px */
    line-height: 1.5;
    font-family: "Poppins","Aoto Gothic Medium", YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif !important;
    text-align: center;
    cursor: pointer;

    &::before {
      content: "";
      position: absolute;
      right: 1.5rem;
      margin: auto;
      display: block;
      aspect-ratio: 1 / 1;
      width: 2.5rem;
      height:fit-content;
      background-image: url(../images/common/btn_arrow-wh.svg);
      background-size: contain;
      background-repeat: no-repeat;
      transition: all .3s ease-out;
    }
  }
  .btn-01 > a[href^="#"]::before {
    transform: rotate(90deg);
  }
  .btn-01 > *:not([disabled="disabled"]):hover,
  a:hover .btn-01 span,
  .cart-step4 .checkout_button:hover {
    transform: translateY(.2rem);
    box-shadow: 0 .175rem 0 0 rgba(0, 0, 0, 0.10);
  }
  .btn-01 > *:hover::before,
  a:hover .btn-01 span::before {
    right: 1.25rem;
  }
  .btn-01 > button[disabled="disabled"] {
    background-color: #9599A3 !important;
    cursor: default;
    &::before {
      display: none;
    }
  }
  
  .btn-01-or > *,
  .cart-step4 .checkout_button {
    background-color: var(--sub-042) !important;
    border-radius: .5rem !important;

    &::before {
      background-image: url(../images/common/btn_arrow-wh-or.svg);
    }
  }

  .btn-01-entry,
  .btn-01-donation,
  .btn-01-login {
    position: relative;
    &::before {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      margin: auto;
      height: 1.5rem;
      z-index: 100;
      background-color: #fff;
      -webkit-mask-image: url(../images/common/icn-login.svg);
      -webkit-mask-size: contain;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-position: center;
      mask-image: url(../images/common/icn-login.svg);
      mask-size: contain;
      mask-repeat: no-repeat;
      mask-position: center;
      transition: all .3s ease-out;
      pointer-events: none;
    }
    &:hover::before {
      transform: translateY(.2rem);
    }
    a::before {
      display: none !important;
    }
  }
  .btn-01-entry::before {
    left: calc(50% - 6.5rem);
    width: 1.75rem;
    -webkit-mask-image: url(../images/common/icn-entry.svg);
    mask-image: url(../images/common/icn-entry.svg);
  }
  .btn-01-donation::before {
    left: calc(50% - 9rem);
    width: 2.5rem;
    -webkit-mask-image: url(../images/common/icn-donation.svg);
    mask-image: url(../images/common/icn-donation.svg);
  }
  .btn-01-login::before {
    left: calc(50% - 6.5rem);
    width: 1.5rem;
    -webkit-mask-image: url(../images/common/icn-login.svg);
    mask-image: url(../images/common/icn-login.svg);
  }
  .btn-01-login.icn-none::before {
    display: none;
  }
  .btn-01-entry > *,
  .btn-01-donation > *,
  .btn-01-login > * {
    width: 17.5rem; /* 280px */
    min-width: 0;
    font-size: 1.125rem !important; /* 18px */
    font-family: "Poppins","Aoto Gothic Medium", YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif !important;
    border-radius: .5rem !important;
  }
  .btn-01-donation > * {
    width: 21rem;
  }
  .btn-01-entry.icn-none > *,
  .btn-01-donation.icn-none > *,
  .btn-01-login.icn-none > * {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* --- btn-02 --- */
  .btn-02 > * {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    color: #9599A3 !important;
    border: none;
    transition: all .3s ease-out;
    font-size: 1.125rem; /* 18px */
    letter-spacing: .05em;
    cursor: pointer;
    background-color: transparent;

    &::after {
      content: "";
      display: block;
      aspect-ratio: 1 / 1;
      width: 2rem;
      margin-left: 1rem;
      background-image: url(../images/common/btn_arrow-gy.svg);
      background-size: contain;
      background-repeat: no-repeat;
      transition: all .3s ease-out;
    }
  }
  .btn-02 > button[disabled="disabled"]{
    cursor: default; 
    &::after {
      display: none;
    }
  }
  .btn-02-logout > *::after {
    background-image: url(../images/common/icn-login-gy.svg);
  }
  .btn-02-bg > * {
    padding: .5rem 1.25rem;
    border: solid 2px;
    border-radius: .25rem;
    font-size: 1rem;

    &::after {
      width: 1.5rem;
    }
  }
  .btn-02 > a[href^="#"]::after {
    transform: rotate(90deg);
  }
  .btn-02 > *:hover::after,
  a:hover .btn-02 span::after {
    transform: translateX(.25rem);
  }

  /* --- btn-03 --- */
  .btn-03 {
    display: flex;
    align-items: flex-start;
  }
  .btn-03 > * {
    position: relative;
    z-index: 1;
    width: fit-content;
    padding: .35em .75em;
    border-radius: .15em;
    background-color: var(--primary-default);
    color: #fff !important;
    font-size: 12px;
    letter-spacing: .05em;
    line-height: 1;
    transition: all .3s ease-out;
    cursor: pointer;
    &:hover {
      background-color: var(--primary-dark);
    }
  }

  .btn-lft > * {
    margin-left: 0;
    text-align: left;
  }
  .btn-more {
    color: #9599A3;
    text-decoration: underline;
    cursor: pointer;
  }
  .btn_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }

  @media screen and (max-width: 767px) {
    /* --- btn --- */
    .btn-01 > *,
    .cart-step4 .checkout_button {
      width: 90%;
      min-width: 0;
      padding: 1.125rem 3rem;
      box-shadow: 0 .2rem 0 0 rgba(0, 0, 0, 0.10);
      font-size: 1.25rem;
    }
    .btn-01 > *::before {
      width: 2rem;
    }

    /* --- btn-02 --- */
    .btn-02 > * {
      font-size: 1rem;
    }
    .btn-02 > *::after {
      width: 1.75rem;
      margin-left: .75rem;
    }

    .btn_list {
      width: 100%;
      grid-template-columns: repeat(1, 1fr);
      gap: .75rem;
    }
  }

/* img
********************************************** */
  .img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .img-contain {
    object-fit: contain;
  }


/* ##############################################################################

    HEADER

############################################################################## */
  .header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 7rem;
    padding: 0 2.5rem;
    background-color: #fff;
    z-index: 10000;
  }
  @media screen and (max-width: 767px) {
    .header {
      height: 4.5rem;
      padding: 0 1rem;
    }
  }

/* header--logo
**************************************** */
  .header--logo {
    font-size: 2.125rem;
    letter-spacing: -.04em;
    color: var(--txt-secondary);
    a,
    a:hover {
      display: flex;
      align-items: center;
      color: var(--txt-secondary);
    }
    span {
      letter-spacing: -.04em;
    }
    .round_bg-gr {
      display: inline-block;
      padding: .3em .7em;
      margin-left: .5rem;
      font-size: 80%;
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
      background-image: url(../images/common/round_bg-gr.svg);
    }
  }
  @media screen and (max-width: 767px) {
    .header--logo {
      font-size: 1.357rem; /* 19px */
      text-align: center;
      .round_bg-gr {
        display: block;
        width: fit-content;
        margin-top: -.65rem;
        margin-left: auto;
        margin-right: auto;
      }
      a,
      a:hover {
        display: block;
      }
    }
  }

/* header--nav
**************************************** */
  /* --- gnav--menu --- */
  .gnav--menu {
    gap: 2.5rem;
  }
  .gnav--link {
    display: flex;
    align-items: center;
    font-size: 1.5rem; /* 24px */
    line-height: 1;
    color: var(--txt-secondary);

    .icn {
      width: auto;
      height: auto;
      max-width: 2.5rem;
      max-height: 2.5rem;
      margin-right: .75rem;
    }
  }
  .gnav--menu li:last-child {
    height: fit-content;
    padding-left: 2rem;
    border-left: solid 2px var(--txt-placeholder);
  }
  .gnav--logout {
    height: calc(100% - (1.75rem * 2)) !important;
    margin: 1.75rem 0;
    font-size: 1.125rem; /* 18px */
    color: #646B7A;
  }

  @media screen and (min-width: 768px) {
    .gnav,
    .gnav--menu,
    .gnav--menu > li,
    .gnav--menu > li > a {
      height: 100%;
    }
  }
  @media screen and (max-width: 767px) {
    .gnav--menu {
      gap: 1rem;
    }
    .gnav--menu > li:last-child {
      display: none;
    }
    .gnav--link {
      flex-direction: column;
      justify-content: space-between;
      font-size: .714rem; /* 10px */
      line-height: 1;
      letter-spacing: normal;
      .icn {
        max-width: auto;
        max-height: 2rem;
        margin-bottom: .5em;
        margin-right: 0;
      }
    }

    /*  --- gnav_btn --- */
    .gnav_btn {
      position: absolute;
      top: .5rem;
      right: .5rem;
      width: 3.5rem;
      height:fit-content;
      aspect-ratio: 1 / 1;
      z-index: 99999999;
      background-color: var(--primary-default);
      border-radius: .25rem;
    }
    .gnav_btn--lines {
      position: relative;
      width: 1.25rem;
      height: 1rem;
      margin-top: .2rem;
    }
    .gnav_btn--lines span {
      transition: all .4s;
      box-sizing: border-box;
    }
    .gnav_btn--lines span {
      position: absolute;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #fff;
    }
    .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) {
      -webkit-transform: translateY(.4rem) rotate(-40deg);
      transform: translateY(.4rem) rotate(-40deg);
    }
    .active .gnav_btn--lines span:nth-of-type(2) {
      opacity: 0;
    }
    .active .gnav_btn--lines span:nth-of-type(3) {
      -webkit-transform: translateY(-.45rem) rotate(40deg);
      transform: translateY(-.45rem) rotate(40deg);
    }
    .gnav_btn--txt {
      margin-top: .75em;
      font-size: .714rem; /* 10px */
      line-height: 1;
      letter-spacing: .05em;
      color: #fff;
    }
    .gnav_btn--txt span:nth-of-type(2) { display: block; }
    .gnav_btn--txt span:nth-of-type(2) { display: none; }
    .active .gnav_btn--txt span:nth-of-type(1) { display: none; }
    .active .gnav_btn--txt span:nth-of-type(2) { display: block; }
  }

/* mail_alart
**************************************** */
  .mail_alart {
    padding: .75em 1.5em;
    font-size: 1em;
    color: var(--sub-05);
    background-color: #FFD0D0;
  }
  .mail_alart a {
    color: var(--sub-05);
    text-decoration: underline;
  }
  .mail_alart a:hover {
    text-decoration: none;
  }

  @media screen and (max-width: 767px) {
    .mail_alart {
      padding: .5em 1.5em;
    }
  }

/* ##############################################################################

    FOOTER

############################################################################## */

/* footer_main
**************************************** */
  .footer_main {
    padding-top: 3.5rem;
    padding-bottom: 2.5rem;
    * {
      color: var(--txt-secondary);
    }
  }
  @media screen and (max-width: 767px) {
    .footer_main {
      padding-top: 1.75rem;
      padding-bottom: 1.25rem;
    }
  }

/* footer_about
**************************************** */
  .footer--company {
    font-size: 1.5rem; /* 24px */
    margin-bottom: .5rem;
  }
  .footer--contact {
    font-size: 1.125rem; /* 18px */
    line-height: 1.7;
  }
  @media screen and (max-width: 767px) {
    .footer_about {
      width: 100%;
    }
    .footer--company {
      font-size: 1.071rem; /* 15px */
      margin-bottom: 0;
    }
    .footer--contact {
      font-size: .929rem; /* 13px */
    }
  }

/* footer_copyright
**************************************** */
  .footer_copyright small {
    font-size: 1rem;
    line-height: 1;
  }
  @media screen and (max-width: 767px) {
    .footer_copyright {
      margin-top: 2rem;
      small {
        font-size: .857rem; /* 12px */
      }
    }
  }


/* ##############################################################################

    INDEX

############################################################################## */

/* home_search
*************************************************** */
.home_search {
  padding-bottom: 0;
}

/* --- search_form --- */
.search_form {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  max-width: 63.5rem;
  font-family: "Poppins","Aoto Gothic Medium", YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif;
}
.search_form .search_form--txt,
.search_form .search_form--category,
.search_form .search_form--price input {
  padding: .75rem 1.25rem;
  min-height: 3.5rem;
  border-radius: .25rem;
  border: 2px solid #BABDC4;
  background-color: #FFF;
  font-size: 1.125rem; /* 18px */
  font-family: YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif !important;
  font-weight: bold;
}
.search_form .search_form--txt {
  width: 100%;
  margin-bottom: 1.5rem;
}
.search_form .search_form--txt::placeholder,
.search_form .search_form--price input::placeholder {
  color: #9599A3;
}
.search_form .search_form--category {
  width: 28.25rem;
}
.search_form .search_form--category option {
  font-weight: bold;
}
.search_form .search_form--price {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 34rem;
}
.search_form .search_form--price input {
  width: 12.375rem;
  -moz-appearance: textfield;
}
.search_form .search_form--price input[type="number"]::-webkit-outer-spin-button,
.search_form .search_form--price input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.search_form .search_form--price_yen {
  padding: 0 .5em;
  font-size: 1.5rem; /* 24px */
  white-space: nowrap;
}
.search_form .search_form--btn {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  min-width: 17.5rem; /* 280px */
  margin-left: auto;
  margin-right: auto;
  padding: 1.4rem 5rem;
  background-color: var(--primary-default);
  color: #fff !important;
  border-radius: .5rem;
  border: none;
  transition: all .3s ease-out;
  font-size: 1.125rem; /* 18px */
  line-height: 1.5;
  text-align: center;
  cursor: pointer;
  font-family: YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif !important;
  font-weight: bold;
  box-shadow: 0 .375rem 0 0 rgba(0, 0, 0, 0.10);
  margin-top: 2rem;

  &::before {
    content: "";
    display: block;
    aspect-ratio: 1 / 1;
    width: 1.25rem;
    height:fit-content;
    margin-right: .5rem;
    background-image: url(../images/common/icn-search.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transition: all .3s ease-out;
  }
}

@media screen and (max-width: 767px) {
  /* --- search_form --- */
  .search_form .search_form--txt,
  .search_form .search_form--category,
  .search_form .search_form--price input {
    font-size: 16px;
  }
  .search_form .search_form--txt,
  .search_form .search_form--category {
    margin-bottom: .5rem;
  }
  .search_form .search_form--category,
  .search_form .search_form--price {
    width: 100%;
  }
  .search_form .search_form--price input {
    width: 10rem;
  }
  .search_form .search_form--price_yen {
    font-size: 1.125rem;
  }
  .search_form .search_form--btn {
    min-width: 14rem; /* 280px */
    padding: 1.2rem 5rem;
    font-size: 1.25rem; /* 18px */
    margin-top: 1rem;
  }
}


/* home_item
*************************************************** */

/* --- item_sort --- */
.item_sort {
  position: relative;
  z-index: 10;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 2rem;
  select {
    padding-right: 2.5rem;
    padding-left: 1.125rem;
    margin-left: .5rem;
    background-color: #fff;
    border-radius: .25rem;
    border: none;
    cursor: pointer;
  }
}
@media screen and (max-width: 767px) {
  .item_sort {
    margin-bottom: 1rem;
  }
}

/* --- item_list --- */
.item_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 2rem;
}
.item_list-column4 {
  grid-template-columns: repeat(4, 1fr);
}
.item_list-column1 {
  grid-template-columns: repeat(1, 1fr);
  gap: 2.5rem;
}
.item_list,
.cta_area {
  .item {
    position: relative;
    display: flex;
    flex-direction: column;
    border-radius: 1rem;
    background-color: #fff;
    box-shadow: .5rem .5rem 0 0 rgba(0, 0, 0, .10);
    transition: all .2s ease-out;
    &:not(.no_hover):hover {
      box-shadow: .4rem .4rem 0 0 rgba(0, 0, 0, .10);
      transform: translate(.1rem, .1rem);
    }
    &:hover .name {
      color: var(--primary-default);
    }
  }

  .link::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    height: 100%;
    cursor: pointer;
  }

  .imgarea {
    position: relative;
    display: block;
    aspect-ratio: 520 / 323;
    border-radius: 1rem 1rem 0 0;
    overflow: hidden;
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .txtarea {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1rem 2rem 2rem;
    &:only-child {
      padding-top: 2rem;
    }
  }

  .name {
    margin-bottom: 1rem;
    font-size: 1.125rem; /* 18px */
    line-height: 1.5;
    transition: all .4s ease-out;
  }

  .sold_out {
    font-size: 1.5rem; /* 24px */
    text-align: center;
    color: var(--sub-05);
  }

  .price {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    line-height: 1;
    .num {
      font-size: 1.5rem; /* 24px */
      color: var(--sub-05);
      letter-spacing: normal;
    }
    .yen {
      padding-left: .5rem;
      font-size: 1.125rem; /* 18px */
      color: var(--sub-05);
    }
  }
}
.item_list-column1 {
  .target {
    margin-bottom: 0;
    &::before {
      content: "";
      display: inline-block;
      width: 1.125em;
      aspect-ratio: 1 / 1;
      margin-right: .5em;
      background-image: url(../images/common/icn-member.svg);
      background-size: contain;
      background-repeat: no-repeat;
      transform: translateY(.125em);
    }
  }
}
.icn-gifuchoku {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  display: block;
  width: 11.3125rem;
  height: fit-content;
  aspect-ratio: 181 / 129;
  background-image: url(../images/common//icn-gifuchoku.svg);
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
}
.icn-gifuchoku-lg {
  width: calc(11.3125rem * 2);
}
@media screen and (max-width: 767px) {
  .item_list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 1rem;

    .item {
      border-radius: .5rem;
      box-shadow: .25rem .25rem 0 0 rgba(0, 0, 0, .10);
    }

    .imgarea {
      border-radius: .5rem .5rem 0 0;
    }

    .txtarea {
      padding: .75rem;
      &:only-child {
        padding-top: 1rem;
      }
    }

    .name {
      margin-bottom: .5rem;
      font-size: 1rem;
    }

    .txt {
      font-size: .857rem; /* 12px */
    }

    .sold_out {
      font-size: 1.25rem;
    }

    .price {
      margin-bottom: .5rem;
      font-size: .786rem; /* 11px */
      white-space: nowrap;
      .num {
        font-size: 1.429rem; /* 20px */
      }
      .yen {
        padding-left: 0;
        font-size: .929rem; /* 13px */
      }
    }

    .bar {
      height: 1.4285rem;
      font-size: .857rem; /* 12px */
    }

    .target {
      margin-bottom: .3rem;
      font-size: .857rem; /* 12px */
    }

    .countdown {
      padding: .5rem;
      border-radius: .4rem;
      .days_left {
        font-size: .813rem; /* 13px */
        .txt-lg {
          font-size: 150%;
        }
        &::before {
          width: .9rem;
          margin-right: .5rem;
          transform: translateY(0);
        }
      }
      .period {
        margin-top: .25rem;
        font-size: .857rem; /* 12px */
        letter-spacing: normal;
      }
    }

    .btn-01 > * {
      width: 100%;
      padding: .75rem 0;
      font-size: .857rem; /* 12px */
      &::before {
        display: none;
      }
    }
  }
  .icn-gifuchoku {
    width: calc(11.3125rem / 2);
  }
  .icn-gifuchoku-lg {
    width: 11.3125rem;
  }
}

/* -- wp-pagenavi ---*/
.wp-pagenavi {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem;
  white-space: nowrap;
  margin-top: 3rem;
}
.wp-pagenavi > * {
  display: flex;
  justify-content: center;
  align-items: center;
}
.wp-pagenavi .pages {
  width: 100%;
  margin-bottom: 1em;
  color: var(--primary-default);
  font-size: 1.25rem; /* 20px */
}
.wp-pagenavi .current,
.wp-pagenavi a {
  width: 3rem;
  aspect-ratio: 1/1;
  height: 3rem;
  padding: 0;
  border: solid 1px;
  border-radius: 999999px;
  background-color: var(--primary-default);
  color: #fff;
  font-size: 1.25rem; /* 20px */
  line-height: 1;
}
.wp-pagenavi a {
  position: relative;
  background-color: #fff;
  color: var(--primary-default);
  &:hover {
    background-color: var(--primary-default);
    color: #fff;
  }
}
.wp-pagenavi a[rel="prev"],
.wp-pagenavi a[rel="next"],
.wp-pagenavi .first,
.wp-pagenavi .last {
  border: none;
  background-color: transparent !important;
  background-image: url(../images/common/btn_arrow.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.5rem auto;
}
.wp-pagenavi .first,
.wp-pagenavi .last {
  background-image: url(../images/common/btn_arrow2.svg);
}
.wp-pagenavi a[rel="prev"],
.wp-pagenavi .first {
  transform: rotate(180deg);
}
@media screen and (max-width: 767px) {
  .wp-pagenavi {
    gap: .25rem;
  }
  .wp-pagenavi .pages {
    font-size: 1.125rem;
  }
  .wp-pagenavi .current,
  .wp-pagenavi a {
    width: 2.4rem;
    height: 2.4rem;
    font-size: 1rem;
  }
  .wp-pagenavi a[rel="prev"],
  .wp-pagenavi a[rel="next"],
  .wp-pagenavi .first,
  .wp-pagenavi .last {
    background-size: 1.125rem auto;
  }
}


/* ##############################################################################

    project

############################################################################## */

/* side
**************************************** */
.main_side {
  display: grid;
  grid-template-columns: 21.5rem minmax(0, 1fr);
  grid-gap: 3.5rem;
  gap: 3.5rem;
}

.side_section {
  padding: 1.5rem 2rem;
  background-color: #fff;
  border-radius: 1rem;
  &:not(:last-child) {
    margin-bottom: 2.5rem;
  }
}
.side--ttl {
  margin-bottom: 1rem;
  font-size: 1.5rem; /* 24px */
  line-height: 1.5;
  letter-spacing: .05em;
  color: var(--primary-default);
}
.side--ttl_sm {
  padding: .3rem;
  margin-bottom: .5rem;
  border-radius: .25rem;
  font-size: 1.125rem; /* 18px */
  text-align: center;
}
* + .side--ttl_sm {
  margin-top: 1rem;
}
.side--local .list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.side--list .cat-item-799 {
  padding-left: 0;
  &::before,
  > a {
    display: none !important;
  }
}
.side--list .children .children {
  padding: .5rem 0;
}
.side--list > .cat-item {
  position: relative;
  padding-top: .25rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid #BABDC4;
  padding-left: 0;
  &::before {
    display: none !important;
  }
}
.side--list > .cat-item .children + .arrow {
  position: absolute;
  top: .25rem;
  right: 0;
  width: 1.5rem;
  height: fit-content;
  aspect-ratio: 1 / 1;
  background-image: url(../images/common/btn_arrow-gy.svg);
  border-radius: 50%;
  background-size: contain;
  background-repeat: no-repeat;
  cursor: pointer;
  transform: rotate(90deg);
  opacity: .5;
  transition: all .4s ease-out;
  &:hover {
    opacity: 1;
  }
  &.active {
    opacity: 1;
    transform: rotate(-90deg);
  }
}
.side--list > .cat-item > .children {
  display: none;
  margin-top: .5rem;
  padding: 1.25rem;
  border-radius: .25rem;
  background-color: #f5f5f5;
}
.side--list > .cat-item > .children > li:not(:last-child) {
  border-bottom: 1px solid #BABDC4;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
}

.side--catalog .cat-item {
  padding-left: 0 !important;
  padding-block: 0;
  
}
.side--catalog .cat-item::before {
  content: none !important;
}
.side--catalog .cat-item a {
  display: block;
  padding-block: .25em calc(.75em - .5px);
}
.side--catalog .cat-item a .arrow {
  position: absolute;
  top: .25rem;
  right: 0;
  width: 1.5rem;
  height: fit-content;
  aspect-ratio: 1 / 1;
  background-image: url(../images/common/btn_arrow-gy.svg);
  border-radius: 50%;
  background-size: contain;
  background-repeat: no-repeat;
  cursor: pointer;
  opacity: .5;
  transition: all .4s ease-out;
}

@media screen and (min-width: 768px) {
  .side_column {
    grid-row: 1 / 2;
  }
}
@media screen and (max-width: 767px) {
  .main_side {
    grid-template-columns: repeat(1, 1fr);
    gap: 2.5rem;
  }

  .side_section {
    border-radius: .75rem;
    &:not(:last-child) {
      margin-bottom: 1rem;
    }
  }
  .side--ttl {
    margin-bottom: .75rem;
    font-size: 1.25rem;
  }
  .side--ttl_sm {
    border-radius: .125rem;
    font-size: 1rem;
  }
  * + .side--ttl_sm {
    margin-top: .75rem;
  }
}

/* detail
**************************************** */
  /* --- project_detail-main --- */
  .project_detail-main {
    padding: 3rem 4rem 4rem !important;
  }
  .project_detail-main .grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 30rem;
    gap: 3.5rem;
  }

  .project_detail-main .img_area {
    .slider {
      .slick-slider {
        margin-bottom: 1rem;
      }
      .img {
        position: relative;
        display: flex !important;
        justify-content: center;
        align-items: center;
        aspect-ratio: 1041 / 647;
        img {
          width: auto;
          height: auto;
          max-width: 100%;
          max-height: 100%;
        }
      }
      .slick-arrow {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 3rem;
        height: 3rem;
        border: solid 3px;
        padding: 0;
        background-color: var(--primary-default);
        color: #fff;
        border-radius: 50%;
        position: absolute;
        top: auto;
        bottom: -6.25rem;
        z-index: 100;
        font-size: 0;
        cursor: pointer;
        transform: translate(0, -50%);
        &::before {
          content: "";
          display: block;
          width: 30%;
          height: 40%;
          background-color: #fff;
          clip-path: polygon(0 50%, 100% 100%, 100% 0);
          opacity: 1;
        }
      }
      .slick-prev {
        left: -1.75rem;
      }
      .slick-next {
        right: -1.75rem;
        &::before {
          transform: scale(-1, 1);
        }
      }
      .slick-dots {
        position: static;
        display: grid;
        grid-template-columns: repeat(8, 1fr);
        gap: .75rem;
        li {
          width: auto;
          height: auto;
          margin: 0;
          border-radius: .25rem;
          overflow: hidden;
          border: solid 3px transparent;
          transition: all .2s ease-out;

          &.slick-active {
            border-color: var(--primary-default);
          }
        }
      }
      .dot {
        position: relative;
        display: block;
        aspect-ratio: 520 / 323;
        background-color: var(--bg-03);
        cursor: pointer;
      }
    }
  }

  .project_detail-main .cta_area {
    .name {
      padding-top: 1rem;
      margin-bottom: 1.75rem;
      font-size: 2rem;
      line-height: 1.5;
    }

    .price {
      font-size: 1.375rem; /* 22px */
      .num {
        font-size: 3rem;
      }
      .yen {
        font-size: 2.125rem;
      }
    }

    .quantity input {
      width: 7rem;
      text-align: center;
    }

    .btn-01 > * {
      width: 100%;
      min-width: 0;
      font-family: "Poppins", "Aoto Gothic Bold", YuGothic, 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', sans-serif !important;
      background-size: 2.5rem;
      background-image: url(../images/common/btn_arrow-wh-or.svg);
      background-repeat: no-repeat;
      background-position: center right 1.5rem;
    }
    .itemsoldout {
      background-color: rgba(0, 0, 0, .05);
      padding: 1.4rem 5rem;
    }
  }
  @media screen and (max-width: 767px) {
    .project_detail-main {
      width: 94vw;
      margin-left: -2vw;
      padding: 1.5rem 1.5rem 2rem !important;
    }
    .project_detail-main .grid {
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }
  
    .project_detail-main .img_area {
      .slider {
        margin-bottom: 0;
        .slick-slider {
          margin-bottom: .5rem;
        }
        .slick-arrow {
          width: 1.75rem;
          height: 1.75rem;
          border: solid 2px;
          bottom: -3.25rem;
        }
        .slick-prev {
          left: -1.25rem;
        }
        .slick-next {
          right: -1.25rem;
        }
        .slick-dots {
          gap: .25rem;
          li {
            border-radius: .125rem;
            border-width: 2px;
          }
        }
      }
    }
  
    .project_detail-main .cta_area {
      .name {
        padding-top: .5rem;
        margin-bottom: .5rem;
        font-size: 1.5rem;
      }
  
      .price {
        margin-bottom: .75rem;
        font-size: 1.125rem;
        .num {
          font-size: 2.25rem;
        }
        .yen {
          font-size: 1.125rem;
        }
      }
    }
  }

  /* --- project_detail-sub --- */
  .project_detail-sub {
    max-width: calc(100% - 30rem);
    margin-left: auto;
    margin-right: auto;
    padding: 1rem 4rem 0;
  }
  .project_detail-sub .txt_area {
    h2, h3, h4, h5, h6 {
      margin-bottom: .5em;
      line-height: 1.5;
    }
    h2 {
      color: var(--primary-default);
    }
    * + h2, * + h3, * + h4, * + h5, * + h6 {
      margin-top: 1.5em;
    }
    p,
    ul,
    img {
      margin-bottom: 1.5rem;
    }
    .table-01 th {
      width: 16rem;
    }
  }

  .wakeari_area {
    padding: 2rem 3rem 1rem;
    border-radius: 1rem;
    border: solid 3px var(--primary-default);
  }
  .wakeari_area--ttl {
    font-size: 1.5rem;
    color: var(--primary-default);
  }
  .wakeari_area--list {
    padding-bottom: 2rem;
    margin-bottom: 2rem !important;
    border-bottom: solid 2px var(--primary-default);
  }
  .wakeari_area--reason {
    display: flex;
    align-items: center;
    gap: 1.5rem;
  }
  .wakeari_area--reason .imgarea {
    width: 16rem;
  }
  .wakeari_area--reason .txtarea {
    flex: 1;
  }

  @media screen and (max-width: 767px) {
    .project_detail-sub {
      max-width: 100%;
      padding: 0;
    }

    .wakeari_area {
      padding: 1.5rem 1rem .5rem;
      border-radius: .75rem;
      border: solid 2px var(--primary-default);
    }
    .wakeari_area--ttl {
      font-size: 1.25rem;
    }
    .wakeari_area--list {
      padding-bottom: 1.5rem;
      margin-bottom: 1.5rem !important;
      border-bottom: solid 2px var(--primary-default);
    }
    .wakeari_area--reason {
      flex-direction: column;
      gap: 0;
    }
    .wakeari_area--reason .imgarea,
    .wakeari_area--reason .txtarea {
      width: 100%;
    }
    .wakeari_area--reason .imgarea img {
      margin-bottom: .75rem;
    }
  }


/* ##############################################################################

    SUBPAGE

############################################################################## */

/* .box
*************************************************** */
  .box {
    position: relative;
    z-index: 10;
    padding: 1.5rem;
    background-color: #fff;
    border-radius: 1rem;
    font-size: 1.125rem; /* 18px */
    line-height: 1.7;
    &:not([class*=mgn-btm]) {
      margin-bottom: 3em;
    }
  }
  .box-lg {
    padding: 3rem;
  }
  .box-fukidashi::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 1.5rem;
    height:fit-content;
    aspect-ratio: 1 / 1;
    background-color: #fff;
    transform: translateY(50%) rotate(45deg);
  }

  @media screen and (max-width: 767px) {
    .box {
      padding: 1rem;
      border-radius: .75rem;
      font-size: 1rem;
      &:not([class*=mgn-btm]) {
        margin-bottom: 1.5em;
      }
    }
    .box-lg {
      padding: 2rem;
    }
    .box-fukidashi::before {
      width: 1rem;
    }
  }

/* .list
*************************************************** */
  .list-ctr {
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }

  /* --- list --- */
  .list li,
  .project_detail-sub .txt_area li {
    position: relative;
    padding-left: 1.25em;
    font-size: 1.125rem; /* 18px */
    line-height: 1.5;
    &:not(:last-child) {
      margin-bottom: .4em;
    }
    &::before {
      content: "";
      position: absolute;
      top: .4em;
      left: 0;
      display: block;
      width: .625em;
      height:fit-content;
      aspect-ratio: 1 / 1;
      border-radius: 50%;
      background-color: var(--primary-default);
    }
  }
  .list .list {
    margin-top: .4em;
  }

  /* --- list-check --- */
  .list-check li {
    position: relative;
    padding-left: 2.25rem;
    font-size: 1.125rem; /* 18px */
    &:not(:last-child) {
      margin-bottom: .5em;
    }
    &::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 1.75rem; /* 28px */
      height:fit-content;
      aspect-ratio: 1 / 1;
      background-image: url(../images/common/list-check.svg);
      background-size: contain;
      background-repeat: no-repeat;
    }
  }

  /* --- list-flow --- */
  .list-flow,
  .ec-progress {
    display: flex;
    justify-content: center;
    gap: 3.5rem;
    padding-top: 2.5rem;
    
    li {
      position: relative;
      width: 22.5rem;
      padding: 2.5rem 2rem 2rem;
      border-radius: 1rem;
      background-color: #fff;
      counter-increment: number;
      text-align: center;
      &::before,
      .ec-progress__number {   
        content: counter(number, decimal-leading-zero);
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        margin: auto;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 5rem;
        height:fit-content;
        aspect-ratio: 1 / 1;
        color: var(--primary-default);
        font-size: 2rem; /* 32px */
        letter-spacing: 1px;
        background-color: #fff;
        border-radius: 50%;
        transform: translateY(-50%);
      }
      &:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 0;
        margin: auto;
        display: block;
        width: 3.5rem;
        height:fit-content;
        aspect-ratio: 56 / 32;
        background-color: #fff;
        transform: translateX(100%) translateY(-50%);
      }

      .icn {
        max-width: 5.375rem;
      }

      .ttl,
      .ec-progress__label {
        font-size: 1.5rem; /* 24px */
        margin-bottom: .5rem;
        color: var(--primary-default);
        font-family: Poppins, "Aoto Gothic Bold", YuGothic, "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic ProN", sans-serif;
        font-weight: 700;
      }

      .txt {
        font-size: 1.125rem; /* 18px */
        line-height: 1.7;
      }
    }
  }
  .ec-progress {
    margin-bottom: 3rem;
    li {
      padding-left: 0;
      padding-right: 0;
      &::before {
        display: none;
      }
      .ec-progress__number {  
        font-size: 1.75rem;
        &::before {
          content: "0";
        }
      }
      .ec-progress__label {
        font-size: 1.375rem; /* 22px */
      }
    }
    .is-complete {
      background-color: var(--primary-default);
      .ec-progress__number {
        background-color: var(--primary-default);
        color: #fff;
      }
      .ec-progress__label {
        color: #fff;
      }
    }
  }

  @media screen and (min-width: 768px) {
    .list-col2 {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 0 1.5rem;
    }
  }
  @media screen and (max-width: 767px) {
    /* --- list --- */
    .list li {
      font-size: 1rem;
    }

    /* --- list-check --- */
    .list-check li {
      padding-left: 2rem;
      &::before {
        top: .125rem;
        width: 1.5rem;
      }
    }

    /* --- list-flow --- */
    .list-flow,
    .ec-progress {
      gap: .5rem;
      padding-top: 1.5rem;
      
      li {
        padding: 1.25rem 0 1rem;
        border-radius: .5rem;
        &::before {   
          width: 3.5rem;
          font-size: 1.25em;
        }
        .ec-progress__number {   
          width: 2.5rem;
          font-size: 1em;
        }
        &:not(:last-child)::after {
          width: 2rem;
        }

        .icn {
          max-width: 4rem;
        }
  
        .ttl,
        .ec-progress__label {
          font-size: 1rem;
          margin-bottom: 0;
        }
        .ec-progress__label {
          line-height: 1.4;
        }
  
        .txt {
          display: none;
        }
      }
    }
    .ec-progress {
      margin-bottom: 1.5rem;
    }
  }

/* table
**************************************** */
  /* --- table-01 --- */
  .table-01 {
    width: 100%;
    border-radius: 1rem;
    background-color: #fff;
    overflow: hidden;
  }
  .table-01 th,
  .table-01 td {
    padding: 1em;
    letter-spacing: normal;
    line-height: 1.6;
    border: 2px solid var(--bg-03);
    vertical-align: middle;
  }
  .table-01 th {
    background-color: var(--primary-default);
    color: #fff;
  }

  @media screen and (max-width: 767px) {
    .sp-scroll {
      overflow-x: scroll;
      margin-bottom: 1em;
      -webkit-overflow-scrolling: touch;
    }
    .table-sp-scroll {
      width: 40rem;
    }
    .table-sp-block,
    .table-sp-block th,
    .table-sp-block td {
      width: 100% !important;
    }
    .table-sp-block th,
    .table-sp-block td {
      display: block;
      border: 0;
    }
  }

/* login
*************************************************** */
#page-login {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background-image: url(../images/common/login-bg.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  min-height: 100%;
  padding-bottom: 10rem;
}
.login_footer {
  position: fixed;
  bottom: 0;
  right: 0;
  left: 0;
  z-index: 10000;
  height: 7rem;
  background-color: #fff;
  a {
    color: var(--txt-primary);
  }
}
.login_box {
  position: relative;
  max-width: 57.5rem;
  padding: 2rem 5rem;
  background-color: #fff;
  border-radius: 1rem;
  text-align: center;
}
.login_box-lg {
  max-width: 80rem;
}
.login_box::before {
  content: "";
  position: absolute;
  top: 1px;
  right: 0;
  left: 0;
  margin: auto;
  width: 30rem;
  aspect-ratio: 480 / 80;
  transform: translateY(-100%);
  background-image: url(../images/common/login_box.svg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top center;
}
.login_box .header--logo {
  position: relative;
  z-index: 10;
  margin-top: -5rem;
  font-size: 2rem;
  line-height: 1.25;
  border-bottom: .1875rem dashed var(--txt-placeholder, #DDDACD);
  padding-bottom: 1.5rem;
  margin-bottom: 2rem;
}
.login_box .header--logo .txt-lg {
  display: block;
  font-size: 6rem;
}
.login_box .header--logo .txt-gr {
  display: inline-block;
  transform: translateY(.125rem);
}
.login_box .txt {
  font-size: 1rem; /* 16px */
}
.login_box .ttl-04 {
  font-size: 1.75rem; /* 28px */
}
.login_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.lostmemberpassword .btn-01-entry::before {
  display: none;
}
.form_layout {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 0;
  text-align: left;
  align-items: center;
  font-size: 1rem; /* 16px */
}
.forgetmenot {
  font-size: 1rem; /* 16px */
}

@media screen and (min-width: 768px) {
  .section_gifuchoku {
    border-right: .1875rem dashed var(--txt-placeholder, #DDDACD);
    padding-right: 3rem;
    padding-bottom: 2rem;
  }
  .section_point {
    padding-left: 3rem;
  }
}
@media screen and (max-width: 767px) {
  #page-login {
    padding-bottom: 8rem;
  }
  .login_footer {
    position: absolute;
    height: 5.5rem;
  }
  .login_footer .icn {
    width: calc(10.875rem / 1.25);
  }
  #page-login {
    background-attachment: fixed;
  }
  .login_box {
    padding: 2rem 1.5rem 1rem;
    border-radius: .75rem;
  }
  .login_box::before {
    width: 16rem;
  }
  .login_box .header--logo {
    margin-top: -3.5rem;
    font-size: 1.25rem;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
  }
  .login_box .header--logo .txt-lg {
    font-size: 3rem;
  }
  .login_box .header--logo .txt-gr {
    transform: translateY(.125rem);
  }
  .login_box .header--logo .round_bg-gr {
    display: inline-block;
    margin: 0;
    margin-left: .25rem;
  }
  .login_wrap {
    grid-template-columns: repeat(1, 1fr);
  }
  .section_gifuchoku {
    border-bottom: .1875rem dashed var(--txt-placeholder, #DDDACD);
    padding-bottom: 2rem;
  }
  .section_point {
    padding-top: 2rem;
  }
  .login_box .ttl-04 {
    font-size: 1.5rem;
  }
  .login_box .txt {
    text-align: left;
  }
  .form_layout {
    grid-template-columns: 1fr;
  }
}

/* mypage
*************************************************** */
/* --- mypage_main ---*/
.mypage_main {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: center;
  text-align: center;
}
.point_area {
  border-right: solid 2px var(--txt-placeholder);
}
.point_area .ttl {
  margin-bottom: .55rem;
  font-size: 1.25rem;
}
.point_area .price {
  font-size: 1.375rem;
  line-height: 1;
}
.point_area .price .num {
  padding-left: .5rem;
  font-size: 3rem;
  color: var(--sub-05);
  letter-spacing: normal;
}
.point_area .price .yen {
  padding-left: .5rem;
  font-size: 2.125rem;
}
@media screen and (max-width: 767px) {
  .mypage_main {
    grid-template-columns: 1fr;
  }
  .point_area {
    border-right: none;
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: solid 2px var(--txt-placeholder);
  }
  .point_area .ttl {
    font-size: 1.125rem;
  }
  .point_area .price {
    font-size: 1.25rem;
  }
  .point_area .price .num {
    font-size: 2.5rem;
  }
  .point_area .price .yen {
    font-size: 1.5rem;
  }
}

/* --- history-area --- */
#memberinfo .history-area {
  display: grid;
  grid-template-columns: 20rem 1fr;
  gap: 2.5rem 1.5rem;
  padding: 1.5rem;
  padding-left: 0;
  margin-bottom: 0;
  border-top: solid 1px var(--txt-placeholder);
  border-bottom: solid 1px var(--txt-placeholder);
}
#memberinfo .history-area::-webkit-scrollbar {
  width: .5rem;
}
#memberinfo .history-area::-webkit-scrollbar-thumb {
  background-color: var(--primary-default);
  border-radius: 5px;
}
#memberinfo .history-area::-webkit-scrollbar-track-piece {
  background-color: var(--txt-placeholder);
}
#memberinfo #history_head { 
  display: flex;
  margin-bottom: 0;
}
#memberinfo table {
  border: none;
}
#memberinfo #history_head tbody { 
  flex: 1;
}
#memberinfo #history_head tr { 
  display: flex;
  flex-direction: column;
}
#memberinfo #history_head th,
#memberinfo #history_head td {
  height: 2.25rem !important;
  padding: .5rem !important;
}
#memberinfo #history_head th:not(:first-child),
#memberinfo #history_head td:not(:first-child) {
  border-top: none !important;
}
#memberinfo #history_head th {
  background-color: var(--primary-default);
  color: #fff;
}
#memberinfo #history_head td {
  text-align: right;
  border-left: none !important;
  width: auto;
}
#memberinfo .retail { 
  margin-bottom: 0;
}
#memberinfo .retail th { 
  white-space: nowrap;
}
#memberinfo .retail .rightnum {
  white-space: nowrap;
}
#memberinfo .historyrow.transfer_statement,
#memberinfo .historyrow.purchase_price,
#memberinfo .historyrow.discount,
#memberinfo .historyrow.shipping,
#memberinfo .historyrow.cod,
#memberinfo .historyrow.tax,
#memberinfo .historyrow.get_point,
#memberinfo .order_head_value td[data-label="入金状況"],
#memberinfo .order_head_value td[data-label="購入金額"],
#memberinfo .order_head_value td[data-label="値引き"],
#memberinfo .order_head_value td[data-label="送料"],
#memberinfo .order_head_value td[data-label="代引手数料"],
#memberinfo .order_head_value td[data-label="内消費税"],
#memberinfo .order_head_value td[data-label="獲得ポイント"] ,
#memberinfo .retail .cartrownum,
#memberinfo .retail .thumbnail,
.exclude_cancel {
  display: none !important;
}
@media screen and (max-width: 767px) {
  #memberinfo .history-area {
    grid-template-columns: 1fr;
    gap: .5rem;
    padding: 1rem 0;
  }
  #memberinfo .retail {
    margin-bottom: 1.25rem;
  }
  #memberinfo #history_head th,
  #memberinfo .retail th,
  #memberinfo #history_head td,
  #memberinfo .retail td {
    font-size: 1rem; /* 14px */
  }
}

/* --- customer_form --- */
.customer_form,
#confirm_table {
  margin-bottom: 2.5rem !important;
  border-top: 1px solid #DDDACD !important;
}
.customer_form + .customer_form {
  margin-top: -2.5rem;
  border-top: none !important;
}
.customer_form th,
.customer_form td,
#point_table th,
#point_table td,
#confirm_table th,
#confirm_table td {
  padding: 1rem 0 !important;
  border: none !important;
  border-bottom: 1px solid #DDDACD !important;
  background: transparent !important;
}
.customer_form th em {
  font-size: 0;
}
.customer_form th em::before {
  display: inline-block;
  margin-right: 1em;
  padding: .25em .5em;
  content: "\5FC5\9808";
  font-size: .75rem;
  font-weight: bold;
  line-height: 1;
  transform: translateY(-.125em);
  color: #FFF;
  background-color: #C24D0D;
  border-radius: .25em;
}
.customer_form p.password_policy {
  font-size: .75rem; /* 12px */
}
.customkey_donor_id,
.customkey_donation_id,
.customer_form #fax_row,
.member-fax-row,
.delivery-fax-row,
#address3_row,
.address3-row {
  display: none !important;
}
#address2_row th::after,
.address2-row th::after {
  content: "・ビル名";
}
@media screen and (max-width: 767px) {
  .customer_form tr {
    margin-bottom: 0;
    border-bottom: 1px solid #DDDACD;
  }
  .customer_form th,
  #point_table th,
  #confirm_table th {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
  }
  .customer_form td,
  #point_table td,
  #confirm_table tr:not(.ttl) td {
    border-bottom: none !important;
    padding-bottom: 0 !important;
  }
  .customer_form td input[type="text"],
  .customer_form input[type="password"],
  #point_table td input[type="text"],
  #confirm_table td input[type="text"],
  .customer_form td select,
  #point_table td select,
  #confirm_table td select,
  .customer_form input#loginmail,
  .customer_form input#mailaddress1,
  .customer_form input#mailaddress2 {
    width: 100%;
  }
  .customer_form #name_row td input[type="text"],
  .customer_form #furikana_row td input[type="text"] {
    width: 7rem;
  }
}

/* cart
*************************************************** */
/* --- cart-step1 ---*/
.cart-step1 .continue_shopping_button {
  display: none;
}
.cart-step1 .to_customerinfo_button:disabled {
  cursor: not-allowed;
  opacity: 0.3;
  background-color: var(--txt-secondary)  !important;
  &:hover {
    transform: translateY(0);
  }
}
#cart_table .price,
#cart_table .num,
#cart_table .unitprice,
#cart_table .stock {
  display: none;
}
#cart_table .thumbnail {
  width: 12%;
}
#cart_table .thumbnail img {
  width: 100%;
}
#cart_table .quantity,
#cart_table .stock {
  width: 16%;
}
#cart_table,
#cart_table th {
  border: none;
}
#cart_table th {
  padding: 1rem;
  background: #F4F3F0;
}
#cart_table .amount {
  padding: 1rem;
  white-space: nowrap;
}
.cart_table-th-sm {
  padding-top: 0 !important;
}
#cart_table td {
  padding: 1rem;
  border-right: none;
  border-left: none;
  border-color: #dddacd;
}
.ec-cartRole__totalAmount {
  font-size: 1.5rem; /* 24px */
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  #cart_table thead {
    display: none;
  }
  #cart_table th {
    padding: .5rem;
  }
  #cart_table tr {
    display: flex;
    flex-wrap: wrap;
  }
  #cart_table .thumbnail {
    display: block;
    width: 20%;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
    border-bottom: none;
  }
  #cart_table td.productname {
    width: 80%;
    padding-right: 0;
    padding-bottom: 0;
    border-bottom: none;
  }
  #cart_table .quantity {
    flex: 1;
    text-align: right;
    padding-right: 0;
    border-top: none;
  }
  #cart_table .subtotal,
  #cart .action {
    width: fit-content;
    border-top: none;
  }
  #cart .action {
    padding-top: .75rem;
    padding-right: 0;
    padding-left: 0;
  }
  #cart .action input.delButton {
    font-size: .857rem; /* 12px */
  }
  #cart_table tfoot .thumbnail {
    display: none;
  }
  #cart_table .amount,
  #cart_table .amount2,
  #cart_table .aright.txt-rd.txt-lg {
    flex: 1;
  }
  #cart_table .amount {
    padding: .3125em
  }
  .point_tr td {
    padding: 1em .3125em !important;
  }
  #wc_cart #cart .upbutton {
    font-size: .857rem; /* 12px */
  }
  .ec-cartRole__totalAmount {
    font-size: 1.286rem; /* 18px */
  }
}

/* --- cart-step3 ---*/
.no_select select {
  border: none;
  padding: 0;
  pointer-events: none;
  background: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.no_select input[type="radio"] {
  display: none;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  #wc_delivery .customer_form select {
    width: 100%;
  }
}

/* --- cart-step4 ---*/
#point_table td.c-point,
#point_table td.u-point,
#confirm_table .ttl td {
  background: #F4F3F0 !important;
}
#confirm_table .ttl td {
  text-align: center;
}
.cart-step4 .send {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.cart-step4 .checkout_button {
  order: -1;
  margin-bottom: 1.5rem;
}
#point_table td span.point {
  font-size: 1rem; /* 16px */
}
.cart-step4 #cart_table .aright {
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .cart-step4 #cart_table th.thumbnail + th {
    padding: .5em .3125em;
  }
  #confirm_table tr.tel-row td {
    padding-bottom: 1rem !important;
  }
  .used_point {
    width: 7rem;
  }
}

/* --- cart-step5 ---*/
.cart-step5 #cart_completion h3 {
  font-size: 2rem; /* 32px */
  letter-spacing: .04em;
  color: var(--primary-default); 
}
.cart-step5 #cart_table .amount {
  font-size: 1rem; /* 16px */
}
@media screen and (max-width: 767px) {
}


.error_message:has(.cart-error-message) {
  width: fit-content;
  margin-inline: auto;
  padding: 2.5rem;
  background-color: #fff;
  border: 3px solid #f00;
}
.cart-error-message > p {
  margin-bottom: 2rem;
}
.cart-error-message > p small {
  display: block;
  margin-top: .7em;
  font-size: .7em;
  opacity: .5;
}