@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap);

/* bootstrap color 
--------------------------------------*/
:root {
  --bs-blue: #3a5dae;
  --bs-primary-rgb: 58, 93, 174;
}

.btn-primary {
  --bs-btn-bg: var(--bs-blue);
  --bs-btn-border-color: var(--bs-blue);
  --bs-btn-disabled-bg: var(--bs-blue);
  --bs-btn-disabled-border-color: var(--bs-blue);
}

.btn-outline-primary {
  --bs-btn-color: var(--bs-blue);
  --bs-btn-border-color: var(--bs-blue);
  --bs-btn-hover-bg: var(--bs-blue);
  --bs-btn-hover-border-color: var(--bs-blue);
  --bs-btn-focus-shadow-rgb: 13, 110, 253;
  --bs-btn-active-bg: var(--bs-blue);
  --bs-btn-active-border-color: var(--bs-blue);
  --bs-btn-disabled-color: var(--bs-blue);
  --bs-btn-disabled-border-color: var(--bs-blue);
}

::placeholder {
  color: #adb5bd !important;
}


/*  
--------------------------------------*/
html {
  overflow-x: hidden;
}

body {
  /* min-height: 100svh; */
  font-family: 'Noto Sans JP', sans-serif;
  background-color: #222;
  line-height: 1.5;
  text-rendering: optimizeSpeed;
  overflow-x: hidden;
}


html:focus-within {
  scroll-behavior: smooth
}

a:not([class]) {
  -webkit-text-decoration-skip: ink;
  text-decoration-skip-ink: auto
}

#app {
  display: grid;
  min-height: 100svh;
  align-items: start;
  transition: opacity 0.2s ease;

  &[v-cloak] {
    opacity: 0;
    visibility: hidden;
  }
}

@media (min-width:960px) {
  .container {
    width: 800px
  }
}

.loader {
  width: 100%;
  height: 100%;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
}

[data-monitor='vertical'] {
  &+.loader {
    span {
      writing-mode: sideways-lr;
    }
  }
}

/* header -------------------------------------- */
header {
  border-bottom: 2px solid var(--bs-primary-text-emphasis);
}

/* footer -------------------------------------- */
#footer {
  background-color: var(--bs-secondary-text-emphasis);
  margin-top: auto;

  p {
    color: #fff;
    text-align: center;
    padding: 10px 0;
  }
}

/* content -------------------------------------- */
.main {
  margin: 0;
  position: relative;

  &[data-monitor='vertical'] {
    .viewer {
      .main-slider {
        .slick-track {
          min-width: 100svw;
          min-height: 100svh;
        }

        .slick-slide {

          img,
          .video {
            width: auto;
            height: 100svw;
            position: absolute;
            top: -22svw;
            left: 21.9svw;
            transform: rotate(-90deg);
          }
        }
      }
    }

    .qr-image {
      background-image: linear-gradient(to bottom, #fff, #aaa);
      height: 100svh;

      .text {
        text-align: center;

        span {
          line-height: 1;
          writing-mode: sideways-lr;
          font-size: 2.6svw;
          font-weight: bold;
          display: inline-block;
          position: relative;
          left: -0.2svw;

          &::after {
            content: '\02192';
          }
        }
      }
    }
  }

  &[data-monitor='horizontal'] {
    .viewer {
      width: 100svw;
    }

    .qr-image {
      background-image: linear-gradient(to bottom, #fff, #aaa);
      height: 100svh;

      .text {
        text-align: center;

        span {
          line-height: 1;
          writing-mode: vertical-rl;
          text-orientation: upright;
          font-size: 2.6svw;
          font-weight: bold;
          display: inline-block;

          &::before {
            content: '\02191';
          }
        }
      }
    }
  }

  .viewer {
    pointer-events: none;
  }

  .qr-image {
    width: 6.8%;
    background-color: #fff;
    line-height: 0;
    position: fixed;
    top: 0;
    right: 0;

    &[data-monitor='vertical'] {
      width: 6.2%;
      left: 0;
    }

    a {
      padding: 8%;
      display: inline-block;

      img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
    }
  }
}

.container {
  h1 {
    position: relative;
    text-align: center;
    padding-block: 0.25rem 0.5rem;
    /* height: 50px;
    line-height: 50px; */

    img {
      display: inline-block;
      text-align: center;
      margin: auto;
      height: 50px;
    }
  }

  h3 {
    width: 90%;
    margin-inline: auto;

    @media (max-width: 768px) {
      padding-bottom: 0 !important;
    }

    .badge {
      @media (max-width: 768px) {
        font-size: 65%;
      }
    }
  }
}