  .poppins { font-family: "Poppins", sans-serif; }

  .tab.active { color: #2d68c4; border-color: #2d68c4; }
  .tab.active svg path { stroke: #2d68c4; }

  .number-bg {
    position: absolute; top: -30px;
    left: 50%; transform: translateX(-50%); z-index: 0;
  }
  .number-bg span {
    font-size: 60px; font-weight: 700;
    color: #2D68C4; position: relative; z-index: 1;
  }
  .number-bg::before {
    content: ""; position: absolute;
    top: 30px; left: 50%; transform: translateX(-50%);
    width: 200px; height: 100px;
    background-color: rgba(59, 117, 144, 0.1);
    border-radius: 0 0 150px 150px; z-index: -1;
  }

  .custom-card {
    background: #FFFFFF; border-radius: 10px;
    position: relative; z-index: 1;
    width: 228px; height: 190px; border: none;
    transition: all 0.3s ease;
    box-shadow: rgba(17, 12, 46, 0.15) 0px 48px 100px 0px;
  }

  .card-back { display: none; }
  .card-wrapper:hover .card-front { display: none; }
  .card-wrapper:hover .card-back { display: block; }

  .tabs-2 { transition: all 0.3s ease; }
  .tabs-2.active { border-color: #2D68C4; box-shadow: 0px 2px 8px 0px #002B6B1A; }
  .tabs-2.active p { color: #2D68C4; }
  .tabs-2.active path[stroke] { stroke: #FF6F00; stroke-width: 1.5; }
  .tabs-2.active path[fill] { fill: #FF6F00; }

  .bg-banner-frame {
    background: url('{% static_v "images/landing/s-bg.svg" %}') no-repeat center center;
    background-size: cover;
  }
  .bg-cta-frame {
    background: url('{% static_v "images/landing/cta.svg" %}') no-repeat center center;
    background-size: cover;
  }
  .bg-main-frame {
    background: url('{% static_v "images/landing/banner_frame.svg" %}') no-repeat center center;
    background-size: cover;
  }
  .bg-why-genix-frame {
    background: url('{% static_v "images/landing/why_dna_genix.svg" %}') no-repeat center center;
    background-size: cover;
  }
  .bg-why-choose-frame {
    background: url('{% static_v "images/landing/bg_why.svg" %}') no-repeat center center;
    background-size: cover;
  }
  .bg-genix-frame {
    background: url('{% static_v "images/landing/bg_genix.svg" %}') no-repeat right bottom;
    background-size: auto;
  }
  @media (max-width: 1023px) {
    .bg-genix-frame {
      background: url('{% static_v "images/landing/bg_genix.svg" %}') no-repeat center center;
      background-size: cover;
    }
  }

  summary::-webkit-details-marker { display: none; }

  .card {
    opacity: 0;
    transform: scale(0.95);
    transition: all 0.5s ease;
  }

  .play-btn {
    position: relative; width: 48px; height: 48px;
    border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #333b73 0%, #02a9f7 100%);
    backdrop-filter: blur(6px);
    box-shadow: 0 8px 20px rgba(51,59,115,0.35), 0 0 20px rgba(2,169,247,0.35);
    transition: all 0.3s ease;
    flex-shrink: 0;
  }
  .play-btn:hover {
    transform: scale(1.08);
    box-shadow: 0 10px 25px rgba(51,59,115,0.45), 0 0 35px rgba(2,169,247,0.6);
  }
  .play-btn::before, .play-btn::after {
    content: ''; position: absolute;
    border-radius: 50%; border: 2px solid #2d68c4;
    animation: neon-pulse 2s ease-out infinite;
  }
  .play-btn::after { animation-delay: 1s; }

  @keyframes neon-pulse {
    0%   { width: 48px; height: 48px; opacity: 0.5; }
    100% { width: 75px; height: 75px; opacity: 0; }
  }
  .play-btn::before {
    content: ''; position: absolute;
    width: 48px; height: 48px;
    border-radius: 50%;
    border: 2px solid rgba(2,169,247,0.6);
    animation: pulse-ring 2s ease-out infinite;
  }
  @keyframes pulse-ring {
    0%   { transform: scale(1);   opacity: 0.6; }
    100% { transform: scale(1.6); opacity: 0; }
  }

  .play-icon {
    width: 0; height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 12px solid #ffffff;
    margin-left: 2px;
    filter: drop-shadow(0 0 6px #2d68c4);
    flex-shrink: 0;
  }
  .play-btn:hover { animation: none; }

  .modal {
    display: none; position: fixed; inset: 0;
    background: rgba(0,0,0,0.85); z-index: 999;
    align-items: center; justify-content: center;
    backdrop-filter: blur(6px);
  }
  .modal.open { display: flex; }
  .modal-box {
    position: relative; border: 1.5px solid #2d68c4;
    border-radius: 12px; overflow: hidden;
    max-width: 90vw; max-height: 90vh;
    animation: modal-in 0.3s cubic-bezier(0.34,1.56,0.64,1) both;
  }
  @keyframes modal-in {
    from { transform: scale(0.7); opacity: 0; }
    to   { transform: scale(1);   opacity: 1; }
  }
  .modal-box video {
    display: block; width: 100%;
    max-width: 820px; max-height: 80vh;
    object-fit: contain; background: #000;
  }
  .close-btn {
    position: absolute; top: 10px; right: 14px;
    color: red; font-size: 28px; cursor: pointer;
    line-height: 1; z-index: 10; transition: transform 0.2s;
  }

  .dl-popup-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(0,0,0,0.65);
    backdrop-filter: blur(6px);
    align-items: center; justify-content: center;
    z-index: 99999;
  }
  .dl-popup-overlay.active { display: flex; }
  .dl-popup-box {
    width: 420px; background: #ffffff;
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 25px 60px rgba(0,0,0,0.25);
    animation: dlPopupFade 0.3s ease;
  }
  .dl-popup-header {
    background: #333b73; padding: 15px 22px;
    display: flex; justify-content: space-between; align-items: center;
  }
  .dl-popup-header h3 { color: #fff; margin: 0; font-size: 18px; font-weight: 600; }

  .dl-popup-btn {
    width: 100%; padding: 13px; background: #2d68c4;
    color: #fff; border: none; border-radius: 8px;
    font-size: 15px; font-weight: 600;
    cursor: pointer; transition: 0.3s ease;
  }
  .dl-popup-btn:hover { background: #02a9f7; }

  @keyframes dlPopupFade {
    from { transform: translateY(20px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
  }
  .dl-error {
    display: block; color: #e53935; font-size: 12px;
    margin-top: -12px; margin-bottom: 12px; min-height: 14px;
  }
  .input-error { border-color: #e53935 !important; }

.select-wrapper {
    position: relative;
    width: 100%;
}

.select-container {
    position: relative;
}

.custom-select {
    width: 100%;
    padding: 0.8rem 2.5rem 0.5rem 3rem;
    border: 1px solid transparent; 
    border-radius: 0.5rem;
    background-color: #D9E2EC66;
    font-size: 12px;
    color: transparent;
    appearance: none;
    transition: padding 0s ease;
    cursor: pointer;
}


.custom-select:focus {
    background-color: #ffffff !important;
    border-color: #d1d5db; 
    outline: none;
    box-shadow: none;
    color: #4b5563;
}

.select-container.has-value .custom-select {
    background-color: #ffffff;
    color: #4b5563;
    border-color: #475569; 
}

.custom-label {
    position: absolute;
    left: 2.5rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: #6b7280;
    pointer-events: none;
    transition: all 0.2s ease;
    background-color: transparent;
    padding: 0 0.25rem;
}

.required {
    color: #ef4444;
}

.select-container:focus-within .custom-label,
.select-container.has-value .custom-label {
    top: 0rem;
    left: 1rem;
    font-size: 10px;
    background-color: white;
    color: #475569;
}

.select-icon-left {
    position: absolute;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
    width: 1.25rem;
    height: 1.25rem;
    z-index: 2;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.select-container:focus-within .select-icon-left,
.select-container.has-value .select-icon-left {
    display: none;
}

.select-container:focus-within .custom-select,
.select-container.has-value .custom-select {
    padding-left: 1rem;
}

.select-icon {
    position: absolute;
    top: 55%;
    right: 1rem;
    transform: translateY(-50%);
    pointer-events: none;
    color: #6b7280;
}

.icon {
    width: 1rem;
    height: 1rem;
}
.gp-toasts {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999999;
    pointer-events: none;
}

.gp-toast {
    background: #333;
    color: #fff;
    padding: 10px 16px;
    margin-bottom: 10px;
    border-radius: 6px;
    min-width: 200px;
}
.gp-toast.show { transform: translateX(0); }
.gp-toast.success { background: #ECFDF5; color: #065F46; border-left: 3px solid #10B981; }
.gp-toast.warning { background: #FFFBEB; color: #92400E; border-left: 3px solid #F59E0B; }
.gp-toast.error   { background: #FEF2F2; color: #991B1B; border-left: 3px solid #EF4444; }
.otp-box {
    width: 40px;
    height: 44px;
    border-radius: 8px;
    border: 1px solid #d1d5db;
    text-align: center;
    font-size: 14px;
    font-weight: 500;
    background: #f9fafb;
    transition: all .2s ease;
}

.otp-box:focus {
    background-color: #ffffff !important;
    border-color: #d1d5db; 
    outline: none;
    box-shadow: none;
    color: #4b5563;
}
.otp-wrapper {
    display: flex;
    gap: 6px;
}