@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Zen+Maru+Gothic&display=swap");
.bg_blue {
  background: #eff3f7; }

/*********************************
 * hf
 *********************************/
#hf {
  padding: 0 0 5rem 0; }
  @media screen and (max-width: 768px) {
    #hf {
      padding: 0 0 3.5rem 0; } }
  #hf .hf_img {
    padding: 4rem 0 0 0;
    background: url("../images/products/hf_bg.jpg") center top no-repeat;
    background-size: cover; }
    @media screen and (max-width: 768px) {
      #hf .hf_img {
        padding: 0;
        background: none; } }
    #hf .hf_img h2 {
      width: 80%;
      max-width: 894px;
      margin: 0 auto; }
      @media screen and (max-width: 768px) {
        #hf .hf_img h2 {
          width: 100%; } }
  #hf h3 {
    font-size: 180%;
    line-height: 1.9;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #hf h3 {
        margin-top: 2rem; } }
  #hf dl {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 2rem; }
    @media screen and (max-width: 768px) {
      #hf dl {
        display: block; } }
    #hf dl dt {
      width: 18%;
      padding: 3rem 0; }
      @media screen and (max-width: 768px) {
        #hf dl dt {
          width: 100%;
          padding: 3rem 0 0 0;
          text-align: center; } }
      #hf dl dt img {
        width: auto;
        height: 3rem; }
        @media screen and (max-width: 768px) {
          #hf dl dt img {
            height: 3.2rem; } }
      #hf dl dt.smooth img {
        height: 2.3rem; }
    #hf dl dd {
      position: relative;
      width: 78%;
      padding: 3rem 0;
      font-size: 110%;
      line-height: 1.8; }
      @media screen and (max-width: 768px) {
        #hf dl dd {
          width: 100%;
          padding: 2rem 0 3rem 0;
          font-size: 135%;
          line-height: 2; } }
      #hf dl dd::after {
        position: absolute;
        display: block;
        content: "";
        width: 100%;
        height: 2px;
        background: linear-gradient(to right, #8ec6e3 0%, #b2bfd0 100%);
        bottom: 0;
        left: 0; }
        @media screen and (max-width: 768px) {
          #hf dl dd::after {
            height: 1px; } }
      #hf dl dd:last-child::after {
        display: none; }

/*********************************
 * products
 *********************************/
#products {
  padding: 8rem 0 0 0; }
  @media screen and (max-width: 768px) {
    #products {
      padding: 6rem 0 0 0; } }
  #products .jp_ttl {
    padding-top: 0; }
    @media screen and (max-width: 768px) {
      #products .jp_ttl {
        padding-top: 0.5rem; } }
  #products ul.products_menu {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 5rem; }
    @media screen and (max-width: 768px) {
      #products ul.products_menu {
        margin-top: 1.5rem; } }
    #products ul.products_menu li {
      overflow: hidden;
      width: 48%;
      margin-top: 2.5rem;
      border-radius: 0.6rem;
      box-shadow: 0 5px 2px rgba(0, 0, 0, 0.1); }
      @media screen and (max-width: 768px) {
        #products ul.products_menu li {
          width: 100%;
          margin-top: 1.5rem; } }
      #products ul.products_menu li dl {
        display: flex;
        align-items: center;
        justify-content: space-between; }
        #products ul.products_menu li dl dt {
          width: 22%; }
          @media screen and (max-width: 768px) {
            #products ul.products_menu li dl dt {
              width: 25%; } }
        #products ul.products_menu li dl dd {
          width: 72%;
          font-size: 120%; }
          @media screen and (max-width: 768px) {
            #products ul.products_menu li dl dd {
              width: 70%;
              font-size: 135%; } }
          #products ul.products_menu li dl dd .type {
            padding-top: 0.5rem; }
            #products ul.products_menu li dl dd .type span {
              padding: 0.4em 1.5em;
              border-radius: 2rem;
              background: #fff;
              color: #91a3ba;
              font-size: 65%; }
              @media screen and (max-width: 768px) {
                #products ul.products_menu li dl dd .type span {
                  padding: 0.1em 1.2em;
                  font-size: 80%; } }
      #products ul.products_menu li a {
        position: relative;
        display: flex;
        align-items: center;
        height: 100%;
        padding: 1.6rem 1.2rem;
        background: #91a3ba;
        color: #fff; }
        @media screen and (max-width: 768px) {
          #products ul.products_menu li a {
            padding: 1.2rem 1rem; } }
        #products ul.products_menu li a::after {
          position: absolute;
          display: block;
          content: "";
          width: 1.7rem;
          height: 1.7rem;
          background: url("../images/products/icn_arw_blue.svg") right center no-repeat;
          background-size: contain;
          top: center;
          right: 1.2rem; }
          @media screen and (max-width: 768px) {
            #products ul.products_menu li a::after {
              width: 1.4rem;
              height: 1.4rem; } }
      #products ul.products_menu li.purple a {
        background: #9ea3bd; }
        #products ul.products_menu li.purple a::after {
          background: url("../images/products/icn_arw_purple.svg") right center no-repeat;
          background-size: contain; }
      #products ul.products_menu li.beige a {
        background: #b0b0b0; }
        #products ul.products_menu li.beige a::after {
          background: url("../images/products/icn_arw_beige.svg") right center no-repeat;
          background-size: contain; }
      @media screen and (min-width: 769px) {
        #products ul.products_menu li.full {
          margin-right: 26%;
          margin-left: 26%; } }

/*********************************
 * pr_box
 *********************************/
.pr_box {
  padding: 4rem 0 7rem 0; }
  @media screen and (max-width: 768px) {
    .pr_box {
      padding: 3.5rem 0 5rem 0; } }
  .pr_box .inner {
    padding-top: 3rem; }
    @media screen and (max-width: 768px) {
      .pr_box .inner {
        padding-top: 1.5rem; } }
  .pr_box .type span {
    padding: 0.8em 2.5em;
    border-radius: 2rem;
    background: #40464c;
    color: #fff;
    font-size: 105%; }
    @media screen and (max-width: 768px) {
      .pr_box .type span {
        padding: 0.6em 2.2em; } }
  .pr_box h2 {
    margin-top: 2.4rem;
    font-size: 190%;
    font-weight: 600; }
    @media screen and (max-width: 768px) {
      .pr_box h2 {
        margin-top: 2rem;
        font-size: 250%; } }
  .pr_box .limg {
    margin-top: 2.8rem; }
    @media screen and (max-width: 768px) {
      .pr_box .limg {
        margin-top: 2.2rem; } }
  .pr_box h3 {
    margin-top: 3rem;
    color: #91a3ba;
    font-size: 110%; }
  .pr_box ul.img_list {
    display: flex;
    flex-wrap: wrap;
    width: 100%; }
    @media screen and (max-width: 768px) {
      .pr_box ul.img_list {
        flex-wrap: wrap;
        justify-content: space-between; } }
    .pr_box ul.img_list li {
      width: 23%;
      margin: 1rem calc(4% / 3) 0 0;
      text-align: center; }
      @media screen and (max-width: 768px) {
        .pr_box ul.img_list li {
          width: 47%;
          margin: 1rem 0 0 0; } }
      .pr_box ul.img_list li:nth-child(4n) {
        margin-right: 0 !important; }
    .pr_box ul.img_list p {
      padding-top: 0.8rem; }
      @media screen and (max-width: 768px) {
        .pr_box ul.img_list p {
          padding-top: 0.5rem; } }
      .pr_box ul.img_list p span {
        display: inline-block;
        padding: 0.4em 1em;
        border: 2px solid #91a3ba;
        border-radius: 4em;
        color: #91a3ba;
        font-size: 90%;
        line-height: 1.3; }
        @media screen and (max-width: 768px) {
          .pr_box ul.img_list p span {
            padding: 0.6em 1em;
            font-size: 100%; } }
  .pr_box table {
    width: 100%;
    margin-top: 2.5rem;
    background: #fff;
    font-size: 85%; }
    .pr_box table th {
      width: 32%;
      padding: 1em;
      background: #91a3ba;
      border-bottom: 1px solid #fff;
      color: #f1f3f6; }
      @media screen and (max-width: 768px) {
        .pr_box table th {
          display: block;
          width: 100%;
          padding: 1rem;
          font-size: 140%; } }
    .pr_box table td {
      width: 68%;
      padding: 1em;
      border-bottom: 1px solid #b3b3b3; }
      @media screen and (max-width: 768px) {
        .pr_box table td {
          display: block;
          width: 100%;
          padding: 1rem;
          font-size: 120%; } }
  .pr_box .contact_btn {
    width: 68%;
    max-width: 524px;
    margin: 4rem auto 0 auto; }
    @media screen and (max-width: 768px) {
      .pr_box .contact_btn {
        width: 100%;
        margin: 2.5rem auto 0 auto; } }
  .pr_box.purple h3 {
    color: #9ea3bd; }
  .pr_box.purple ul.img_list p span {
    border: 2px solid #9ea3bd;
    color: #9ea3bd; }
  .pr_box.purple table th {
    background: #9ea3bd;
    color: #fff; }
  .pr_box.beige {
    background: #f8f9fa; }
    .pr_box.beige h3 {
      padding: 0.7em 0.8em;
      background: #b0b0b0;
      border-radius: 0.6rem 0.6rem 0 0;
      color: #fff; }
      @media screen and (max-width: 768px) {
        .pr_box.beige h3 {
          margin-top: 2.5rem;
          padding: 1em; } }
    @media screen and (max-width: 768px) {
      .pr_box.beige .type + h3 {
        margin-top: 3rem; } }
    .pr_box.beige .op_box {
      padding: 1rem 0 2.5rem 0;
      background: #fff;
      border-radius: 0 0 0.6rem 0.6rem; }
      @media screen and (max-width: 768px) {
        .pr_box.beige .op_box {
          padding: 0.3rem 0 1.5rem 0; } }
    .pr_box.beige ul.img_list {
      width: 92%;
      margin: 0 auto; }
      @media screen and (max-width: 768px) {
        .pr_box.beige ul.img_list {
          width: 88%; } }
      .pr_box.beige ul.img_list li {
        width: 22.9%;
        margin-right: calc(7.4% / 3);
        text-align: left; }
        @media screen and (max-width: 768px) {
          .pr_box.beige ul.img_list li {
            width: 48%;
            margin-right: 0; } }
      .pr_box.beige ul.img_list p {
        font-size: 90%; }
        @media screen and (max-width: 768px) {
          .pr_box.beige ul.img_list p {
            font-size: 100%; } }
    .pr_box.beige ul.s_list {
      font-size: 55%; }
      @media screen and (max-width: 768px) {
        .pr_box.beige ul.s_list {
          font-size: 80%; } }
      .pr_box.beige ul.s_list li {
        width: 100%;
        margin: 0.5em 0 0 0;
        padding-left: 1em;
        text-indent: -1em; }
