@keyframes headershow {
  from {
    transform: translateY(-100%); }
  to {
    transform: translateY(0); } }

@keyframes welcomeshow {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes welcomehide {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }

@keyframes contentsnotice {
  from {
    padding-top: 100vh; }
  to {
    padding-top: 90vh; } }

.img-border {
  border: 1px solid #ccc; }

html, body {
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  font-family: 'Yu Gothic', Meiryo, sans-serif; }

body {
  -webkit-text-size-adjust: 100%; }

a {
  color: black;
  text-decoration: none; }
  a:hover {
    text-decoration: underline; }
  a:hover, a:active, a:focus, a:visited {
    color: black; }

#welcome {
  display: none; }

.home header,
.home .drawer-hamburger {
  transform: translateY(-100%);
  animation: headershow 2s ease 2s forwards; }

.home #welcome {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9;
  opacity: 1;
  animation: welcomeshow 2s ease 0s forwards, welcomehide 2s ease 4s forwards; }
  .home #welcome .con {
    display: flex;
    width: 80%;
    margin: auto;
    height: 100%;
    justify-content: center;
    align-items: center; }
    @media screen and (min-width: 768px) {
      .home #welcome .con {
        width: 40%; } }

header {
  position: fixed;
  z-index: 10;
  background: white;
  top: 0px;
  left: 0;
  width: 100%;
  height: 65px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); }
  @media screen and (min-width: 768px) {
    header {
      height: 80px; } }
  header .sp-sns {
    display: block;
    position: absolute;
    left: 190px;
    top: 19px; }
    header .sp-sns a {
      margin-right: 10px; }
    @media screen and (min-width: 768px) {
      header .sp-sns {
        left: 250px;
        top: 25px; } }
    @media screen and (min-width: 1200px) {
      header .sp-sns {
        display: none; } }
  header #logo {
    width: 150px;
    height: auto;
    position: absolute;
    top: 20px;
    left: 20px; }
    @media screen and (min-width: 768px) {
      header #logo {
        width: 200px; } }
  header #nav {
    display: none;
    font-size: 0.9rem;
    margin: auto 20px auto auto;
    padding: 20px 0px; }
    header #nav a {
      display: table-cell;
      text-align: center;
      padding: 10px 1vw;
      position: relative; }
      header #nav a::after {
        position: absolute;
        bottom: 0px;
        left: 0;
        content: '';
        width: 100%;
        height: 2px;
        background: #333;
        transform: scale(0, 1);
        transform-origin: right top;
        transition: transform .3s; }
      header #nav a:hover {
        text-decoration: none; }
        header #nav a:hover::after {
          transform-origin: left top;
          transform: scale(1, 1); }
    @media screen and (min-width: 1200px) {
      header #nav {
        display: table; } }
    @media screen and (min-width: 1400px) {
      header #nav {
        margin: auto; } }

.drawer--right.drawer-open .drawer-hamburger {
  right: 10px; }

.drawer-hamburger-icon {
  background-color: #000; }
  .drawer-hamburger-icon:before, .drawer-hamburger-icon:after {
    background-color: #000; }

.drawer--right .drawer-nav {
  padding: 0 0 4%;
  width: 100%;
  right: -100%; }

.drawer--right .drawer-hamburger {
  right: 10px;
  top: 3px; }
  .drawer--right .drawer-hamburger:focus {
    outline: none; }
  @media screen and (min-width: 1200px) {
    .drawer--right .drawer-hamburger {
      display: none; } }

.drawer-menu {
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }
  .drawer-menu a {
    display: flex;
    height: 10%;
    width: 100%;
    text-align: center;
    justify-content: center;
    align-items: center;
    transition: background-color .4s ease-in-out;
    position: relative; }
    .drawer-menu a::after {
      position: absolute;
      bottom: 0px;
      left: 0;
      content: '';
      width: 100%;
      height: 2px;
      background: #333;
      transform: scale(0, 1);
      transform-origin: right top;
      transition: transform .3s; }
    .drawer-menu a:hover {
      text-decoration: none;
      background-color: #e0e0e0; }
      .drawer-menu a:hover::after {
        transform-origin: left top;
        transform: scale(1, 1); }
    .drawer-menu a img.logo {
      width: 200px;
      height: auto; }
  .drawer-menu .sns {
    text-align: center; }
    .drawer-menu .sns a {
      display: inline-block;
      width: auto;
      padding: 10px; }

.slideshow {
  transition: all .5s ease-in-out;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background-image: url("../images/top/top1_g.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 8; }

.home .content {
  padding-top: 100vh;
  animation: contentsnotice 2s ease 2s forwards; }

.content {
  position: relative;
  z-index: 9; }
  .content section {
    padding-bottom: 30px;
    background: white;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    font-size: 0.85rem; }
    .content section p {
      line-height: 2; }
    @media screen and (min-width: 768px) {
      .content section {
        font-size: 1rem; } }
  .content .topmenu {
    padding: 20px 0 0 0; }
    @media screen and (min-width: 768px) {
      .content .topmenu {
        padding: 30px 0 0 0; } }
    .content .topmenu a {
      display: block;
      padding: 10px 20px; }
      .content .topmenu a:hover .normal {
        opacity: 0; }
      .content .topmenu a div {
        position: relative; }
      @media screen and (min-width: 768px) {
        .content .topmenu a {
          padding: 25px 50px; } }
    .content .topmenu .text {
      position: absolute;
      top: 0;
      left: 0;
      color: white;
      background-image: url(../images/top/menu_bg.svg);
      background-repeat: no-repeat;
      background-position: 0 0;
      background-size: cover;
      width: 250px;
      height: 30px;
      z-index: 11;
      padding: 10px 0 0 10px;
      overflow: hidden;
      font-size: 0.85rem; }
      @media screen and (min-width: 1200px) {
        .content .topmenu .text {
          width: 380px;
          height: 45px;
          font-size: 1.2rem;
          padding: 15px 0 0 10px; } }
    .content .topmenu .photo {
      position: relative;
      overflow: hidden; }
      .content .topmenu .photo .normal,
      .content .topmenu .photo .over {
        height: 150px; }
        @media screen and (min-width: 400px) {
          .content .topmenu .photo .normal,
          .content .topmenu .photo .over {
            height: auto; } }
        .content .topmenu .photo .normal img,
        .content .topmenu .photo .over img {
          width: auto;
          height: 100%;
          transform: translateX(-7%); }
          @media screen and (min-width: 400px) {
            .content .topmenu .photo .normal img,
            .content .topmenu .photo .over img {
              width: 100%;
              height: auto;
              transform: translateX(0%); } }
      .content .topmenu .photo .normal {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 11;
        opacity: 1;
        transition: opacity .3s ease-in-out; }
      .content .topmenu .photo .over {
        position: relative;
        z-index: 10; }

.lowerMainImage {
  padding-top: 60px;
  margin-bottom: 50px;
  position: relative; }
  .lowerMainImage .lowerMainTitle {
    width: 100%;
    position: absolute;
    bottom: 20px;
    left: 0;
    z-index: 100; }
  .lowerMainImage h1 {
    max-width: 1200px;
    margin: auto;
    color: white;
    text-shadow: 0 0 10px black;
    font-size: 1.5em;
    padding-left: 30px; }
    @media screen and (min-width: 768px) {
      .lowerMainImage h1 {
        font-size: 2.5em; } }

.narrowContent {
  max-width: 1200px;
  margin: auto;
  padding: 0 30px;
  line-height: 2; }
  .narrowContent h2 {
    color: white;
    background-image: url(../images/top/menu_bg.svg);
    background-repeat: no-repeat;
    background-position: top right;
    background-size: cover;
    width: 100%;
    max-width: 500px;
    height: 50px;
    padding: 23px 0 0 12px;
    overflow: hidden;
    margin-bottom: 20px;
    font-size: 0.9rem; }
    @media screen and (min-width: 768px) {
      .narrowContent h2 {
        font-size: 1.25rem; } }
  .narrowContent h3 {
    font-size: 0.9rem;
    line-height: 1.5; }
    @media screen and (min-width: 768px) {
      .narrowContent h3 {
        font-size: 1.1rem; } }
  .narrowContent th {
    white-space: nowrap; }
  .narrowContent th.w-20 {
    width: 20%; }
  .narrowContent .policyList {
    text-align: center;
    margin: 30px 0 10px;
    padding: 0; }
    .narrowContent .policyList li {
      text-align: center;
      margin: 0 10px 20px;
      padding: 60px 35px 40px;
      border-radius: 10px;
      list-style: none;
      background-color: #e0e0e0; }
      .narrowContent .policyList li h3 {
        font-family: serif;
        font-size: 2rem;
        margin-bottom: 20px; }
      .narrowContent .policyList li p {
        margin: 0; }

.productsContent {
  border-top: 1px solid white;
  padding: 30px; }
  @media screen and (min-width: 400px) {
    .productsContent {
      padding: 0; } }
  .productsContent h2.sp {
    color: white;
    background-image: url(../images/top/menu_bg.svg);
    background-repeat: no-repeat;
    background-position: top right;
    background-size: cover;
    width: 100%;
    max-width: 500px;
    height: 50px;
    padding: 23px 0 0 12px;
    overflow: hidden;
    margin-bottom: 20px;
    font-size: 0.9rem; }
    @media screen and (min-width: 768px) {
      .productsContent h2.sp {
        font-size: 1.25rem; } }
    @media screen and (min-width: 400px) {
      .productsContent h2.sp {
        display: none; } }
  .productsContent .row {
    border-bottom: 1px solid #ccc; }
  .productsContent .info {
    padding: 30px 0px; }
    @media screen and (min-width: 400px) {
      .productsContent .info {
        padding: 30px 30px; } }
    .productsContent .info h2 {
      color: white;
      background-image: url(../images/top/menu_bg.svg);
      background-repeat: no-repeat;
      background-position: top right;
      background-size: cover;
      width: 100%;
      max-width: 500px;
      height: 50px;
      padding: 23px 0 0 12px;
      overflow: hidden;
      margin-bottom: 20px;
      font-size: 0.9rem;
      display: none; }
      @media screen and (min-width: 768px) {
        .productsContent .info h2 {
          font-size: 1.25rem; } }
      @media screen and (min-width: 400px) {
        .productsContent .info h2 {
          display: block; } }
  .productsContent .ph {
    height: 58vw;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover; }
    .productsContent .ph.product1 {
      background-image: url(../images/products/jiruconia.jpg); }
    .productsContent .ph.product2 {
      background-image: url(../images/products/seramic.jpg); }
    .productsContent .ph.product3 {
      background-image: url(../images/products/inplant.jpg); }
    .productsContent .ph.product4 {
      background-image: url(../images/products/cadcam.jpg); }
    .productsContent .ph.product5 {
      background-image: url(../images/products/dencher.jpg); }
    .productsContent .ph.product6 {
      background-image: url(../images/products/hoken.jpg); }
    @media screen and (min-width: 400px) {
      .productsContent .ph {
        height: 35vw; } }

span.material {
  margin-right: 10px;
  font-size: 0.8em;
  color: white;
  padding: 5px 10px 5px 12px;
  border-radius: 20px;
  letter-spacing: 2px;
  background-color: #666; }

.links {
  text-align: center; }
  .links a {
    color: #0275d8; }
    .links a i {
      font-size: 0.8rem;
      margin-left: 5px; }

a.btn-outline-primary {
  color: #0275d8; }

.map {
  position: relative;
  width: 100%;
  /*height:0;*/
  padding-bottom: 40%;
  /*overflow:hidden;*/ }
  .map iframe {
    /*position: absolute;*/
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none; }

footer {
  overflow: hidden;
  background-color: #888;
  font-size: 0.75em; }
  @media screen and (min-width: 768px) {
    footer {
      font-size: 1em; } }
  @media screen and (min-width: 768px) {
    footer #footer-container {
      padding: 20px 0px;
      max-width: 1200px;
      margin: auto; } }
  footer #footer-container .row {
    margin-bottom: 20px; }
  footer #footer-container .topcol {
    padding: 30px 40px;
    color: white; }
    footer #footer-container .topcol a {
      color: white;
      display: block;
      margin-bottom: 10px;
      text-align: center;
      position: relative; }
      footer #footer-container .topcol a::after {
        position: absolute;
        bottom: 0px;
        left: 0;
        content: '';
        width: 100%;
        height: 2px;
        background: #aaa;
        transform: scale(0, 1);
        transform-origin: right top;
        transition: transform .3s; }
      footer #footer-container .topcol a:hover {
        text-decoration: none; }
        footer #footer-container .topcol a:hover::after {
          transform-origin: left top;
          transform: scale(1, 1); }
      @media screen and (min-width: 768px) {
        footer #footer-container .topcol a {
          text-align: left; } }
  footer #footer-container form .error_blank {
    color: red; }
  footer #footer-container form h3 {
    font-size: 1em;
    font-weight: normal;
    border-bottom: 1px solid #aaa;
    padding-bottom: 5px;
    margin-bottom: 10px; }
  footer #footer-container form table {
    width: 100%;
    margin-bottom: 10px; }
  footer #footer-container form td, footer #footer-container form th {
    padding: 5px 10px; }
  footer #footer-container form td {
    width: 100%; }
  footer #footer-container form th {
    white-space: nowrap;
    padding-top: 12px; }
  footer #footer-container form input, footer #footer-container form textarea {
    width: 100%;
    border-radius: 2px;
    border: none;
    padding: 5px;
    font-size: 0.9em; }
  footer #footer-container form textarea {
    height: 100px; }
  footer #footer-container form .send-button {
    text-align: center; }
    footer #footer-container form .send-button #form_submit_button {
      margin: auto;
      font-size: 0.9em;
      padding: 5px 35px;
      background: #000;
      border: none;
      color: white;
      cursor: pointer;
      transition: .3s ease; }
      footer #footer-container form .send-button #form_submit_button:hover {
        background: white;
        color: black; }
  footer .logo {
    margin: 0 auto 30px;
    text-align: center;
    width: 70%; }
    @media screen and (min-width: 768px) {
      footer .logo {
        margin: 0 0 30px 0;
        width: 300px;
        text-align: left; } }
  footer table th, footer table td {
    vertical-align: top;
    font-weight: normal;
    text-align: left; }
    footer table th a, footer table td a {
      text-align: left !important; }
  footer table th {
    text-align: right; }
  footer .sns {
    text-align: center;
    padding-bottom: 10px; }
    footer .sns img {
      margin: 5px; }
  footer .copyright {
    text-align: center;
    color: white;
    font-size: 0.8em;
    padding-bottom: 30px; }

#mapcontent,
#pageplugin {
  height: 400px;
  margin-bottom: 20px; }
  @media screen and (min-width: 768px) {
    #mapcontent,
    #pageplugin {
      margin-bottom: 0px; } }

.mapandfb {
  padding: 10px 20px; }
  @media screen and (min-width: 768px) {
    .mapandfb {
      padding: 25px 50px; } }

.fb_iframe_widget,
.fb_iframe_widget span,
.fb_iframe_widget iframe[style] {
  width: 100% !important; }
