:root {
  color-scheme: light only;
  --black: #111111;
  --darkgrey: #232323;
  --white: #eeeeee;
  
  --border_s: 30px;
  --border_l: 60px;
  --mainfont: "DM Sans", sans-serif;
  --txt_heading: 25px;
  --txt_slogan: 35px;
  --txt_body: 14px;
  --txt_nav: 18px;
  --txt_l: 25px;
  --txt_s: 16px;

  --p_l: 50px;
  --p_s: 15px;
  --btn: 50px;
}

@media only screen and (max-width: 768px) {
  :root {
    --txt_heading: 20px;
    --txt_slogan: 23px;
    --txt_body: 12px;
    --txt_l: 18px;
    --txt_s: 12px;
    --p_l: 25px;
    --p_s: 15px;
  } 
}

/*---------------------------------------
   COMMON
-----------------------------------------*/
.no_mp{
  margin: 0 !important;
  padding: 0 !important;
}

.w100{
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
}

.w90{
  padding-left: 50px !important;
  padding-right: 50px !important;
}

.h100{
  height: 100%;
  max-height: 100vh;
  max-height: 100svh;
}

.pside{
  padding: 0 5%;
}

.a_ctr{
  display: flex;
  align-items: center !important;
}

.j_ctr{
  display: flex;
  justify-content: center !important;
}

.j_sa{
  display: flex;
  justify-content: space-around;
}

.j_sb{
  display: flex;
  justify-content: space-between;
}

.a_fs{
  display: flex;
  align-items: flex-start;
}
.j_fs{
  display: flex;
  justify-content: flex-start;
}
.a_fe{
  display: flex;
  align-items: flex-end;
}
.j_fe{
  display: flex;
  justify-content: flex-end;
}

.vertical{
  flex-direction: column !important;
  gap: 15px;
}

.t_ctr{
  text-align: center;
}
.t_fs{
  text-align: start;
}
.t_fe{
  text-align: end;
}
.t_break{
  word-break: break-word; 
  overflow-wrap: break-word; 
  hyphens: auto; 
}
@media only screen and (max-width: 500px) {
  .a_fe{
    align-items: unset;
  }
  .t_fe{
    text-align: unset;
  }
}
.t_overflow{
  width: 100%;
  text-wrap: nowrap;
  overflow: hidden !important;
  text-overflow: ellipsis;
}

.xlgap{
  column-gap: var(--p_l);
  row-gap: 10px !important;
}

.biggap{
  gap: var(--p_s);
}
.smallgap{
  gap: 10px;
}
.nogap{
  gap: 0 !important;
  margin: 0 !important;
}

.brd_l{
  border-radius: var(--border_l) !important;
}
.brd_s{
  border-radius: var(--border_s) !important;
}
.brd_btm{
  border-bottom: .5px solid rgba(255, 255, 255, 0.35);
}
.brd_btm.highlight{
  padding-bottom: 10px;
  border-bottom: 1px solid var(--active);
}
.brd_btm.black{
  padding-bottom: 10px;
  border-bottom: 1px solid var(--black);
}
.brd_line{
  border: .5px solid rgba(255, 255, 255, 0.35);
  height: 100%;
  margin: 0;
}

.m_top{
  margin-top: 90px;
}

.scrollY{
  overflow-y: scroll;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
}
.scrollX{
  overflow-x: scroll;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
}

.ovfshow{
  overflow: visible;
}
.ovfhide{
  overflow: hidden;
}

.snap_ctr{
  scroll-snap-align: center;
}
.snap_start{
  scroll-snap-align: start;
}
.snap_end{
  scroll-snap-align: end;
}

.screensize{
  max-width: 100vw !important;
  max-height: 100vh !important;
  max-height: 100svh !important;
  overflow: hidden !important;
}
.fwrap{
  flex-wrap: wrap;
}
.fgrow{
  flex-grow: 1;
}
.fshrink{
  flex-shrink: 1;
}

.wrapdown{
  max-width: 100%;
  flex-wrap: wrap;
  gap: .35rem;
}
.noclick{
  pointer-events: none;
}

.p50{
  padding: var(--p_l);
}
.p50_v{
  padding: var(--p_l) 0;
}
.p50_h{
  padding: 0 var(--p_l);
}
.p50_btm{
  padding-bottom: var(--p_l);
}
.p25{
  padding: var(--p_s); 
}
.p25_v{
  padding: var(--p_s) 0; 
}
.p25_h{
  padding: 0 var(--p_s);
}
.p25_btm{
  padding-bottom: var(--p_s);
}

@media only screen and (max-width: 768px) {
  .w90{
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}

.divider{
  width: 100%;
  border-bottom: 1px solid var(--black);
  grid-column: 1 / -1;
  margin: 25px 0;
}

/*---------------------------------------
   GRID SETTING    
-----------------------------------------*/
.grid_12{
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-gap: 50px;
}
.grid_6{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-gap: 25px;
}
.grid_4{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 5px 25px;
}

.c1{
  grid-column: span 1;
}
.c2{
  grid-column: span 2;
}
.c3{
  grid-column: span 3;
}
.c4{
  grid-column: span 4;
}
.c5{
  grid-column: span 5;
}
.c6{
  grid-column: span 6;
}
.c7{
  grid-column: span 7;
}
.c8{
  grid-column: span 8;
}
.c9{
  grid-column: span 9;
}
.c10{
  grid-column: span 10;
}
.c11{
  grid-column: span 11;
}
.c12{
  grid-column: span 12;
}

@media screen and (max-width: 1080px) {
  .c1,.c2,.c3,.c4,.c5,.c6,.c7,.c8,.c9,.c10,.c11,.c12{
    grid-column: 1 / -1;
  }
  .grid_12,.grid_6,.grid_4{
    grid-gap: unset;
  }
}


/*---------------------------------------
   FONT    
-----------------------------------------*/
h1, .title{
  font-weight: 900;
  font-size: var(--txt_heading);
  line-height: calc(var(--txt_heading) - 2px);
  margin: 0;
}

.title{
  text-transform: uppercase;
  margin-top: 25px;
}

h2, .txt_l{
  font-weight: 600;
  font-size: var(--txt_l);
  line-height: calc(var(--txt_l) + 2px);
}
.title.dark, .txt_l.dark, p.dark{   
  color: var(--white);
}

p, li{
  font-size: var(--txt_body);
  line-height: calc(var(--txt_body) + 5px);
  font-weight: 200;
  text-wrap: pretty;
}
.black{
  color: var(--black);
}
.txt_dark{
  color: var(--active);
}
.highlight{
  color: var(--highlight) !important;
}
.uppercase{
  text-transform: uppercase;
}
.txt_s{
  font-size: var(--txt_s);
  line-height: calc(var(--txt_s) + 2px);
}

.title span, p span,.txt_l span{
  color: var(--active);
}

/*---------------------------------------
   Normalize    
-----------------------------------------*/
body{
  position: relative;
  width: 100%;
  margin: 0px;
  padding: 0px;
  color: var(--white);
  font-size:  var(--txt_s);
  font-weight: 200;
  font-family: var(--mainfont);
  text-wrap: pretty;
  overflow-x: hidden !important;
  background-color: var(--active);
}

section{
  margin: 0;
  padding: 0;
  max-width: 100vw;
  height: fit-content;
  scroll-snap-align: center;
}

.maincontainer{
  width: 100%;
  max-width: 1200px;
  height: 100%;
  margin: auto;
}

.mainwrapper {
  position: relative;
  display: flex;
  width: 100%;
  max-width: 80vw;
  padding: 50px 0;
}

ul, li, a, button{
  color: unset;
  list-style: none;
  text-decoration: none;
  border: none;
  background: none;
  margin: 0;
  padding: 0;
}
li .disc{
  list-style: disc;
  margin-left: 15px;
}
ol li{
  list-style: decimal;
}

input{
  outline: none;
  border: none;
  padding: 0 1rem;
}

body *:focus, :focus-within, :focus-visible, :active{
  outline: none;
  box-shadow: unset !important;
}

table, tbody, td, tfoot, th, thead, tr {
  border: none;
}


.hidden{
  opacity: 0;
  transition: all 1s;
}

.show{
  opacity: 1;
}

.fade:not(.show) {
  opacity: 0;
  display: none;
}


/*---------------------------------------
   Modal       
-----------------------------------------*/
.btn_close.default {
  --btnsize: 35px;
  position: relative;
  width: var(--btnsize);
  height: var(--btnsize);
  cursor: pointer;
  transform-origin: center;
  transition: all .3s;
  left: 50%;
  transform: translateX(calc(-50% - calc(var(--btnsize) / 2))) rotate(45deg);
  margin: 15px;
}
.btn_close.default:hover{
  transform: translateX(calc(-50% - calc(var(--btnsize) / 2))) rotate(225deg);
  transition: all .3s;
}

.btn_close.default::before, .btn_close.default::after{
  content: "";
  position: absolute;
  width: 100%;
  height: 20%;
  background: var(--white);
  top: 50%;
  left: 50%;;
  transform: translateY(-50%) translateX(-50%);
}
.btn_close.default::after{
  width: 20%;
  height: 100%;
}

.btn_close.default:hover::before, .btn_close.default:hover::after{
  background: var(--highlight);
  transition: all .3s;
}

.modal-content{
  background: none !important;
  border: none !important;
}

.modal-backdrop.show {
  opacity: .8;
}


/*---------------------------------------
   FOOTER
-----------------------------------------*/
#footer{
  position: relative;
	color: #707070;
  /* color: var(--white); */
  font-family: var(--mainfont);
	font-size: 12px !important;
  font-weight: 400;
  z-index: 99;
	width: 100%;
  background-image: linear-gradient(to top, #0e0e0e, #111111);
  /* background: var(--black); */
}
#footer img{
  opacity: 40%; 
}
#footer p, #footer a{
  font-weight: 400;
}

#footer.light{
	color: #989898;
  background-image: linear-gradient(to top, #e9e9e9, var(--white));
  /* background: var(--white); */
}
#footer.light img{
  filter: invert(1);
}
#footer.light .brd_btm {
  border-bottom: .5px solid rgba(0, 0, 0, 0.35);
}

#footer.custom{
  background: var(--active);
}

.footer_item{
	gap: 10px;
	font-weight: 100;
  width: fit-content;
}

#footer *{
  font-size: 14px !important;
  font-variation-settings: 'FILL' 1 !important;
}

.footer_item span{
  margin: 2px;
}

#footer a:hover{
	color: cyan;
}

@media screen and (max-width: 1280px) {
  .footer_info{
    flex-direction: column;
    row-gap: 5px;
    max-width: fit-content;
  }
}

@media screen and (max-width: 680px) {
  .footer_tnc .j_fs, .footer_tnc .j_fe, .footer_logo{
    justify-content: center !important;
    width: 100%;
  }
  .footer_wrapper{
    flex-direction: column;
  }
}

@media screen and (max-width: 510px) {
  .footer_infowrapper{
    flex-direction: column;
  }
}