/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
@font-face {
	font-family: 'MStiffHeiHK-UltraBold';
	src: url('../../font/MStiffHeiHK-UltraBold.otf') format('opentype');
	font-weight: bold;
	font-style: normal;
}
:root {
	--kmb-red: #d92128;
	--darkred: #B9002F;
	--lightblue: #00fbfc;
	--deepblue: #0078bf;
	--darkblue: #015287;
	--mildblue: #00a1b3;
}
h1, h2, h3, h4, h5, h6, #navbar {
	
	font-family: 'MStiffHeiHK-UltraBold', 'Microsoft JhengHei', sans-serif !important;
}
body {
  font-family: "微軟正黑體", Helvetica, Arial, sans-serif;
  color: #333;
}

a {
  color: var(--deepblue);
  text-decoration: none;
}

a:hover {
  color: var(--deepblue);
  text-decoration: none;
}

/*h1, h2, h3, h4, h5, h6 {
  font-family: "微軟正黑體", Helvetica, Arial, sans-serif;
}*/
/*new css*/
#overlay{	
	position: fixed;
	top: 0;
	z-index: 100;
	width: 100%;
	height:100%;
	display: none;
	background: rgba(0,0,0,0.6);
}
.cv-spinner {
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;  
}
.spinner {
	width: 40px;
	height: 40px;
	border: 4px #ddd solid;
	border-top: 4px #2e93e6 solid;
	border-radius: 50%;
	animation: sp-anime 0.8s infinite linear;
}
@keyframes sp-anime {
	100% { 
		transform: rotate(360deg); 
	}
}
.header{
	position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 45px;
    box-shadow: 0 0 10px rgba(0, 240, 255, 0.4);
    margin-bottom: 25px;
	border: 5px solid transparent;
	border-radius: 15px;
	background: 
		linear-gradient(45deg, var(--darkblue) 0%, var(--mildblue) 100%) padding-box, /* Inner color */
		linear-gradient(to right, var(--deepblue), var(--lightblue)) border-box; /* Border gradient */
}

.header::before {
    top: 3px;
    left: 3px;
    border-right: none;
    border-bottom: none;
}
.header h2{
    color: #ffffff;
    letter-spacing: 4px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.headerline{
	content: '';
	position: relative;
	width: 75%;
	height: 5px; /* Total height span of the decorative element */  
	/* Applying the bright cyan to deep royal blue gradient */
	background: linear-gradient(to right, var(--darkblue) 0%, var(--mildblue) 50%, var(--lightblue) 100%);
  
	
}
.headerline::before{
	content: "";
	position: absolute;
	top: 0;
	left: 20%;
	width: 15%;
	height: 100%;
	opacity: 0.4;
	background: repeating-linear-gradient(
		-45deg,
		#ffffff,
		#ffffff 2px,
		transparent 2px,
		transparent 8px
 
	);
}

.subtitle{
 
	border: 1.5px solid #00f0ff;
	position: relative;
	padding: 12px 45px;
	background: 
		linear-gradient(90deg, var(--darkblue) 0%, var(--mildblue) 100%) padding-box, /* Inner color */
		linear-gradient(to right, var(--deepblue), var(--lightblue)) border-box; /* Border gradient */
	  /* Creates the 4 diagonal cut chamfer corners */
	  clip-path: polygon(
		12px 0%, calc(100% - 12px) 0%, 
		100% 12px, 100% calc(100% - 12px), 
		calc(100% - 12px) 100%, 12px 100%, 
		0% calc(100% - 12px), 0% 12px
	  );
  
	/* Cyber neon outer shadow glow */
	filter: drop-shadow(0 0 8px rgba(0, 242, 254, 0.65));
	width: fit-content;
	color: white;
}
ul.blue-marker{
	 list-style-image: radial-gradient(circle, var(--deepblue) 0%, var(--lightblue) 70%, transparent 50%);
}
.items{
	padding: 0 2%;
	
}

ul.triangle {
  list-style: none; /* Hide default bullets */
  padding-left: 0 !important;
}

ul.triangle li {
	position: relative;
	padding-left: 24px; /* Space for the triangle marker */
	margin-bottom: 12px;
}

ul.triangle>li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3em; 
  transform: none; 
  width: 14px;
  height: 14px;
  
  /* Vibrant blue to cyan gradient */
  background: linear-gradient(135deg, var(--deepblue) 0%, var(--lightblue) 100%);
  
  /* Cuts the square background into a right-pointing triangle */
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}
.blue{
	color: var(--mildblue);
	
}

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
  position: fixed;
  visibility: hidden;
  opacity: 0;
  right: 15px;
  bottom: 15px;
  z-index: 996;
  background: var(--deepblue);
  width: 40px;
  height: 40px;
  border-radius: 50px;
  transition: all 0.4s;
}
.back-to-top i {
  font-size: 28px;
  color: #fff;
  line-height: 0;
}
.back-to-top:hover {
  background: #2eafec;
  color: #fff;
}
.back-to-top.active {
  visibility: visible;
  opacity: 1;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
#header {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 300px;
  transition: all ease-in-out 0.5s;
  z-index: 9997;
  transition: all 0.5s;
  padding: 0 15px;
  background: var(--deepblue);
  overflow-y: auto;
}
#header .profile img {
  margin: 15px auto;
  display: block;
  width: auto;
}
#header .profile h1 {
  font-size: 24px;
  margin: 0;
  padding: 0;
  font-weight: 600;
  -moz-text-align-last: center;
  text-align-last: center;
  
}
#header .profile h1 a, #header .profile h1 a:hover {
  color: #fff;
  text-decoration: none;
}
#header .profile .social-links a {
  font-size: 18px;
  display: inline-block;
  /*background: #212431;*/
  color: #fff;
  line-height: 1;
  padding: 8px 0;
  margin-right: 4px;
  border-radius: 50%;
  text-align: center;
  width: 36px;
  height: 36px;
  transition: 0.3s;
}
#header .profile .social-links a:hover {
  background: var(--lightblue);
  color: #fff;
  text-decoration: none;
}

#main {
  margin-left: 300px;
  min-height: 100vh;
}

@media (max-width: 1199px) {
  #header {
    left: -300px;
  }

  #main {
    margin-left: 0;
  }
}
/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
/* Desktop Navigation */
.nav-menu {
  padding: 30px 0 0 0;
}
.nav-menu * {
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-menu > ul > li {
  position: relative;
  white-space: nowrap;
}
.nav-menu a, .nav-menu a:focus {
  display: flex;
  align-items: center;
  color: white;
  padding: 12px 15px;
  margin-bottom: 8px;
  transition: 0.3s;
  font-size: 15px;
}
.nav-menu a i, .nav-menu a:focus i {
  font-size: 24px;
  padding-right: 8px;
  color: white;
}
.nav-menu a:hover, .nav-menu .active, .nav-menu .active:focus, .nav-menu li:hover > a {
  text-decoration: none;
  color: var(--lightblue);
}
.nav-menu a:hover i, .nav-menu .active i, .nav-menu .active:focus i, .nav-menu li:hover > a i {
  color: var(--lightblue);
}

/* Mobile Navigation */
.mobile-nav-toggle {
  position: fixed;
  right: 15px;
  top: 15px;
  z-index: 9998;
  border: 0;
  font-size: 24px;
  transition: all 0.4s;
  outline: none !important;
  background-color: var(--deepblue);
  color: #fff;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  border-radius: 50px;
  cursor: pointer;
}

.mobile-nav-active {
  overflow: hidden;
}
.mobile-nav-active #header {
  left: 0;
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
#hero {
  width: 100%;
  height: fit-content;
  padding-top:0;
  /*background: url("../img/bg.jpg") top center;
  background-size: 100%;
	background-repeat: no-repeat;*/
}
#hero:before {
  
  background: rgba(255,255,255, 0);
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
  /*z-index: 1;*/
  
}
#hero .hero-container {
  position: absolute;
  z-index: 2;
  min-width: 300px;
  /*right: 0;*/
  bottom: 30%;
}
#hero h1 {
  margin: 0 0 10px 0;
  font-size: 64px;
  font-weight: 700;
  line-height: 56px;
  color: #fff;
}
#hero p {
  color: #fff;
  margin-bottom: 50px;
  font-size: 26px;
  font-family: "微軟正黑體", Helvetica, Arial, sans-serif;
}
#hero p span {
  color: #fff;
  padding-bottom: 4px;
  letter-spacing: 1px;
  border-bottom: 3px solid #B9002F;
}
@media (min-width: 1024px) {
  #hero {
    /*background-attachment: fixed;*/
  }
}
@media (max-width: 850px) {
  #hero h1 {
    font-size: 28px;
    line-height: 36px;
	
  }
  #hero h2 {
    font-size: 18px;
    line-height: 24px;
    margin-bottom: 30px;
  }
  #hero .hero-container {
	  bottom:50%
  }
}
@media (max-width: 550px) {
 
  #hero .hero-container {
	  bottom:65%
  }
}
@media (max-width: 375px) {
 
  #hero .hero-container {
	  
	  bottom:70%
  }
}

/*--------------------------------------------------------------
# Sections General
--------------------------------------------------------------*/
section {
  padding: 60px 0;
  overflow: hidden;
}

.section-bg {
  background: #f5f5f5;
}

.section-title {
  padding-bottom: 30px;
}
.section-title h2 {
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 20px;
  position: relative;
  color: #333;
}
.section-title h2::after {
  content: "";
  position: absolute;
  display: block;
  width: 50px;
  height: 3px;
  background: #B9002F;
  bottom: 0;
  left: 0;
}
.section-title p {
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# Login
--------------------------------------------------------------*/
.login label{ font-weight: bold; }
.login .form-control{ border-radius: 0; margin-bottom: 15px;}
.login .btn{ width: 100%; background-color: var(--deepblue); border-radius: 0; border: 2px solid #000; color: #fff; font-size: 1.5em; letter-spacing: 0.5em; }


/*--------------------------------------------------------------
# Info
--------------------------------------------------------------*/
.info .info-title {
  font-size: 26px;
  font-weight: 700;
  margin-top: 20px;
  margin-bottom: 20px;
  color: #050d18;
}
.info .info-item {
  padding: 0 0 20px 20px;
  margin-top: -2px;
  border-left: 2px solid var(--lightblue);
  position: relative;
}
.info .info-item h4 {
  line-height: 18px;
  font-size: 18px;
  font-weight: 600;
  text-transform: uppercase;
  font-family: "微軟正黑體", Helvetica, Arial, sans-serif;
  color: #050d18;
  margin-bottom: 10px;
}
.info .info-item h5 {
  font-size: 16px;
  background: #efefef;
  padding: 5px 15px;
  display: inline-block;
  font-weight: 600;
  margin-bottom: 10px;
}
.info .info-item ul {
  padding-left: 20px;
}
.info .info-item ul li {
  padding-bottom: 10px;
}
.info .info-item:last-child {
  padding-bottom: 0;
}
.info .info-item::before {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50px;
  left: -9px;
  top: 0;
  background: #fff;
  border: 2px solid var(--lightblue);
}


/*--------------------------------------------------------------
# rules
--------------------------------------------------------------*/
.rules .rules-title {
  /*font-size: 26px;*/
  font-weight: 700;
  margin-top: 20px;
  margin-bottom: 20px;
  color: #050d18;
}
.rules .rules-item {
  padding: 0 0 20px 20px;
  margin-top: -2px;
  border-left: 2px solid var(--lightblue);
  position: relative;
}
.rules .rules-item h4 {
  line-height: 18px;
  font-size: 18px;
  font-weight: 600;
  text-transform: uppercase;
  font-family: "微軟正黑體", Helvetica, Arial, sans-serif;
  color: #050d18;
  margin-bottom: 10px;
}
.rules .rules-item h5 {
  font-size: 16px;
  background: #efefef;
  padding: 5px 15px;
  display: inline-block;
  font-weight: 600;
  margin-bottom: 10px;
}
.rules .rules-item ul {
  padding-left: 20px;
}
.rules .rules-item ul li {
  padding-bottom: 10px;
}
.rules .rules-item:last-child {
  padding-bottom: 0;
}
.rules .rules-item::before {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50px;
  left: -9px;
  top: 0;
  background: #fff;
  border: 2px solid var(--lightblue);
}


/*--------------------------------------------------------------
# Contact
--------------------------------------------------------------*/
.contact {
  padding-bottom: 130px;
}
.contact .info {
  padding: 30px;
  background: #fff;
  width: 100%;
  box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.12);
}
.contact .info i {
  font-size: 20px;
  color: #fff;
  float: left;
  width: 44px;
  height: 44px;
  background: #B9002F;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50px;
  transition: all 0.3s ease-in-out;
}
.contact .info h4 {
  padding: 0 0 0 60px;
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 5px;
  color: #333;
}
.contact .info p {
  padding: 0 0 10px 60px;
  margin-bottom: 20px;
  font-size: 14px;
  color: #333;
}
.contact .info .email p {
  padding-top: 5px;
}
.contact .info .social-links {
  padding-left: 60px;
}
.contact .info .social-links a {
  font-size: 18px;
  display: inline-block;
  background: #333;
  color: #fff;
  line-height: 1;
  padding: 8px 0;
  border-radius: 50%;
  text-align: center;
  width: 36px;
  height: 36px;
  transition: 0.3s;
  margin-right: 10px;
}
.contact .info .social-links a:hover {
  background: #B9002F;
  color: #fff;
}
.contact .info .email:hover i, .contact .info .address:hover i, .contact .info .phone:hover i {
  background: #B9002F;
  color: #fff;
}
.contact .php-email-form {
  width: 100%;
  padding: 30px;
  background: #fff;
  box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.12);
}
.contact .php-email-form .form-group {
  padding-bottom: 8px;
}
.contact .php-email-form .validate {
  display: none;
  color: red;
  margin: 0 0 15px 0;
  font-weight: 400;
  font-size: 13px;
}
.contact .php-email-form .error-message {
  display: none;
  color: #fff;
  background: #ed3c0d;
  text-align: left;
  padding: 15px;
  font-weight: 600;
}
.contact .php-email-form .error-message br + br {
  margin-top: 25px;
}
.contact .php-email-form .sent-message {
  display: none;
  color: #fff;
  background: #18d26e;
  text-align: center;
  padding: 15px;
  font-weight: 600;
}
.contact .php-email-form .loading {
  display: none;
  background: #fff;
  text-align: center;
  padding: 15px;
}
.contact .php-email-form .loading:before {
  content: "";
  display: inline-block;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  margin: 0 10px -6px 0;
  border: 3px solid #18d26e;
  border-top-color: #eee;
  -webkit-animation: animate-loading 1s linear infinite;
  animation: animate-loading 1s linear infinite;
}
.contact .php-email-form .form-group {
  margin-bottom: 15px;
}
.contact .php-email-form label {
  padding-bottom: 8px;
}
.contact .php-email-form input, .contact .php-email-form textarea {
  border-radius: 0;
  box-shadow: none;
  font-size: 14px;
}
.contact .php-email-form input {
  height: 44px;
}
.contact .php-email-form textarea {
  padding: 10px 15px;
}
.contact .php-email-form button[type=submit] {
  background: #B9002F;
  border: 0;
  padding: 10px 24px;
  color: #fff;
  transition: 0.4s;
  border-radius: 4px;
}
.contact .php-email-form button[type=submit]:hover {
  background: #37b3ed;
}
@-webkit-keyframes animate-loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes animate-loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/*--------------------------------------------------------------
# Breadcrumbs
--------------------------------------------------------------*/
.breadcrumbs {
  padding: 20px 0;
  background: #f9f9f9;
}
.breadcrumbs h2 {
  font-size: 26px;
  font-weight: 300;
}
.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 15px;
}
.breadcrumbs ol li + li {
  padding-left: 10px;
}
.breadcrumbs ol li + li::before {
  display: inline-block;
  padding-right: 10px;
  color: #0e2442;
  content: "/";
}
@media (max-width: 768px) {
  .breadcrumbs .d-flex {
    display: block !important;
  }
  .breadcrumbs ol {
    display: block;
  }
  .breadcrumbs ol li {
    display: inline-block;
  }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
#footer {
  padding: 15px;
  color: #f4f6fd;
  font-size: 14px;
  position: fixed;
  left: 0;
  bottom: 0;
  width: 300px;
  z-index: 9999;
  /*background: #040b14;*/
}
#footer .copyright {
  text-align: center;
  font-size: 0.8em;
}
#footer .credits {
  padding-top: 5px;
  text-align: center;
  font-size: 13px;
  /*color: #eaebf0;*/
}
@media (max-width: 1199px) {
  #footer {
    position: static;
    width: auto;
    padding-right: 20px 15px;
  }
}
















/*--------------------------------------------------------------
# HDF
--------------------------------------------------------------*/
.funkyradio { margin: 15px 0; }

.funkyradio div {
  clear: both;
  overflow: hidden;
}

.funkyradio label {
  width: 100%;
  border-radius: 0;
  border: 1px solid #D1D3D4;
  font-weight: normal;
}

.funkyradio input[type="radio"]:empty,
.funkyradio input[type="checkbox"]:empty {
  display: none;
}

.funkyradio input[type="radio"]:empty ~ label,
.funkyradio input[type="checkbox"]:empty ~ label {
  position: relative;
  line-height: 2.5em;
  margin-top: 1em;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.funkyradio input[type="radio"]:empty ~ label:before,
.funkyradio input[type="checkbox"]:empty ~ label:before {
  position: absolute;
  display: block;
  top: 0;
  bottom: 0;
  left: 0;
  content: '';
  width: 2.5em;
  background: #D1D3D4;
  border-radius: 3px 0 0 3px;
}

.funkyradio input[type="radio"]:hover:not(:checked) ~ label,
.funkyradio input[type="checkbox"]:hover:not(:checked) ~ label {
  color: #888;
}

.funkyradio input[type="radio"]:hover:not(:checked) ~ label:before,
.funkyradio input[type="checkbox"]:hover:not(:checked) ~ label:before {
  content: '\2714';
  text-indent: .9em;
  color: #C2C2C2;
}

.funkyradio input[type="radio"]:checked ~ label,
.funkyradio input[type="checkbox"]:checked ~ label {
  color: #777;
}

.funkyradio input[type="radio"]:checked ~ label:before,
.funkyradio input[type="checkbox"]:checked ~ label:before {
  content: '\2714';
  text-indent: .9em;
  color: #333;
  background-color: #ccc;
}

.funkyradio input[type="radio"]:focus ~ label:before,
.funkyradio input[type="checkbox"]:focus ~ label:before {
  box-shadow: 0 0 0 3px #999;
}

.funkyradio-danger input[type="radio"]:checked ~ label:before,
.funkyradio-danger input[type="checkbox"]:checked ~ label:before {
  color: #fff;
  background-color: #B9002F;
}

p.hdfp{ padding-left: 15%; }
#hdf.passed{ background-color: #32cd32; }
#hdf.failed{ background-color: #ff0000; }

p#hdf_msg{
	font-size: 2em;
    color: #ff0000;
    font-weight: bold;
    background-color: #efefef;
    text-align: center;
}


/*--------------------------------------------------------------
# score
--------------------------------------------------------------*/
.score .total_score{ text-align: center; line-height: 10em; }
.score .total_score span{ background-color: #B9002F;  text-align: center; font-size: 3em; color: #fff; font-weight: bold; padding: 15px; }
.score .info-item span{ background-color: #333; color: #fff; padding: 5px; }

/*--------------------------------------------------------------
# timer
--------------------------------------------------------------*/
.timer {
  margin: 0 0 45px;
  font-family: sans-serif;
  color: #fff;
  display: inline-block;
  font-weight: 100;
  text-align: center;
  font-size: 30px;
}
.timer div {
  padding: 10px;
  border-radius: 3px;
  background: #000000;
  display: inline-block;
  font-family: Oswald;
  font-size: 26px;
  font-weight: 400;
  width: 80px;
}
.timer .smalltext {
  color: #888888;
  font-size: 12px;
  font-family: Poppins;
  font-weight: 500;
  display: block;
  padding: 0;
  width: auto;
}
.timer #time-up {
  margin: 8px 0 0;
  text-align: left;
  font-size: 14px;
  font-style: normal;
  color: #000000;
  font-weight: 500;
  letter-spacing: 1px;
}


/*--------------------------------------------------------------
# datatable
--------------------------------------------------------------*/
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_paginate .paginate_button
{ border-radius: 0 !important; }
.dataTables_length{ float: right !important; }
#infomation_wrapper input{ width: 85%; }
#infomation_wrapper label{ width: 100%; float: left; margin: 5px 0; }
#infomation_filter, #infomation_info, #infomation_paginate{ width:100%; }

#ranking h3{ background-color: #eee; padding: 15px; margin: 15px 0; }
