#firstview {
  color: #FFF;
  background: #33516c;
  background: linear-gradient(10deg, #33516c 0%, #3f6587 100%);
  position: relative;
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: -moz-none;
  -ms-user-select: none;
  /* IE 10+ */
  user-select: none; }
  #firstview .fv_base {
    position: relative;
    overflow: hidden;
    z-index: 1;
    display: flex;
    align-items: center; }
  #firstview .layout .l_area {
    display: flex;
    align-items: center; }
  #firstview .txtarea .logo {
    width: 26.3125em;
    line-height: 0; }
  #firstview .txtarea .txt01 {
    margin-top: 1.25em; }
  #firstview .txtarea .functions {
    display: flex;
    flex-wrap: wrap;
    margin-top: 3.125em;
    width: 25.625em;
    max-width: 100%; }
    #firstview .txtarea .functions .btn._type1 {
      line-height: 1;
      color: #2e333d;
      background-color: #FFF;
      font-size: 1em;
      min-width: 12.5em;
      min-height: 2.3125em;
      box-shadow: -0.1875em -0.1875em 0.4375em 0.02em rgba(255, 255, 255, 0.12), 0.25em 0.25em 0.5em 0.01em rgba(42, 42, 42, 0.25); }
      #firstview .txtarea .functions .btn._type1:nth-child(2n+1) {
        margin-right: 0.625em; }
      #firstview .txtarea .functions .btn._type1:nth-child(n+3) {
        margin-top: 0.625em; }
  #firstview .cycle {
    position: relative;
    width: 31.25em;
    height: 31.25em;
    margin: auto; }
    #firstview .cycle ._ring {
      line-height: 0;
      position: relative; }
      #firstview .cycle ._ring::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        box-sizing: border-box;
        border: 1.875em solid #FFF;
        border-radius: 50%;
        box-shadow: -0.1875em -0.1875em 0.4375em 0.02em rgba(255, 255, 255, 0.2), 0.25em 0.25em 0.5em 0.01em rgba(42, 42, 42, 0.25); }
      #firstview .cycle ._ring::after {
        content: "";
        display: block;
        position: absolute;
        top: 1.875em;
        left: 1.875em;
        right: 1.875em;
        bottom: 1.875em;
        box-sizing: border-box;
        border-radius: 50%;
        box-shadow: -0.1875em -0.1875em 0.4375em 0.02em rgba(255, 255, 255, 0.3) inset, 0.25em 0.25em 0.5em 0.01em rgba(42, 42, 42, 0.25) inset; }
      #firstview .cycle ._ring img {
        position: relative;
        z-index: 5;
        -webkit-animation: fv_cycle_rotate 30s linear infinite;
        -moz-animation: fv_cycle_rotate 30s linear infinite;
        animation: fv_cycle_rotate 30s linear infinite; }
    #firstview .cycle ._inner {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) translate3d(0, 0, 0);
      z-index: 10;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding-top: 0.875em; }
      #firstview .cycle ._inner .txt01 {
        font-size: 0.875em;
        letter-spacing: 0.040em;
        margin-bottom: 2.5em; }
      #firstview .cycle ._inner .ruikei {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        line-height: 1.5;
        letter-spacing: 0.040em;
        padding: 0 1.25em;
        min-width: 10.625em;
        min-height: 1.6875em;
        border: 1px solid #FFF;
        border-radius: 0.375em;
        margin-bottom: 1em; }
      #firstview .cycle ._inner .count {
        line-height: 1;
        position: relative;
        border-bottom: 1px solid #FFF;
        padding-bottom: 0.25em; }
        #firstview .cycle ._inner .count::after {
          content: "";
          position: absolute;
          bottom: -3px;
          left: 0;
          width: 100%;
          border-bottom: 2px solid #FFF;
          transform: translateY(100%); }
        #firstview .cycle ._inner .count .num {
          font-size: 4.625em; }
        #firstview .cycle ._inner .count .m2 {
          font-size: 1.5em;
          letter-spacing: 0.040em;
          font-family: Century Gothic, 'Questrial', sans-serif;
          margin-left: 0.25em; }
          #firstview .cycle ._inner .count .m2 sup {
            position: relative;
            top: 0.25em; }
      #firstview .cycle ._inner .voice {
        margin-top: 3.4375em; }
        #firstview .cycle ._inner .voice .btn {
          font-size: 1em;
          min-width: 13.75em;
          min-height: 3.125em;
          box-shadow: -0.1875em -0.1875em 0.4375em 0.02em rgba(255, 255, 255, 0.1), 0.25em 0.25em 0.5em 0.01em rgba(42, 42, 42, 0.25); }
  #firstview .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    pointer-events: none; }
  #firstview .scrollto {
    z-index: 10; }
    #firstview .scrollto a {
      pointer-events: auto;
      position: absolute;
      left: 3.125em;
      transform: translateX(-50%);
      bottom: 0;
      padding: 0.9375em;
      padding-bottom: 0; }
      #firstview .scrollto a .txt {
        -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        -moz-font-feature-settings: 'pkna';
        -webkit-font-feature-settings: 'pkna';
        font-feature-settings: 'pkna';
        white-space: nowrap;
        font-size: 0.625em;
        font-weight: bold;
        line-height: 1;
        letter-spacing: 0.100em;
        margin-bottom: 1em; }
      #firstview .scrollto a .bar {
        display: block;
        width: 1px;
        height: 16.875em;
        background-color: rgba(255, 255, 255, 0.3);
        position: relative; }
        #firstview .scrollto a .bar::before {
          content: "";
          display: block;
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          background-color: #FFF;
          -webkit-animation: fv_scrollto_bar 3s ease infinite;
          -moz-animation: fv_scrollto_bar 3s ease infinite;
          animation: fv_scrollto_bar 3s ease infinite; }
        #firstview .scrollto a .bar::after {
          content: "";
          display: block;
          width: 0.4375em;
          height: 0.4375em;
          border-radius: 50%;
          background-color: #FFF;
          position: absolute;
          top: 0;
          left: 0;
          transform: translate(-50%, -50%);
          z-index: 1;
          -webkit-animation: fv_scrollto_ball 3s ease infinite;
          -moz-animation: fv_scrollto_ball 3s ease infinite;
          animation: fv_scrollto_ball 3s ease infinite; }
  #firstview .hygenic_scroll {
    position: absolute;
    left: 0;
    bottom: -1.5em; }
  @media screen and (max-width: 1079px) {
    #firstview {
      background: #3f6587; }
      #firstview .layout {
        display: block; }
        #firstview .layout > .l_area {
          width: 100%;
          justify-content: center; }
      #firstview .txtarea .txt01 ._ib {
        display: block; }
      #firstview .using {
        height: auto !important;
        padding-top: 3.125em;
        padding-bottom: 40vh; } }
  @media screen and (max-width: 1079px) and (max-width: 739px) {
    #firstview .txtarea .logo {
      width: 23.375em; }
    #firstview .txtarea .txt01 {
      font-size: 1em;
      letter-spacing: -0.03em;
      margin-top: 1.5625em; }
    #firstview .txtarea .functions {
      width: 23.375em; }
      #firstview .txtarea .functions .btn._type1 {
        font-size: 1em;
        min-width: 11.375em;
        min-height: 1.875em;
        border-radius: 0.9375em; }
        #firstview .txtarea .functions .btn._type1:nth-child(2n+1) {
          margin-right: 0.625em; }
        #firstview .txtarea .functions .btn._type1:nth-child(n+3) {
          margin-top: 0.8125em; }
    #firstview .using .cycle {
      font-size: 0.7em; }
    #firstview .scrollto {
      left: auto;
      right: 0; }
      #firstview .scrollto a {
        left: auto;
        right: 1.6875em;
        transform: translateX(50%); }
        #firstview .scrollto a .txt {
          font-size: 0.716875em; }
        #firstview .scrollto a .bar {
          height: 8.75em; }
          #firstview .scrollto a .bar::after {
            width: 0.4375em;
            height: 0.4375em; } }
  @media screen and (max-width: 1079px) {
      #firstview .hygenic_scroll {
        bottom: 0; } }

@keyframes fv_scrollto_bar {
  0% {
    top: 0%;
    bottom: 100%; }
  10% {
    top: 0%;
    bottom: 100%; }
  50% {
    top: 0%;
    bottom: 0%; }
  90% {
    top: 100%;
    bottom: 0%; }
  100% {
    top: 100%;
    bottom: 0%; } }
@keyframes fv_scrollto_ball {
  0% {
    top: 0%;
    opacity: 0; }
  10% {
    top: 0%;
    opacity: 1; }
  50% {
    top: 100%;
    opacity: 1; }
  90% {
    top: 100%;
    opacity: 0; }
  100% {
    top: 100%;
    opacity: 0; } }
@keyframes fv_cycle_rotate {
  0% {
    transform: rotate(0); }
  100% {
    transform: rotate(360deg); } }
#concept {
  padding-top: 23.4375em;
  padding-bottom: 20.3125em;
  background-color: #f2f2f2;
  position: relative; }
  #concept::after {
    content: "";
    display: block;
    background-color: #f8f8f8;
    position: absolute;
    left: 0;
    width: 100%;
    bottom: 0;
    height: 32.1875em; }
  #concept .layout ._left {
    order: 1;
    width: 40em;
    padding-left: 8rem; }
  #concept .layout ._right {
    order: 2;
    flex: 1;
    height: 41.5em;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-image: url("../img/top/top_concept_img01.jpg"); }
  #concept .slider {
    position: relative;
    z-index: 5; }
  #concept .hygenic_scroll {
    margin-top: 6.875em;
    margin-bottom: 3.125em; }
  @media screen and (max-width: 1079px) {
    #concept {
      padding-top: 6.875em;
      padding-bottom: 7.5em; }
      #concept::after {
        display: none; }
      #concept .layout {
        display: block;
        padding: 0 4rem; }
        #concept .layout ._left {
          width: 100%;
          padding-left: 0; }
        #concept .layout ._right {
          height: auto;
          width: 100%;
          margin-bottom: 3.125em;
          position: relative; }
          #concept .layout ._right::before {
            content: "";
            display: block;
            padding-top: 83%; }
      #concept .hygenic_scroll {
        margin-top: 5.3125em;
        margin-bottom: 5.3125em; } }

#spec {
  position: relative;
  text-align: center; }
  #spec .base {
    display: flex;
    align-items: center;
    color: #FFF;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-image: url("../img/top/top_spec_bg.jpg");
    min-height: 100vh; }
  #spec .layout {
    position: relative;
    z-index: 10;
    padding: 8.75em 0;
    text-align: left; }
    #spec .layout > .l_area._left {
      width: 39.0625%;
      min-width: 30em; }
      #spec .layout > .l_area._left .txt01 {
        margin-bottom: 2.1875em; }
        #spec .layout > .l_area._left .txt01 .logo {
          display: block;
          width: 10em;
          margin-bottom: 0.3125em; }
        #spec .layout > .l_area._left .txt01 .jp {
          font-size: 1.625em; }
      #spec .layout > .l_area._left .button .btn {
        font-size: 0.875em;
        padding-left: 2.1428571429em; }
    #spec .layout > .l_area._right {
      width: 57.03125%; }
      #spec .layout > .l_area._right .button {
        display: none; }
    #spec .layout .conditions > li {
      margin-bottom: 3.4375em; }
      #spec .layout .conditions > li > .ttl {
        font-size: 1.375em;
        line-height: 1.3120833333;
        margin-bottom: 1em; }
      #spec .layout .conditions > li > .descript {
        font-size: 0.875em;
        line-height: 1.7142857143; }
    #spec .layout .points {
      margin-right: -2em; }
      #spec .layout .points .p_item:not(:last-child) {
        margin-bottom: 2.125em; }
      #spec .layout .points .p_item a {
        display: block;
        position: relative;
        padding-left: 4.375em; }
      #spec .layout .points .p_item .num {
        font-size: 1.25em;
        line-height: 1;
        position: absolute;
        left: 0;
        top: 0;
        display: flex;
        align-items: center; }
      #spec .layout .points .p_item .ttl {
        font-size: 1.625em;
        line-height: 1;
        position: relative;
        margin-bottom: 0.3846153846em; }
        #spec .layout .points .p_item .ttl img {
          position: absolute;
          bottom: 0;
          margin-left: 0.8461538462em; }
          #spec .layout .points .p_item .ttl img._siaa_virus {
            width: 2.8076923077em; }
          #spec .layout .points .p_item .ttl img._siaa {
            width: 2.7692307692em;
            margin-bottom: -0.3846153846em; }
  @media screen and (max-width: 1180px) {
    #spec .layout {
      display: inline-block; }
      #spec .layout > .l_area._left {
        width: 100%;
        min-width: 0; }
        #spec .layout > .l_area._left .txt01 {
          margin-bottom: 3.75em; }
        #spec .layout > .l_area._left .button {
          display: none; }
      #spec .layout > .l_area._right {
        width: 100%;
        margin-top: 5.625em; }
        #spec .layout > .l_area._right .button {
          display: block;
          margin-top: 4.6875em; }
      #spec .layout .points {
        margin-right: 0; } }
  @media screen and (max-width: 739px) {
    #spec .base {
      background-image: url("../img/top/top_spec_bg_sp.jpg"); }
    #spec .layout {
      display: block;
      padding: 6.5625em 0; }
      #spec .layout > .l_area._right .button .btn {
        font-size: 0.875em; }
      #spec .layout .conditions > li {
        margin-bottom: 3.125em; }
        #spec .layout .conditions > li > .ttl {
          font-size: 1.5em; }
        #spec .layout .conditions > li > .descript {
          font-size: 0.9375em;
          line-height: 1.6666666667; }
      #spec .layout .points .p_item:not(:last-child) {
        margin-bottom: 3.28125em; }
      #spec .layout .points .p_item a {
        padding-left: 3.125em; }
      #spec .layout .points .p_item .num {
        font-size: 1.125em; }
      #spec .layout .points .p_item .ttl {
        font-size: 1.5625em;
        letter-spacing: 0em;
        margin-bottom: 0.8em; }
        #spec .layout .points .p_item .ttl img._siaa_virus {
          width: 2.78em; }
        #spec .layout .points .p_item .ttl img._siaa {
          width: 2.76em;
          margin-bottom: 0; }
      #spec .layout .points .p_item .descript {
        font-size: 0.875em;
        line-height: 1.5046428571; } }

#necessity_sec {
  position: relative;
  background-attachment: fixed;
  background-image: url("../img/top/top_necessity_komorebi.jpg");
  background-position: top right;
  background-repeat: no-repeat;
  background-size: 71.25em auto;
  padding-top: 8.75em; }
  #necessity_sec .kokage {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 90em;
    max-width: 100%; }
    #necessity_sec .kokage .k_inner {
      width: 100%;
      padding-top: 64.0972222222%;
      background-image: url("../img/top/top_necessity_komorebi.jpg");
      background-position: top right;
      background-repeat: no-repeat;
      background-size: contain; }
  #necessity_sec .layout {
    position: relative;
    z-index: 5; }
    #necessity_sec .layout ._left {
      width: 48%; }
  #necessity_sec .nec01 .l_inner,
  #necessity_sec .nec02 .l_inner {
    padding-top: 9.375em; }
  #necessity_sec .nec01 ._right,
  #necessity_sec .nec02 ._right {
    padding-left: 2rem; }
    #necessity_sec .nec01 ._right .memo,
    #necessity_sec .nec02 ._right .memo {
      font-size: 0.75em;
      color: #a9a9a9;
      margin-bottom: 2.5em; }
    #necessity_sec .nec01 ._right .question:not(:last-child),
    #necessity_sec .nec02 ._right .question:not(:last-child) {
      margin-bottom: 5em; }
    #necessity_sec .nec01 ._right .question .q_ttl,
    #necessity_sec .nec02 ._right .question .q_ttl {
      font-size: 1.125em;
      font-weight: bold;
      margin-bottom: 1em; }
    #necessity_sec .nec01 ._right .question .q_detail .graphlist,
    #necessity_sec .nec02 ._right .question .q_detail .graphlist {
      margin-top: 1.875em; }
    #necessity_sec .nec01 ._right .question .q_result,
    #necessity_sec .nec02 ._right .question .q_result {
      display: flex;
      align-items: center;
      height: 6.25em;
      border-radius: 3.125em;
      padding: 0.9375em;
      font-weight: bold;
      margin-top: 3.125em; }
      #necessity_sec .nec01 ._right .question .q_result .qr_ttl,
      #necessity_sec .nec02 ._right .question .q_result .qr_ttl {
        width: 4.375em;
        height: 4.375em;
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 1.125em;
        letter-spacing: 0.040em;
        border-radius: 50%;
        margin-right: 1.125em;
        background-color: #ebebeb; }
      #necessity_sec .nec01 ._right .question .q_result .qr_txt,
      #necessity_sec .nec02 ._right .question .q_result .qr_txt {
        flex: 1;
        line-height: 1.625em;
        color: #ff4d4d; }
  #necessity_sec .nec01 {
    padding-bottom: 5.625em; }
    #necessity_sec .nec01 .q02 .graphlist .graph._do_anim > ul {
      width: 166.6666666667%; }
  #necessity_sec .nec02 {
    padding-bottom: 19.375em; }
    #necessity_sec .nec02 .q01 .txt01 {
      font-size: 0.875em;
      line-height: 1.7142857143em;
      margin-bottom: 3em; }
    #necessity_sec .nec02 .q01 .photo01 {
      display: flex;
      justify-content: space-between;
      text-align: center; }
      #necessity_sec .nec02 .q01 .photo01 .p_ttl {
        font-size: 0.875em;
        font-weight: bold;
        line-height: 1;
        margin-bottom: 1em; }
      #necessity_sec .nec02 .q01 .photo01 .p01 {
        width: 58.1967213115%; }
      #necessity_sec .nec02 .q01 .photo01 .p02 {
        width: 39.0163934426%; }
    #necessity_sec .nec02 .q02 .txt01 {
      font-size: 0.875em;
      line-height: 1.7142857143em;
      margin-bottom: 3em; }
    #necessity_sec .nec02 .q02 .photo01 {
      display: flex;
      justify-content: space-between;
      text-align: center; }
      #necessity_sec .nec02 .q02 .photo01 .p_ttl {
        font-size: 0.875em;
        font-weight: bold;
        line-height: 1;
        margin-bottom: 1em; }
      #necessity_sec .nec02 .q02 .photo01 .p01,
      #necessity_sec .nec02 .q02 .photo01 .p02 {
        width: 47.5409836066%; }
        #necessity_sec .nec02 .q02 .photo01 .p01 img,
        #necessity_sec .nec02 .q02 .photo01 .p02 img {
          display: block; }
        #necessity_sec .nec02 .q02 .photo01 .p01 .caption,
        #necessity_sec .nec02 .q02 .photo01 .p02 .caption {
          font-size: 0.625em;
          line-height: 1;
          font-weight: bold;
          margin-top: 1em; }
      #necessity_sec .nec02 .q02 .photo01 .p_arrow {
        width: 4.9180327869%;
        display: flex;
        justify-content: center;
        align-items: center; }
        #necessity_sec .nec02 .q02 .photo01 .p_arrow img {
          width: 0.6875em; }
      #necessity_sec .nec02 .q02 .photo01 .p01 .cols .cols_inner {
        margin-right: -1rem; }
        #necessity_sec .nec02 .q02 .photo01 .p01 .cols .cols_inner .col {
          padding-right: 1rem; }
          #necessity_sec .nec02 .q02 .photo01 .p01 .cols .cols_inner .col:nth-child(n+3) {
            margin-top: 0.9375em; }
      #necessity_sec .nec02 .q02 .photo01 .p02 .cols .cols_inner {
        margin-right: -1rem; }
        #necessity_sec .nec02 .q02 .photo01 .p02 .cols .cols_inner .col {
          padding-right: 1rem; }
          #necessity_sec .nec02 .q02 .photo01 .p02 .cols .cols_inner .col:nth-child(n+3) {
            margin-top: 1.5em; }
    #necessity_sec .nec02 .q03 .photo01 {
      display: flex;
      justify-content: space-between;
      text-align: center; }
      #necessity_sec .nec02 .q03 .photo01 .p_ttl {
        font-size: 0.875em;
        font-weight: bold;
        line-height: 1;
        margin-bottom: 1em; }
      #necessity_sec .nec02 .q03 .photo01 .p01,
      #necessity_sec .nec02 .q03 .photo01 .p02 {
        width: 46.7213114754%; }
        #necessity_sec .nec02 .q03 .photo01 .p01 .youtube,
        #necessity_sec .nec02 .q03 .photo01 .p02 .youtube {
          position: relative;
          cursor: pointer; }
          #necessity_sec .nec02 .q03 .photo01 .p01 .youtube img,
          #necessity_sec .nec02 .q03 .photo01 .p02 .youtube img {
            display: block;
            -webkit-transition: opacity 0.3s;
            -moz-transition: opacity 0.3s;
            transition: opacity 0.3s; }
          #necessity_sec .nec02 .q03 .photo01 .p01 .youtube::before,
          #necessity_sec .nec02 .q03 .photo01 .p02 .youtube::before {
            content: "";
            display: block;
            width: 3.8125em;
            height: 2.6875em;
            z-index: 5;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) translate3d(0, 0, 0);
            background-position: center;
            background-repeat: no-repeat;
            background-size: cover;
            background-image: url("../img/common/icon_youtube_play.png"); }
          #necessity_sec .nec02 .q03 .photo01 .p01 .youtube:active img, #necessity_sec .nec02 .q03 .photo01 .p01 .youtube:hover img,
          #necessity_sec .nec02 .q03 .photo01 .p02 .youtube:active img,
          #necessity_sec .nec02 .q03 .photo01 .p02 .youtube:hover img {
            opacity: 0.5; }
  @media screen and (max-width: 1079px) {
    #necessity_sec {
      padding-top: 0; }
      #necessity_sec .layout {
        display: block; }
        #necessity_sec .layout .l_area {
          width: 100%; }
      #necessity_sec .nec01 .l_inner,
      #necessity_sec .nec02 .l_inner {
        padding-top: 0; }
      #necessity_sec .nec01 ._right,
      #necessity_sec .nec02 ._right {
        padding-left: 0;
        margin-top: 6.5625em; }
      #necessity_sec .nec01 {
        padding-top: 6.25em;
        padding-bottom: 6.25em; }
      #necessity_sec .nec02 {
        padding-bottom: 9.375em; } }
  @media screen and (max-width: 739px) {
    #necessity_sec {
      background-color: #f8f8f8; }
      #necessity_sec .kokage {
        width: 100%; }
        #necessity_sec .kokage .k_inner {
          padding-top: 137.6811594203%;
          background-image: url("../img/top/top_necessity_komorebi_sp.jpg"); }
      #necessity_sec .nec01 .l_inner,
      #necessity_sec .nec02 .l_inner {
        padding-top: 0; }
      #necessity_sec .nec01 ._right,
      #necessity_sec .nec02 ._right {
        padding-left: 0;
        margin-top: 6.5625em; }
        #necessity_sec .nec01 ._right .memo,
        #necessity_sec .nec02 ._right .memo {
          font-size: 0.8125em;
          margin-bottom: 2.5em; }
        #necessity_sec .nec01 ._right .question:not(:last-child),
        #necessity_sec .nec02 ._right .question:not(:last-child) {
          margin-bottom: 4.6875em; }
        #necessity_sec .nec01 ._right .question .q_ttl,
        #necessity_sec .nec02 ._right .question .q_ttl {
          font-size: 1.1875em;
          font-weight: bold;
          margin-bottom: 1em;
          letter-spacing: -0.02em; }
        #necessity_sec .nec01 ._right .question .q_detail .graphlist,
        #necessity_sec .nec02 ._right .question .q_detail .graphlist {
          margin-top: 1.5625em; }
        #necessity_sec .nec01 ._right .question .q_result,
        #necessity_sec .nec02 ._right .question .q_result {
          display: block;
          height: auto;
          border-radius: 4.6875em;
          padding: 1.5625em 2.5em;
          font-weight: bold;
          margin-top: 2.5em; }
          #necessity_sec .nec01 ._right .question .q_result .qr_ttl,
          #necessity_sec .nec02 ._right .question .q_result .qr_ttl {
            width: 100%;
            font-size: 0.9375em;
            height: 2.6666666667em;
            border-radius: 1.3333333333em;
            margin-right: 0;
            margin-bottom: 1em; }
          #necessity_sec .nec01 ._right .question .q_result .qr_txt,
          #necessity_sec .nec02 ._right .question .q_result .qr_txt {
            flex: 1;
            line-height: 1.4609375em; }
      #necessity_sec .nec01 {
        padding-bottom: 6.25em; }
        #necessity_sec .nec01 .q02 .graphlist .graph._do_anim > ul {
          width: 166.6666666667%; }
      #necessity_sec .nec02 {
        padding-bottom: 9.375em; }
        #necessity_sec .nec02 .q01 .txt01 {
          font-size: 1em;
          line-height: 1.84375em; }
        #necessity_sec .nec02 .q01 .photo01 {
          display: block; }
          #necessity_sec .nec02 .q01 .photo01 .p_ttl {
            font-size: 0.90625em; }
          #necessity_sec .nec02 .q01 .photo01 .p01 {
            width: 100%;
            margin-bottom: 1.09375em; }
          #necessity_sec .nec02 .q01 .photo01 .p02 {
            width: 15.9375em;
            margin: 0 auto; }
        #necessity_sec .nec02 .q02 .txt01 {
          font-size: 1em;
          line-height: 1.84375em; }
        #necessity_sec .nec02 .q02 .photo01 {
          display: block; }
          #necessity_sec .nec02 .q02 .photo01 .p_ttl {
            font-size: 0.90625em; }
          #necessity_sec .nec02 .q02 .photo01 .p01,
          #necessity_sec .nec02 .q02 .photo01 .p02 {
            width: 100%; }
            #necessity_sec .nec02 .q02 .photo01 .p01 .caption,
            #necessity_sec .nec02 .q02 .photo01 .p02 .caption {
              font-size: 0.8125em; }
          #necessity_sec .nec02 .q02 .photo01 .p_arrow {
            width: 100%;
            text-align: center;
            margin: 1.25em 0; }
            #necessity_sec .nec02 .q02 .photo01 .p_arrow img {
              width: 1.25em;
              transform: rotate(90deg); }
          #necessity_sec .nec02 .q02 .photo01 .p01 .cols .cols_inner {
            margin-right: -2rem; }
            #necessity_sec .nec02 .q02 .photo01 .p01 .cols .cols_inner .col {
              padding-right: 2rem; }
              #necessity_sec .nec02 .q02 .photo01 .p01 .cols .cols_inner .col:nth-child(n+3) {
                margin-top: 0.9375em; }
          #necessity_sec .nec02 .q02 .photo01 .p02 .cols .cols_inner {
            margin-right: -2rem; }
            #necessity_sec .nec02 .q02 .photo01 .p02 .cols .cols_inner .col {
              padding-right: 2rem; }
              #necessity_sec .nec02 .q02 .photo01 .p02 .cols .cols_inner .col:nth-child(n+3) {
                margin-top: 0.9375em; }
        #necessity_sec .nec02 .q03 .photo01 {
          display: block; }
          #necessity_sec .nec02 .q03 .photo01 .p_ttl {
            font-size: 0.90625em; }
          #necessity_sec .nec02 .q03 .photo01 .p01,
          #necessity_sec .nec02 .q03 .photo01 .p02 {
            width: 100%; }
            #necessity_sec .nec02 .q03 .photo01 .p01:not(:last-child),
            #necessity_sec .nec02 .q03 .photo01 .p02:not(:last-child) {
              margin-bottom: 2.5em; }
            #necessity_sec .nec02 .q03 .photo01 .p01 .youtube::before,
            #necessity_sec .nec02 .q03 .photo01 .p02 .youtube::before {
              width: 4.46875em;
              height: 3.125em; } }

#provoice {
  position: relative;
  padding-bottom: 17.5em;
  margin-top: -6.875em; }
  #provoice::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 6.875em;
    bottom: 0;
    width: 100%;
    background-color: #f2f2f2; }
  #provoice .hr {
    border-bottom: 1px solid #f2f2f2;
    margin: 7.5em 1.875em; }
  #provoice ._box {
    background-color: #FFF;
    position: relative;
    z-index: 1;
    padding: 6.875em 1.875em; }
  #provoice .layout .l_area .l_inner {
    padding: 0 2.5em; }
  #provoice h3._type1 {
    margin-bottom: 4.1875em; }
    #provoice h3._type1 .pop {
      margin-bottom: 4.2857142857em; }
    #provoice h3._type1 .jp {
      font-size: 1.75em;
      line-height: 1.5; }
  #provoice .keyword {
    margin-bottom: 1.5625em; }
    #provoice .keyword span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      line-height: 1;
      font-weight: bold;
      height: 2.5em;
      border-radius: 1.25em;
      padding: 0.4375em 1.25em;
      background-color: #dfdfdf; }
  #provoice .txt {
    font-size: 0.875em;
    line-height: 1.8571428571; }
  #provoice .photo img {
    display: block; }
  #provoice .photo .caption {
    font-size: 0.75em;
    line-height: 1.5em;
    margin-top: 0.75em; }
  #provoice .profile {
    display: flex;
    margin-bottom: 2.5em; }
    #provoice .profile .p_photo {
      width: 6.25em;
      line-height: 0;
      margin-right: 1.25em; }
    #provoice .profile .p_txt {
      flex: 1; }
      #provoice .profile .p_txt .name {
        font-weight: bold;
        line-height: 1.55;
        margin-bottom: 1em; }
      #provoice .profile .p_txt .descript {
        font-size: 0.75em;
        line-height: 1.5em; }
  #provoice .cols {
    overflow: visible; }
    #provoice .cols .cols_inner {
      margin-right: -2rem; }
      #provoice .cols .cols_inner .col {
        padding-right: 2rem; }
  #provoice .pro01.head ._right {
    padding-top: 6.25em; }
  #provoice .pro02.detail .photos {
    display: flex;
    justify-content: space-between; }
  #provoice .pro02.detail .t01,
  #provoice .pro02.detail .t02 {
    margin-bottom: 1.875em; }
  #provoice .pro02.detail .p01,
  #provoice .pro02.detail .p02 {
    width: 47.1698113208%; }
  #provoice .pro02.detail .p03 {
    width: 58.4905660377%; }
  #provoice .pro02.detail .p04 {
    width: 37.7358490566%; }
  @media print, screen and (min-width: 740px) {
    #provoice .profile .p_txt .descript {
      display: block !important; }
    #provoice .pro01.head ._right {
      padding-top: 0; } }
  @media screen and (max-width: 1359px) {
    #provoice .layout {
      display: block; }
      #provoice .layout .l_area {
        width: 100%; }
        #provoice .layout .l_area .l_inner {
          padding: 0; }
    #provoice ._box {
      padding: 6.875em 4.375em; }
    #provoice .detail ._right {
      margin-top: 3.125em; }
    #provoice .keyword span {
      width: 100%; }
    #provoice .pro01.head ._right {
      padding-top: 0; } }
  @media screen and (max-width: 739px) {
    #provoice {
      background-color: #f8f8f8;
      padding-bottom: 7.1875em; }
      #provoice::before {
        display: none; }
      #provoice .hr {
        margin: 3.75em 0; }
      #provoice ._box {
        padding: 3.4375em 1.25em; }
      #provoice h3._type1 {
        margin-bottom: 3.125em; }
        #provoice h3._type1 .pop {
          margin-bottom: 5rem; }
        #provoice h3._type1 .jp {
          font-size: 1.875em;
          line-height: 1.3896666667; }
      #provoice .keyword {
        margin-bottom: 1.5em; }
        #provoice .keyword span {
          width: 100%;
          justify-content: center;
          font-size: 1.046875em;
          line-height: 1.55;
          font-weight: bold;
          height: 18rem;
          border-radius: 9rem;
          padding: 1rem 4rem; }
      #provoice .txt {
        font-size: 1em;
        line-height: 1.84375; }
      #provoice .photo .caption {
        font-size: 0.8125em; }
      #provoice .profile {
        margin-bottom: 3.125em; }
        #provoice .profile .p_photo {
          width: 4.375em;
          margin-right: 1em; }
        #provoice .profile .p_txt .name {
          font-size: 0.9375em;
          height: 16.5rem;
          display: flex;
          align-items: center;
          margin-bottom: 0; }
          #provoice .profile .p_txt .name .toggle {
            margin-left: auto;
            display: inline-block;
            width: 2.1333333333em;
            height: 2.1333333333em;
            border: 1px solid rgba(42, 42, 42, 0.2);
            border-radius: 50%;
            position: relative;
            -webkit-transition: -webkit-transform 0.5s;
            -moz-transition: -moz-transform 0.5s;
            transition: transform 0.5s; }
            #provoice .profile .p_txt .name .toggle::before, #provoice .profile .p_txt .name .toggle::after {
              content: "";
              display: block;
              width: 0.9333333333em;
              height: 2px;
              position: absolute;
              position: absolute;
              top: 50%;
              left: 50%;
              transform: translate(-50%, -50%) translate3d(0, 0, 0);
              background-color: #2a2a2a; }
            #provoice .profile .p_txt .name .toggle::after {
              transform: translate(-50%, -50%) rotate(90deg); }
        #provoice .profile .p_txt .descript {
          display: none;
          font-size: 0.875em;
          line-height: 1.84375em;
          margin-top: 2em;
          margin-left: -6.1428571429em; }
        #provoice .profile._open .p_txt .name .toggle {
          transform: rotate(45deg); }
      #provoice .cols {
        overflow: visible; }
        #provoice .cols .cols_inner {
          margin-right: 0; }
          #provoice .cols .cols_inner .col {
            padding-right: 0; }
            #provoice .cols .cols_inner .col:not(:last-child) {
              margin-bottom: 2.5em; }
      #provoice .pro02.detail .photos {
        flex-wrap: wrap; }
      #provoice .pro02.detail .t01,
      #provoice .pro02.detail .t02 {
        margin-bottom: 1.875em; }
      #provoice .pro02.detail .p01,
      #provoice .pro02.detail .p02 {
        width: 48.502994012%; }
      #provoice .pro02.detail .p03 {
        width: 100%;
        margin-bottom: 2.1875em; }
      #provoice .pro02.detail .p04 {
        width: 100%; } }

#ownersvoice {
  position: relative; }
  #ownersvoice .base {
    color: #FFF;
    display: flex;
    align-items: center;
    text-align: center;
    overflow: hidden; }
    #ownersvoice .base .bg {
      content: "";
      display: block;
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      background-image: url("../img/top/top_voice_bg.jpg");
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
    #ownersvoice .base .w1100 {
      position: relative;
      z-index: 5;
      padding: 3.125em 0; }
    #ownersvoice .base .txt01 {
      margin-bottom: 1.875em; }
      #ownersvoice .base .txt01 span {
        display: inline-block;
        font-size: 0.875em;
        line-height: 1;
        border-bottom: 1px solid #FFF;
        padding-bottom: 0.7142857143em; }
    #ownersvoice .base .cases {
      padding: 0 2.5em;
      margin-bottom: 3.125em; }
      #ownersvoice .base .cases .cols_inner {
        margin-right: -2rem; }
        #ownersvoice .base .cases .cols_inner .col {
          padding-right: 2rem;
          line-height: 0; }
          #ownersvoice .base .cases .cols_inner .col a {
            display: block;
            position: relative;
            overflow: hidden;
            z-index: 1; }
            #ownersvoice .base .cases .cols_inner .col a img {
              -webkit-transition: -webkit-transform 0.5s;
              -moz-transition: -moz-transform 0.5s;
              transition: transform 0.5s; }
            #ownersvoice .base .cases .cols_inner .col a:focus img, #ownersvoice .base .cases .cols_inner .col a:active img, #ownersvoice .base .cases .cols_inner .col a:hover img {
              transform: scale(1.08); }
          #ownersvoice .base .cases .cols_inner .col .caption {
            position: absolute;
            z-index: 1;
            right: 1rem;
            bottom: 1rem;
            border: 1px solid #FFF;
            color: #FFF;
            font-size: 0.75em;
            line-height: 1;
            padding: 0.25em 0.6666666667em; }
    #ownersvoice .base .more .btn {
      font-size: 0.875em; }
  @media screen and (max-height: 1060px) and (orientation: landscape) {
    #ownersvoice {
      height: auto; }
      #ownersvoice .base {
        height: auto !important;
        padding: 9.375em 0; } }
  @media screen and (max-width: 739px) {
    #ownersvoice .base {
      height: auto !important;
      padding: 0; }
      #ownersvoice .base .w1100 {
        padding: 4.375em 1.25em; }
      #ownersvoice .base .h {
        margin-bottom: 2em; }
        #ownersvoice .base .h .en {
          margin-bottom: 2em; }
        #ownersvoice .base .h .jp {
          font-size: 1.59375em; }
      #ownersvoice .base .txt01 {
        margin-bottom: 1.875em; }
        #ownersvoice .base .txt01 span {
          font-size: 0.875em; }
      #ownersvoice .base .cases {
        margin-bottom: 3.4375em; }
        #ownersvoice .base .cases .cols_inner .col:nth-child(n+3) {
          margin-top: 2rem; }
        #ownersvoice .base .cases .cols_inner .col .caption {
          right: 2rem;
          bottom: 2rem;
          font-size: 0.75em; }
      #ownersvoice .base .more .btn {
        font-size: 0.875em; } }

#products {
  padding-top: 15.3125em; }
  #products ._left {
    padding-right: 3rem; }
    #products ._left .txt01 {
      margin-bottom: 2.5em; }
    #products ._left .list {
      padding: 1.25em 1.875em; }
      #products ._left .list .cols_inner {
        margin-right: 2rem; }
        #products ._left .list .cols_inner .col {
          padding-right: 2rem;
          color: #3f6587;
          font-weight: bold; }
  #products ._right .l_inner {
    height: 100%;
    display: flex;
    align-items: flex-end;
    line-height: 0; }
    #products ._right .l_inner .img01 {
      width: 34.125em;
      margin-left: auto; }
  #products .more {
    margin-top: 5.625em;
    background-color: #f2f2f2; }
    #products .more .wrapper {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 20em; }
  @media print, screen and (min-width: 1080px) {
    #products .img02 {
      display: none; } }
  @media screen and (max-width: 1079px) {
    #products .layout {
      display: block; }
      #products .layout > .l_area {
        width: 100%; }
    #products .img01 {
      display: none; }
    #products ._left {
      padding-right: 0; }
      #products ._left .img02 {
        display: block;
        margin-top: 4.0625em;
        margin-bottom: 2.5em; } }
  @media screen and (max-width: 739px) {
    #products {
      padding-top: 6.25em; }
      #products ._left .txt01 {
        margin-bottom: 2.8125em; }
      #products ._left .list {
        padding: 1.875em; }
        #products ._left .list .cols_inner {
          margin-right: 2rem; }
          #products ._left .list .cols_inner .col {
            padding-right: 2rem;
            color: #3f6587;
            font-weight: bold; }
      #products .more {
        margin-top: 3.4375em; }
        #products .more .wrapper {
          height: 14.0625em; } }

#faq {
  padding-top: 15.375em; }
  #faq .layout ._left {
    width: 31.25em; }
  #faq .txt01 {
    margin-bottom: 2.5em; }
  #faq .profile {
    display: flex; }
    #faq .profile .p_photo {
      width: 6.25em;
      line-height: 0;
      margin-right: 1.25em; }
    #faq .profile .p_txt {
      flex: 1;
      margin-top: auto;
      font-size: 0.75em;
      line-height: 1.5;
      letter-spacing: 0.060em; }
  #faq .faqlist {
    margin-top: 4.375em;
    padding-bottom: 0; }
    #faq .faqlist .morelink {
      text-align: right;
      padding: 2em 0; }
      #faq .faqlist .morelink a {
        display: inline-block;
        border-bottom: 1px solid #000;
        line-height: 1.75; }
        #faq .faqlist .morelink a .arrow {
          margin-left: 2em; }
  #faq .more {
    margin-top: 11.25em;
    background-color: #f2f2f2; }
    #faq .more .wrapper {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 20em; }
  @media screen and (max-width: 1079px) {
    #faq .layout {
      display: block; }
      #faq .layout > .l_area,
      #faq .layout ._left {
        width: 100%; } }
  @media screen and (max-width: 739px) {
    #faq {
      padding-top: 6.25em; }
      #faq .txt01 {
        margin-bottom: 2.1875em; }
      #faq .profile .p_photo {
        width: 4.375em;
        margin-right: 0.9375em; }
      #faq .profile .p_txt {
        font-size: 0.8125em;
        line-height: 1.6757692308;
        letter-spacing: 0; }
      #faq .faqlist {
        margin-top: 4.375em; }
      #faq .more {
        margin-top: 5.625em; }
        #faq .more .wrapper {
          height: 14.0625em; } }
