@keyframes button-ripple {
  0% {
    transform: translate(-50%, -50%) scale(1.1);
    opacity: 1; }
  100% {
    transform: translate(-50%, -50%) scale(1.8);
    opacity: 0.1; } }
.diagram-title {
  letter-spacing: 0.04em;
  font-size: 24px;
  line-height: 1em;
  font-weight: bolder; }
  @media screen and (min-width: 768px) {
    .diagram-title {
      text-align: center;
      font-size: 32px; } }

.diagram {
  padding-top: 20px; }
  @media screen and (min-width: 768px) {
    .diagram {
      padding-top: 40px; } }
  @media screen and (min-width: 768px) and (min-width: 992px) {
    .diagram {
      padding-top: 60px; } }

.diagram-wrap {
  position: relative;
  margin-top: 28px; }
  .diagram-wrap img {
    display: block; }
  .diagram-wrap .button-wrap {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 2; }
    .diagram-wrap .button-wrap button {
      border: 0;
      background-color: #ff8900;
      color: white;
      width: 24px;
      height: 24px;
      padding: 0;
      border-radius: 50%;
      display: flex;
      justify-content: center;
      align-items: center;
      position: absolute;
      left: 50%;
      top: 50%;
      font-weight: bolder; }
      @media screen and (min-width: 1200px) {
        .diagram-wrap .button-wrap button:after {
          content: '';
          width: 24px;
          height: 24px;
          background-color: #ff8900;
          border-radius: 50%;
          position: absolute;
          z-index: -1;
          left: 50%;
          top: 50%;
          animation: button-ripple 1s linear infinite; } }
      .diagram-wrap .button-wrap button[target-tag="#tag_internet"] {
        transform: translate(-100%, -50%);
        left: 6%;
        top: 20%; }
      .diagram-wrap .button-wrap button[target-tag="#tag_security_firewall"] {
        transform: translate(-100%, -50%);
        left: 6%;
        top: 54%; }
      .diagram-wrap .button-wrap button[target-tag="#tag_switch"] {
        transform: translate(-100%, -50%);
        left: 6%;
        top: 68%; }
      .diagram-wrap .button-wrap button[target-tag="#tag_ip_cam"] {
        transform: translate(-100%, -50%);
        left: 58%;
        top: 47%; }
      .diagram-wrap .button-wrap button[target-tag="#tag_remote_ip_cam"] {
        transform: translate(-100%, -50%);
        left: 90%;
        top: 56%; }
      .diagram-wrap .button-wrap button.active {
        background-color: #e83f00; }
        .diagram-wrap .button-wrap button.active:after {
          display: none; }
      @media screen and (min-width: 1200px) {
        .diagram-wrap .button-wrap button {
          cursor: pointer; } }
  .diagram-wrap .tag-wrap {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 1; }
    .diagram-wrap .tag-wrap .tag {
      position: absolute;
      padding: 20px;
      background-color: white;
      display: none;
      box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
      width: max-content;
      font-weight: bolder; }
      .diagram-wrap .tag-wrap .tag#tag_internet {
        transform: translate(0, -50%);
        left: 18%;
        top: 20%; }
      .diagram-wrap .tag-wrap .tag#tag_security_firewall {
        transform: translate(0, -50%);
        left: 20%;
        top: 53%; }
      .diagram-wrap .tag-wrap .tag#tag_switch {
        transform: translate(-50%, 0);
        left: 16%;
        top: 72%; }
      .diagram-wrap .tag-wrap .tag#tag_ip_cam {
        transform: translate(0, -50%);
        left: 64%;
        top: 47%; }
      .diagram-wrap .tag-wrap .tag#tag_remote_ip_cam {
        transform: translate(-50%, -100%);
        left: 94%;
        top: 51%; }
      .diagram-wrap .tag-wrap .tag.active {
        display: block; }
  @media screen and (min-width: 992px) {
    .diagram-wrap {
      margin-top: 50px; } }

.legend {
  margin-top: 2%; }
  .legend img {
    width: 100%;
    max-height: 68px;
    display: block;
    margin: auto; }

.mobile-index {
  margin-top: 10px;
  display: flex;
  justify-content: center; }
  .mobile-index ul {
    width: 100%;
    max-width: 564px;
    padding: 0; }
    .mobile-index ul li {
      display: flex;
      justify-content: flex-start;
      padding: 3px 0; }
      .mobile-index ul li .number {
        background-color: #ff8900;
        color: white;
        width: 24px;
        height: 24px;
        padding: 0;
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
        font-weight: bolder;
        flex: none; }
      .mobile-index ul li .text {
        margin-left: 10px; }
      @media screen and (min-width: 768px) {
        .mobile-index ul li {
          width: 50%; } }
    @media screen and (min-width: 768px) {
      .mobile-index ul {
        display: flex;
        flex-wrap: wrap; } }
  @media screen and (min-width: 768px) {
    .mobile-index {
      margin-top: 20px;
      padding-left: 22%; } }
@media screen and (min-width: 768px) and (min-width: 992px) and (min-width: 1200px) {
  .mobile-index {
    display: none; } }

.solution-tab-container .view-all {
  display: none; }

/*# sourceMappingURL=style.css.map */
