﻿/*----------------------------------------------------------------------------------------------------

  Main visual
  
----------------------------------------------------------------------------------------------------*/
.mainVisual {
  opacity: 0;
  position: relative;
}
.mv {
  width: 100%;
  height: 100vh;
  min-height: 640px;
}
.mv .slick-list,
.mv .slick-track {
  width: 100%;
  height: 100%;
}
.mv__txts {
  padding-bottom: var(--mv-bottom);
}
.mv__txts .inner {
  height: 100%;
  background-color: rgba(var(--color-blue),1);
  color: #FFF;
  position: relative;
  text-align: left;
  overflow: hidden;
}
.mv__txts__item {
  position: relative;
}
.mv__txts__item .txt {
  position: relative;
  z-index: 10;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.mv__txts__item h2 { font-size: var(--fs-max); font-weight: 700; line-height: var(--line-height-m); }
.mv__txts__item p { font-size: var(--fs-m); padding-top: var(--block-space-s); line-height: 2; }
.mv__txts__item .blur {
  width: 120%;
  height: 120%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 1;
}
.mv__txts__item .blur:after {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(var(--color-blue),0.6);
  position: absolute;
  left: 0;
  top: 0;
}
.mv__txts__item .blur .inner {
  min-width: 2000px;
  min-height: 1124px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  overflow: hidden;
}
.mv__txts__item .blur svg {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.mv__photos ul {
  list-style: none;
  height: 100%;
}
.mv__photos img {
  pointer-events: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  font-family: "object-fit:cover;";
}
@media print, screen and (min-width:641px) {
  :root {
    --mv-bottom: 80px;
  }
  .mv {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    max-height: 1124px;
  }
  .mv__txts {
    width: 100%;
  }
  .mv__txts__item .txt {
    padding-left: 42%;
    padding-top: 5%;
  }
  .mv__photos {
    width: 50vw;
    height: 100%;
    position: absolute;
    left: calc(32% - 50vw);
    top: 0;
    z-index: 1;
  }
  .mv__photos li img,
  .mv__txts__item .blur .inner {
    margin-left: 18%;
  }
}
@media print, screen and (min-width:641px) and (max-width:1000px) {
  .mv__photos {
    width: 50%;
    left: -18%;
  }
}
@media screen and (max-width:640px) {
  :root {
    --mv-bottom: 60px;
  }
  .mv {
    max-height: 720px;
  }
  .mv__txts {
    width: 100%;
    height: 100%;
  }
  .mv__txts__item .txt {
    padding-left: calc(var(--side-space) * 1.5);
    padding-right: calc(var(--side-space) * 3);
    padding-bottom: 18%;
    font-size: 108%;
  }
  .mv__txts__item h2 {
    font-size: var(--fs-5l);
  }
  .mv__txts__item p {
    font-size: 100%;
  }
  .mv__photos {
    width: 84%;
    height: 35%;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 4;
  }
}
@media screen and (max-width:480px) {
  .mv {
    min-height: 560px;
  }
  .mv__txts__item .txt {
    padding-bottom: 14%;
  }
}
@media screen and (max-width:420px) {
  .mv {
    min-height: 480px;
  }
  .mv__txts__item .txt {
    font-size: 3.6vw;
    padding-bottom: 10%;
  }
}
@media screen and (max-width:320px) {
  .mv__txts__item .txt {
    font-size: 82%;
  }
}

/*--------------------------------------------------------------------------------
  txt animation
--------------------------------------------------------------------------------*/
.mv__txts__item .passing {
  position: relative;
  display: inline-block;
  line-height: var(--line-height-s);
}
.mv__txts__item .passing:before {
  content: "";
  width: 0;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  transform-origin: right top;
  transform: scale(1,1);
  background-color: #FFF;
}
.mv__txts__item .passing__txt {
  opacity: 0;
  display: inline-block;
}
.mv__txts__item.is-out .passing__txt {
  opacity: 1;
}
.mv__txts__item.slick-active .passing:before {
  animation: passingIn 1.2s var(--cubic-bezier) forwards;
}
.mv__txts__item.slick-active .passing__txt {
  animation: passingTxt 1.2s var(--cubic-bezier) forwards;
}
.mv__txts__item.slick-active .passing:before,
.mv__txts__item.slick-active .passing__txt {
  animation-delay: 0.5s;
}
@keyframes passingIn {
  0% { width: 0; transform: scale(1,1); }
  45% { width: 100%; transform: scale(1,1); }
  46% { width: 100%; transform: scale(1,1); }
  99% { width: 100%; transform: scale(0,1); }
  100% { width: 100%; transform: scale(0,1); }
}
@keyframes passingTxt {
  0% { opacity: 0; }
  44% { opacity: 0; }
  45% { opacity: 1; }
  100% { opacity: 1; }
}

.mv__txts__item .slideup {
  overflow: hidden;
  opacity: 0;
}
.mv__txts__item.slick-active .slideup {
  opacity: 1;
  transition-delay: 1s;
}
.mv__txts__item.is-out .slideup {
  opacity: 1;
}
.mv__txts__item .slideup__txt {
  display: inline-block;
  opacity: 0;
  transform: translateY(25%);
}
.mv__txts__item.slick-active .slideup__txt {
  animation: slideupTxt 0.8s var(--cubic-bezier) forwards;
  animation-delay: 1s;
}
@keyframes slideupTxt {
  0% { opacity: 0; transform: translateY(25%); }
  100% { opacity: 1; transform: translateY(0); }
}

/*--------------------------------------------------------------------------------
  particles
--------------------------------------------------------------------------------*/
.mainVisual #particles {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}

/*--------------------------------------------------------------------------------
  dots
--------------------------------------------------------------------------------*/
.mv-dots {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 9;
}
.mv-dots .slick-dots {
  counter-reset: mv-counter;
}
.mv-dots .slick-dots li:before {
  content: counter(mv-counter);
  counter-increment: mv-counter;
  display: inline-block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  color: rgba(255,255,255,0.6);
  font-size: var(--fs-2s);
}
.mv-dots .slick-dots li.slick-active:before {
  color: rgba(255,255,255,1);
}
.mv-dots .slick-dots li button:before,
.mv-dots .slick-dots li.slick-active button:before {
  border-color: rgba(255,255,255,0.3);
}
.mv-dots .slick-dots li.slick-active button:before {
  background-color: transparent;
}
.mv-dots .slick-dots li svg {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  transform: rotate(-90deg);
  opacity: 0;
}
.mv-dots .slick-dots li.slick-active svg {
  opacity: 1;
}
.mv-dots .slick-dots li circle {
  fill: transparent;
}
.mv-dots .slick-dots li.slick-active circle {
  fill: transparent;
  stroke: #FFF;
  stroke-width: 1;
  animation: mv-dots-circle 20s forwards;
}
@keyframes mv-dots-circle {
  0% { stroke-dasharray: 0 377; }
  99.9%,to { stroke-dasharray: 377 377; }
}
@media print, screen and (min-width:641px) {
  .mv-dots {
    padding-right: 40px;
    padding-bottom: 40px;
  }
  .mv-dots .slick-dots li {
    margin: 0 0 0 1.5rem;
    width: 3.5rem;
    height: 3.5rem;
  }
}
@media screen and (max-width:640px) {
  .mv-dots {
    width: 16%;
    text-align: center;
    padding-bottom: 3rem;
  }
  .mv-dots .slick-dots li {
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    margin-top: 1.5rem;
    width: 3rem;
    height: 3rem;
  }
}
@media screen and (max-width:480px) {
  .mv-dots .slick-dots li {
    width: 5.5vw;
    height: 5.5vw;
  }
}
@media screen and (max-width:320px) {
  .mv-dots .slick-dots li {
    width: 2.2rem;
    height: 2.2rem;
  }
}

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

  ナスメディックについて
  
----------------------------------------------------------------------------------------------------*/
.sec-aboutUs {
  position: relative;
  overflow: hidden;
  padding-left: var(--side-space);
  padding-right: var(--side-space);
}
.aboutUs-inner {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  padding-bottom: var(--block-space-max);
  position: relative;
}
.aboutUs-main {
  position: relative;
  z-index: 1;
  padding-right: 6%;
}
.aboutUs-lead {
  color: rgba(var(--color-blue),1);
  font-size: var(--fs-5l);
  font-weight: 700;
  line-height: var(--line-height-m);
}
.aboutUs-txt {
  padding-top: 2.5em;
}
.aboutUs-txt p:not(:first-of-type) {
  padding-top: 1.5em;
}
.aboutUs-photo {
  position: relative;
}
.aboutUs-photo:before {
  content: "";
  background-color: rgba(var(--color-lblue),1);
  height: 100%;
  position: absolute;
  z-index: -1;
  transition: transform 0.8s var(--cubic-bezier);
  transform-origin: right top;
  transform: scale(0,1);
}
.aboutUs-photo.is-scroll:before {
  transform: scale(1,1);
}
.aboutUs-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  font-family: "object-fit:cover;";
}
@media print, screen and (min-width:641px) {
  .aboutUs-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .aboutUs-main {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding-top: var(--block-space-max);
    padding-bottom: var(--block-space-min);
  }
  .aboutUs-photo {
    position: relative;
    width: 32%;
    padding-top: 80px;
  }
  .aboutUs-photo:before {
    width: 50vw;
    left: 90px;
    top: -80px;
  }
  .aboutUs-photo img {
    object-position: 25% center;
    font-family: "object-fit:cover; object-position: 25% center;";
  }
}
@media screen and (max-width:640px) {
  .aboutUs-main {
    padding-top: var(--block-space-max);
    padding-bottom: var(--block-space-max);
  }
  .aboutUs-photo {
    margin-top: calc(var(--side-space) * 2);
    height: calc(280 / 640 * 100vw);
    min-height: 180px;
  }
  .aboutUs-photo:before {
    width: 100vw;
    left: calc(var(--side-space) * 4);
    top: calc(-1 * var(--side-space) * 4);
  }
}
@media screen and (max-width:480px) {
  .aboutUs-lead {
    font-size: var(--fs-4l);
  }
}

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

  ビジネス形態
  
----------------------------------------------------------------------------------------------------*/
.sec-business {
  background-color: var(--bgcolor-gray);
  padding-top: var(--block-space-l);
}
.business-form {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  padding-left: var(--side-space);
  padding-right: var(--side-space);
}
.business-hdline {
  font-size: var(--fs-3l);
  line-height: var(--line-height-s);
  font-weight: 700;
}
.business-img {
  text-align: center;
  padding-bottom: var(--block-space-l);
}
.business-img img {
  width: 100%;
  max-width: 800px;
}
@media print, screen and (min-width:641px) {
  .sec-business {
    padding-bottom: var(--block-space-l);
  }
  .business-form {
    box-sizing: content-box;
  }
  .business-img {
    padding-top: var(--block-space-m);
    padding-left: calc(var(--side-space) * 2);
    padding-right: calc(var(--side-space) * 2);
  }
}
@media screen and (max-width:640px) {
  .business-img {
    padding-top: var(--block-space-l);
    padding-left: var(--side-space);
    padding-right: var(--side-space);
  }
}

/*--------------------------------------------------------------------------------
  応用可能分野
--------------------------------------------------------------------------------*/
.business-field {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.business-field-inner {
  background-color: var(--bgcolor-gray2);
}
.business-field__hdline {
  font-size: var(--fs-2l);
  line-height: var(--line-height-m);
  font-weight: 700;
  padding-bottom: var(--block-space-min);
}
.business-field__item,
.business-field__item .item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.business-field__item .item {
  background-color: #FFF;
  margin-top: 1px;
  padding: var(--box-space-m);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-line-pack: center;
  align-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 96%;
}
.business-field__item .item .icon img {
  pointer-events: none;
}
.business-field__item .item .txt {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-left: var(--box-space-m);
}
.business-field__item .item p {
  font-size: var(--fs-s);
  color: rgba(var(--color-gray),1);
}
.business-field__item .item .ttl {
  font-size: var(--fs-l);
  font-weight: 500;
  display: inline-block;
  margin-bottom: 0.25em;
}
@media print, screen and (min-width:641px) {
  .business-field {
    padding-left: var(--side-space);
    padding-right: var(--side-space);
    box-sizing: content-box;
  }
  .business-field-inner {
    padding: var(--box-space-l);
  }
  .business-field__item {
    margin-left: -1px;
  }
  .business-field__item .item {
    margin-left: 1px;
    width: calc(50% - 1px);
  }
  .business-field__item .item .icon {
    width: 70px;
  }
}
@media screen and (max-width:640px) {
  .business-field-inner {
    padding: var(--block-space-l) var(--side-space) var(--block-space-m) var(--side-space);
  }
  .business-field__item .item {
    width: 100%;
  }
  .business-field__item .item .icon {
    width: 20%;
    max-width: 60px;
  }
}

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

  お知らせ・情報発信
  
----------------------------------------------------------------------------------------------------*/
.sec-info {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  padding-left: var(--side-space);
  padding-right: var(--side-space);
}
.info-hdline {
  position: relative;
}
.info-hdline .hdline {
  font-size: var(--fs-3l);
  line-height: var(--line-height-s);
  font-weight: 700;
}
.info-hdline .btn {
  display: inline-block;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
.info-box {
  border-top: 1px solid var(--linecolor-gray);
  padding-top: 1em;
  padding-bottom: 1em;
}
.info-box:last-of-type {
  border-bottom: 1px solid var(--linecolor-gray);
}
.info-box.cols {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.info-box.cols .cols__txt {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-right: 1.5em;
}
.info-box.cols .cols__photo {
  width: 25%;
  min-width: 90px;
	-ms-flex-item-align: end;
	align-self: flex-end;
  margin-top: 0.25em;
  margin-bottom: 0.25em;
}
.info-box .date {
  font-size: var(--fs-2s);
  color: rgba(var(--color-gray),1);
}
.info-box .cate {
  font-size: var(--fs-3s);
  display: inline-block;
  text-align: center;
  background-color: rgba(var(--color-blue),1);
  color: #FFF;
  line-height: var(--line-height-s);
  vertical-align: middle;
  padding: 0.25em 0.5em;
  margin-right: 1em;
  min-width: 8em;
}
.info-box .ttlB {
  font-size: var(--fs-m);
  font-weight: 500;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  height: 90%;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding-top: 0.5em;
  padding-bottom: 1em;
  line-height: var(--line-height-m);
  word-break: break-all;
}
.info-box a,
.info-box a:visited,
.info-box a:hover {
  color: var(--font-color);
  text-decoration: none;
}
.ua-pc .info-box a:hover,
.ua-pc .info-box.js__linkBox:hover a {
  color: var(--fc-link);
}
@media print, screen and (min-width:641px) {
  .sec-info {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    box-sizing: content-box;
    padding-top: var(--block-space-max);
    padding-bottom: var(--block-space-max);
  }
  .info-col {
    width: 50%;
  }
  .info-col:first-of-type { padding-right: 3%; }
  .info-col:last-of-type { padding-left: 3%; }
  .info-hdline {
    margin-bottom: var(--block-space-min);
  }
}
@media screen and (max-width:640px) {
  .sec-info {
    padding-bottom: var(--block-space-max);
  }
  .info-col {
    padding-top: var(--block-space-max);
  }
  .info-hdline {
    margin-bottom: calc(var(--block-space-s) + 0.25em);
  }
}

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

  特許
  
----------------------------------------------------------------------------------------------------*/
.sec-patent {
  overflow: hidden;
  padding-bottom: var(--block-space-m);
}
.patent__photo {
  position: relative;
}
.patent__photo img {
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  object-fit: cover;
  font-family: "object-fit:cover;";
}
.patent__main {
  position: relative;
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  padding-left: var(--side-space);
  padding-right: var(--side-space);
  padding-top: var(--block-space-max);
  padding-bottom: var(--block-space-l);
  z-index: 2;
}
.patent__main:after {
  content: "";
  height: 100%;
  display: block;
  background-color: #FFF;
  position: absolute;
  top: 0;
  z-index: -1;
}
.patent-lead {
  color: rgba(var(--color-blue),1);
  font-size: var(--fs-4l);
  font-weight: 700;
  line-height: var(--line-height-m);
}
.patent-txt {
  padding-top: 2em;
}
@media print, screen and (min-width:641px) {
  .patent__photo {
    height: 400px;
  }
  .patent__photo img {
    min-width: 2000px;
    object-position: center bottom;
    font-family: "object-fit:cover; object-position: center bottom;";
  }
  .patent__main {
    margin-top: -220px;
    box-sizing: content-box;
  }
  .patent__main:after {
    width: 60vw;
    left: calc(60% - 60vw);
  }
}
@media print, screen and (min-width:641px) and (max-width:1000px) {
  .patent__main:after {
    width: 60%;
    left: 0;
  }
}
@media screen and (max-width:640px) {
  .patent-lead {
    padding-right: calc(var(--side-space) * 2);
  }
  .patent__photo {
    height: calc(320 / 640 * 100vw);
    min-height: 240px;
  }
  .patent__photo img {
    min-width: 250%;
    object-position: center bottom;
    font-family: "object-fit:cover; object-position: center bottom;";
  }
  .patent__main {
    margin-top: -25%;
    padding-right: calc(var(--side-space) * 2);
  }
  .patent__main:after {
    width: 92%;
    left: 0;
  }
}

/*--------------------------------------------------------------------------------
  特許証
--------------------------------------------------------------------------------*/
.patent-list {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--side-space);
  padding-right: var(--side-space);
  text-align: left;
}
.patent-list__hdline {
  font-size: var(--fs-2l);
  line-height: var(--line-height-m);
  font-weight: 700;
  padding-bottom: var(--block-space-min);
}
.patent-list__item,
.patent-list__item .item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.patent-list__item {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  position: relative;
}
.patent-list__item .item {
  line-height: var(--line-height-m);
  position: relative;
}
.patent-list__item .item:before {
  content: "";
  width: 2.5em;
  height: 2em;
  display: inline-block;
  background-repeat: no-repeat;
  background-position: top right;
  background-size: contain;
  position: absolute;
  top: var(--box-space-m);
  right: 0;
}
.patent-list__item .jp:before { background-image: url("../image/patent/cc_jp.svg"); }
.patent-list__item .au:before { background-image: url("../image/patent/cc_au.svg"); }
.patent-list__item .gb:before { background-image: url("../image/patent/cc_gb.svg"); }
.patent-list__item .hk:before { background-image: url("../image/patent/cc_hk.svg"); }
.patent-list__item .ca:before { background-image: url("../image/patent/cc_ca.svg"); }
.patent-list__item .txt {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
	-ms-flex-item-align: end;
	align-self: flex-end;
  padding-top: 3em;
  padding-bottom: 1em;
  padding-left: 1.5em;
  line-height: var(--line-height-s);
}
.patent-list__item .txt .ttl {
  font-size: var(--fs-l);
  font-weight: 500;
  display: inline-block;
  padding-bottom: 0.5em;
}
.patent-list__item .txt small {
  font-size: var(--fs-2s);
}
@media print, screen and (min-width:641px) {
  .patent-list {
    box-sizing: content-box;
  }
  .patent-list__item {
    margin-left: -5%;
  }
  .patent-list__item .item {
    width: 33.333333%;
    padding-left: 5%;
    position: relative;
    padding-top: var(--box-space-m);
    padding-bottom: var(--box-space-m);
  }
  .patent-list__item .item:nth-of-type(n+4) {
    margin-top: var(--box-space-m);
  }
  .patent-list__item .item:after {
    content: "";
    width: 85%;
    height: 1px;
    background-color: rgba(var(--color-dblue),0.6);
    position: absolute;
    left: 15%;
    top: 0;
  }
  .patent-list__item .lp {
    width: 35%;
    -ms-flex-item-align: end;
    align-self: flex-end;
  }
}
@media screen and (max-width:640px) {
  .patent-list__item .item {
    width: 100%;
    border-top: 1px solid rgba(var(--color-dblue),0.6);
    padding-top: var(--box-space-l);
    padding-bottom: var(--box-space-l);
  }
  .patent-list__item .lp {
    width: 20%;
    max-width: 120px;
    min-width: 90px;
  }
}
