.pageheader_body .pageheader_title{
  /* display: none; */
  visibility: hidden;
}

/* service ----------------------------------------------------------*/

.mind {
  text-align: center;

  & .section-head{
    margin-bottom: 20px;
  }

  @media (max-width: 640px){
    padding: 0px 20px;
  }

  & .inner{


    @media (max-width: 640px){
      & p{
        text-align: justify;
        line-height: 2;
      }
    }
  }
}


/* available-work ----------------------------------------------------------*/
.available-work {
  padding: 120px 0;
  background: #FFFCEB;

  @media (max-width: 640px){
    padding: 80px 20px;
  }

  & .inner {
    max-width: 1020px;
    margin: 0 auto;

    & .available_list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      align-items: stretch;
      gap: 40px 80px;

      @media (max-width: 960px){
        grid-template-columns: 1fr;
        gap: 20px;
      }

      & .available_item {
        & > div {
          position: relative;
          background: #ffffff;
          border-radius: 0px 16px 16px 16px;
          display: flex;
          justify-content: space-between;
          gap: 30px;
          padding: 20px;

          @media (max-width: 640px){
            margin-top: 40px;
            gap: 10px;
            padding: 14px;
          }

          & > div{
            max-width:220px;

            @media (max-width: 640px){
              width: 55%;
            }
          }
        }

        & span {
          position: absolute;
          writing-mode: vertical-rl;
          text-orientation: upright;
          top: 0px;
          left: -30px;
          display: inline-block;
          padding: 10px 8px;
          font-size: 16px;
          font-weight: 700;
          line-height: 1;
          color: #ffffff;
          background: var(--key-color);
          border-radius: 10px 0 0 10px;
          font-family: "Noto Sans JP", sans-serif;
          text-transform:uppercase;


          @media (max-width: 640px){
            writing-mode: horizontal-tb;
            border-radius: 10px 10px 0 0;
            top: -36px;
            left: 50%;
            transform: translateX(-50%);
            height: 36px;

            &::after{
              position: absolute;
              content: "";
              width: 280px;
              height:2px;
              background: var(--key-color);
              bottom: 0px;
              left: 50%;
              transform: translateX(-50%);
            }
          }

          & i{
            font-style: normal;
            position: relative;
            margin-top: 20px;

            &::before{
              position: absolute;
              content: "";
              width: 16px;
              height: 1px;
              background: #fff;
              top: -10px;
              left: 50%;
              transform: translateX(-50%);
            }
          }

          @media (max-width: 640px){
            width: 45%;
            text-align: center;
          }

        }

        & figure {
          margin: 0;
          width: calc(100% - 220px);
          position: relative;
          overflow: hidden;
          border-radius: 10px;

          @media (max-width: 960px){
            width: 45%;
          }

          & img{
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
          }
        }

        & h3 {
          font-size: 22px;
          font-weight: 700;
          margin: 0 0 10px 8px;

          @media (max-width: 640px){
            margin: 0 0 0 8px;
          }

        }

        & ul {
          font-size: 16px;
          color: #333333;
          line-height: 1.9;

          & li{
            text-align: left;
            font-size: 14px;
          }
        }
      }
    }
  }
}


/* flow ---------------------------------------------------- */
.flow{

  @media (max-width: 640px){
    padding: 0px 20px;
  }

  & .inner{
    max-width: 640px;
  }

  & .flow_list{
    list-style: none;
    padding: 0;
    margin: 0;

    & .flow_item{
      position: relative;
      padding: 30px 16px;
      background: var(--key-color);

      @media (max-width: 640px){
        padding: 24px 16px;
      }

      &::after{
        content: "";
        position: absolute;
        left: 50%;
        bottom: -23px;
        transform: translateX(-50%);
        width: 0;
        height: 0;
        border-left: 25px solid transparent;
        border-right: 25px solid transparent;
        border-top: 23px solid var(--key-color);
        z-index: 10;
      }

      &:first-of-type{
        border-radius: 10px 10px 0 0;
      }

      &:nth-of-type(2){
        background: #FFF0AA;

        &::after{
          border-top-color: #FFF0AA;
        }
      }

      &:nth-of-type(3){
        background: #FFFBE6;

        &::after{
          border-top-color: #FFFBE6;
        }
      }

      &:nth-of-type(4){
        background: #FFFEFC;

        &::after{
          border-top-color: #FFFEFC;
        }
      }

      &:last-of-type{
        background: #F4F4F4;
        border-radius: 0 0 10px 10px;

        &::after{
          content: none;
        }

      }

      & > div{
        position: relative;
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 0 0 0 20px;

        @media (max-width: 640px){
          padding: 0 8px;
          display: block;
        }

        & > span{
          display: inline-block;
          min-width: 30px;
          text-align: center;
          font-weight: 700;
          font-size: 14px;
          line-height: 1;
          color: var(--key-color);
          background: #fff;
          padding: 8px 6px;
          border-radius: 8px;
          z-index: 2;
          font-family: "Noto Sans JP", sans-serif;

          @media (max-width: 640px){
            position: absolute;
            top: 2px;
            left: 10px;
          }

          &.num_line{
            border: 1px solid var(--key-color);
          }
        }

        & > h3{
          font-size: 24px;
          font-weight: 800;
          line-height: 1.5;
          color: #111;
          position: relative;
          z-index: 2;

          @media (max-width: 640px){
            margin-left: 40px;
          }
        }

        & > p{
          margin: 0;
          color: #333;
          font-size: 16px;
          line-height: 1.9;
          position: relative;
          z-index: 2;

          @media (max-width: 640px){
            text-align: justify;
            font-size: 15px;
          }
        }
      }
    }
  }
}

/* price ---------------------------------------------------- */

.price {
  background: #ffffff;

  & .section-head{
    margin-bottom: 60px;

    @media (max-width: 640px){
      margin-bottom: 0px;
    }
  }

  & .inner {
    max-width: 750px;
    margin: 0 auto;

    /* 黄色い枠全体 */
    & .price-area {
      position: relative;
      padding: 48px 24px 32px;
      border: 3px solid #ffd74b;
      border-radius: 24px;
      text-align: center;
      margin-bottom: 24px;

      @media (max-width: 640px){
        border: none;
        padding: 0;
      }

      /* 見出しSVG */
      & figure {
        display: block;
        width: 90%;
        position: absolute;
        top: -10px;
        left: 50%;
        transform: translate(-50%, -50%);
        margin: 0;
        padding: 0 24px;
        line-height: 1;
        background: #fff;

        @media (max-width: 640px){
          position: static;
          transform: none;
          text-align: center;
          margin: 0 auto;
        }

        & img {
          display: block;
          max-width: 100%;
          height: auto;
        }
      }

      & .price-box {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 16px 20px;
        border-radius: 10px;
        font-weight: 700;
        font-size: 30px;
        line-height: 1.4;
        margin-bottom: 26px;
        flex-wrap: wrap;

        &.main {
          background: #f5f5f5;
          position: relative;

          @media (max-width: 640px){
            font-size: 22px;
            border-radius: 0px;
          }

          @media (max-width: 414px){
            font-size: 16px;
          }


          &::after{
            content: "";
            position: absolute;
            left: 50%;
            bottom: -14px;
            transform: translateX(-50%);
            width: 0;
            height: 0;
            border-left: 16px solid transparent;
            border-right: 16px solid transparent;
            border-top: 14px solid #f5f5f5;
            z-index: 10;
          }

          & b{
            font-size: 16px;
            transform: translate(-6px, 6px);

            @media (max-width: 640px){
              display: block;
              transform: none;
            }
          }
        }

        &.example {
          background: #fff7d8;
          margin-bottom: 0;
          font-size: 24px;

          @media (max-width: 640px){
            font-size: 22px;
          }

          @media (max-width: 414px){
            font-size: 16px;
          }

          & b{
            font-size: 30px;
            font-weight: 500;
            font-family: "Oswald", sans-serif;
            transform: translateY(-4px);

            @media (max-width: 640px){
              font-size: 22px;
              transform: translateY(-1px);
            }

            @media (max-width: 414px){
              font-size: 16px;
              transform: translateY(0px);
            }

          }

          & .badge{
            font-size: 16px;
            width: 24px;
            height: 24px;
          }
        }

        & p {
          margin: 0;
          display: flex;
          align-items: center;
        }

        & span {
          display: inline-flex;
          align-items: center;
        }

        /* 例バッジ */
        & .badge {
          display: inline-flex;
          align-items: center;
          justify-content: center;
          width: 32px;
          height: 32px;
          border-radius: 50%;
          background: #ffd74b;
          font-size: 20px;
          font-weight: 700;
          flex-shrink: 0;

          @media (max-width: 640px){
            width: 24px;
            height: 24px;
          }

          &.first{
            width: 28px;
            height: 28px;
            margin-right: 8px;
          }
        }
      }
    }

    /* 注意書き */
    & .notes {
      font-size: 15px;
      line-height: 1.8;
      text-align: justify;

      @media (max-width: 767px){
        padding: 0 20px;
      }
    }


   /*  & .price-text{
      background: #FFFCEB;
      padding: 10px;
      text-align: center;
      margin-bottom: 20px;
      border-radius: 10px;
      font-size: 22px;
      font-weight: bold;

      & span{
        font-size: 16px;
        font-weight: normal;
      }
    } */

    /* & .price_list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      grid-template-columns: 2fr 2fr;
      gap: 28px;
      margin-bottom: 20px;

      @media (max-width: 640px){
        grid-template-columns: 1fr;
      }

      & .price_item {
        border: 2px solid var(--key-color); 
        border-radius: 14px;
        overflow: hidden;
        background: #fff;
        text-align: center;

        & > span {
          display: block;
          background: #FFF0AA;
          font-size: 20px;
          font-weight: 700;
          padding: 8px 12px;
          border-bottom: 1px solid var(--key-color);
        }

        & > p {
          margin: 0;
          padding: 15px 5px;
          font-size: 40px;
          font-weight: 500;
          line-height: 1.2;
          color: #111;
          font-family: "Oswald", sans-serif;

          & > b {
            font-size: 30px;
            font-weight: 700;
          }
        }
      }
    } */
  }
}

/* consult ---------------------------------------------------- */
.consult {
  padding: 120px 0;
  background: #FFFCEB;

  @media (max-width: 640px){
    padding: 60px 20px;
  }


  & .inner {
    max-width: 1180px;
    margin: 0 auto;

    & .consult_list {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;

      @media (max-width: 640px){
        grid-template-columns: 1fr;
      }
    }

    & .consult_item {
      list-style: none;
      padding: 0;
      margin: 0;
      background: #ffffff;
      border-radius: 10px;
      padding: 22px;
      position: relative;

      & > li {
        list-style: none;
      }

      /* 上段1行目（エリア・物件種別） */
      & > li:first-child {
        font-size: 20px;
        font-weight: 700;
        color: #111;
        display: flex;
        align-items: center;
        gap: 10px;
        border: 1px solid #FFFCEB;
        border-bottom: none;
        border-radius: 4px 4px 0 0;
        overflow: hidden;

        @media (max-width: 640px){
          font-size: 18px;
        }

        /* 左の黄色ラベル「事例1」 */
        & > span {
          display: inline-block;
          background: var(--key-color);
          color: #111;
          font-size: 14px;
          font-weight: 700;
          line-height: 1;
          padding: 18px 20px;
          white-space: nowrap;
        }
      }

      /* 上段2行目（相続人〜の説明） */
      & > .consult-text {
        position: relative;
        background: #FFFCEB;
        padding: 14px 16px;
        font-size: 18px;
        color: #222;
        margin-bottom: 22px;
        border-radius: 0 0 4px 4px;
        text-align: center;

        @media (max-width: 640px){
          font-weight: bold;
        }

        &::after {
          content: "";
          position: absolute;
          left: 50%;
          transform: translateX(-50%);
          bottom: -40px;
          border: 20px solid transparent;
          border-top-color: #FFFCEB;
        }
      }

      & > li:last-child {
        margin-bottom: 0;
        text-align: center;
        font-size: 26px;
        font-weight: 800;
        color: #111;
        line-height: 1.5;

        @media (max-width: 640px){
          font-size: 20px;
        }
      }
    }
  }
}


/* promise_list ---------------------------------------------------- */

.promise{
  padding: 120px 0;
  background: #F5F5F5;

  @media (max-width: 640px){
    padding: 60px 20px;
  }

  & .inner{
    max-width: 692px;

    & .promise_list {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 48px 56px;
      list-style: none;
      padding: 0;
      margin: 0 auto;

      @media (max-width: 640px){
        gap: 20px;
      }

      & .consult_item {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        width: 190px;
        height: 190px;
        padding: 24px 10px;
        background: #fff;
        border: 2px solid var(--key-color);
        border-radius: 50%;
        box-shadow: 0 0 0 12px #fff;
        color: #222;
        font-weight: 700;
        line-height: 1.8;
        font-size: 19px;

        @media (max-width: 640px){
          width: 100%;
          height: 60px;
          border-radius: 10px;
          border:none;
          box-shadow: none;
          padding: 0 0 0 40px;
          font-size: 17px;

          & br{
            display: none;
          }
        }

        & > span {
          position: absolute;
          left: 5px;
          top: -9px;
          display: grid;
          place-items: center;
          width: 40px;
          height: 40px;
          background: #FFD447;
          border-radius: 50%;
          color: #222;
          font-weight: 800;
          font-size: 24px;
          box-shadow: 0 0 0 6px #fff;
          border: 2px solid var(--key-color);
          font-family: "Oswald", sans-serif;
          line-height: 1;

          @media (max-width: 640px){
            left: 0px;
            top: 50%;
            height: ;
            transform: translateY(-50%);
            width: 34px;
            height: 60px;
            line-height: 0;
            border-radius: 10px 0 0 10px;
            box-shadow: none;
            padding: 20px 0;
            margin-right: 10px;
          }
        }
      }
    }
  }
}

/* promise_list ---------------------------------------------------- */

.goods{

  @media (max-width: 640px){
    padding: 0px 20px;
  }

  & .inner{

  }
}


/* faq ---------------------------------------------------- */

.faq {
  padding: 120px 0;
  background: #FFFCEB;

  @media (max-width: 640px){
    padding: 60px 20px;
  }

  & .inner {
    max-width: 670px;
    margin: 0 auto;

    & .faq-list {
      margin: 0;
      padding: 0;

      & dl {
        margin: 0 0 36px 0;
        padding: 0 0 28px 0;
        border-bottom: 2px solid var(--key-color);

        &:last-child {
          border-bottom: none;
          margin-bottom: 0;
          padding-bottom: 0;
        }

        /* 質問 */
        & dt {
          position: relative;
          display: flex;
          align-items: center;
          gap: 16px;
          font-size: 26px;
          font-weight: 800;
          line-height: 1.5;
          color: #111;
          margin: 0 0 12px 0;

          @media (max-width: 640px){
            font-size: 22px;
          }

          /* Qマーク */
          & span {
            position: relative;
            flex-shrink: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 52px;
            height: 52px;
            border-radius: 50%;
            background: var(--key-color);
            color: #111;
            font-size: 22px;
            font-weight: 800;
            line-height: 1;

            /* 吹き出しの足 */
            &::after {
              content: "";
              position: absolute;
              bottom: 1px;
              right: -1px;
              transform: rotate(45deg);
              width: 0;
              height: 0;
              border-top: 8px solid transparent;
              border-bottom: 8px solid transparent;
              border-left: 10px solid var(--key-color);
            }
          }
        }

        /* 回答 */
        & dd {
          margin: 0;
          padding-left: 68px;
          font-size: 16px;
          line-height: 1.9;
          color: #333;
        }
      }
    }
  }
}

/* form ---------------------------------------------------- */
.form{
  padding: 100px 0;

  @media (max-width: 1024px) {
    padding: 60px 20px;
  }

}