/* If has preset, use preset, otherwise use style inline css. Reference: Tailwind
w: width - (a)uto, (z)ero, (t)iny, (s)mall, (m)edium, (l)arge, (w)ide, (f)ull/fluid, fit-(c)ontent, ma(x)-content, m(i)n-content, stretc(h)
h: height - (a)uto, (z)ero, (t)iny, (s)mall, (m)edium, (l)arge, (f)ull, fit-(c)ontent, ma(x)-content, m(i)n-content, stretc(h)  (height: clamp(200px, anchor-size(width)); minmax(min-content, anchor-size(width)); fit-content(20em);)
mhz/mhf: max-height: 0, max-height: 100vh - used for height transition
The min-height and max-height properties override height.

mts: margin top/bottom/left/right/horizontal/vertical small, medium, large, sx, sxx, lx, lxx
ps: padding top/bottom/left/right/horizontal/vertical small, medium, large, sx, sxx, lx, lxx

bws: border color/width/radius small, medium, large
ows: outline color/width/(NO radius) small, medium, large 

st: text-shadow
sb: box-shadow

cb: color gray/black/white/1/2/3/off 1/auto depending on background
chb: color hover black...
bgn: background none/black/white/1/2/3/gradient 1 2 3/off 1
(? opacity/blur)bgwt: background white transparent
bghb: background color hover black...

//https://developer.mozilla.org/en-US/docs/Web/CSS/font
h1-h6,p,a
f1-f3: font-family
fsx/s/m/l/lx: font-size
fw3/4/5/6/7/8/9: font-weight
line-height: s/m/l - default is set in body - 1.4
text-transform: none/capitalize/uppercase/lowercase
text-decoration: underline/underline (d)otted/(w)avy underline/underline overline
(use inline css)font-style/font-variant/font-stretch/letter-spacing/text attributes https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_text


hc: horizontal center  (justify-content: center; for grid/flex)
vc: vertical center
tc/tr/tj: text-align center/right/justify

l/r/lh/rh/la/ra: left/right/left half width/right auto width
rl/ab/fx/sk/sks: relative/absolute/fixed/sticky/sks - sticky with scroll effect (fixed/sticky must use conjunction with top/bottom/left/right)
tp/bm/bm100/lt/rt: top/bottom/bottom100%/left/right
hd/bo/in/ib/vi/iv:hide/block/inblock/visible/invisible

of/ofx/ofy/ofs/ofh: auto/x-auto/y-auto/Hide scrollbar/overflow scroll

ts/tss:transition slow (transition not work for "display" rule, use transform, visibility, opacity)

tfxz/tfxc/tfxl/tfxr//tfyz/tfym/tfyt/tfyb : transform: translateX-zero/center/left/right, transform: translateY - zero/middel/top/bottom

opz/op1/op2/op8/op9/op: opacity zero/0.1/0.9/1


z1-5: z-index 100-500 - left&bottom nav 5, modal 4, overlay 1, 

tb: display: table
flex
grid


https://www.designcise.com/web/tutorial/how-to-fix-issues-with-css-position-sticky-not-working 
width: clamp(min(100%, 276px), 50%, max(90vw, 55rem));



*/


/* Web safe fonts
 @ Helvetica is not one of the web-safe fonts. It is included on Macs but not on Windows PCs. https://ux.stackexchange.com/questions/94892/is-helvetica-considered-a-web-safe-font
 @ Helvetica Neue, Montserrat, [v]Courier New, Playfair Display, Source Sans Pro, Raleway, Lato, Roboto, Futura, Merriweather, Oswald, Bebas Neue
*/
:root {
    --c1: #9B03CE;/*#363964  #F8E7E7 rgb(240,128,128)*/
    --c2: purple;/*#53FBF6  rgb(240,128,128)*/
	--c3: green;/*#7a00df  rgb(240,128,128)*/
	--cbw: black;/*black or white depends on c1*/
	--g1: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);/*#363964*/
    --g2: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);
	--g3: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);
	--ms: 1rem;
	--mm: 3rem;
	--ml: 8rem;
	--ps: 1rem;
	--pm: 3rem;
	--pl: 5rem;
	--plx: 8rem;
	--f1: "Helvetica", Arial, Verdana;
    --f2: "Helvetica", Arial, Verdana;
	--f3: "Helvetica", Arial, Verdana;
	--fsx: clamp(0.8rem, 1vw, 0.8rem);
	--fs: clamp(1rem, 1.2vw, 1.2rem);
	--fm: clamp(1.2rem, 2vw, 1.5rem);
	--fl: clamp(1.5rem, 3vw, 2rem);
	--flx: clamp(3rem, 6vw, 4rem);
	--flxx: clamp(5rem, 5vw, 8rem);
}


fieldset {
	background-color: white;
	border: 0px solid black;
	border-radius: 28px;
	margin: 18px 0;
	padding: 28px;
}
legend {
	font-size: 3rem;
	font-weight: 700;
}
/*
input {
	font-size: 1rem;
	height: auto;
	width: 100%;
	max-width: 288px;
	padding: 3px 8px;
	background: none;
	border-top: 0px solid #f8a100;
  border-right: 0px solid #f8a100;
  border-left: 0px solid #f8a100;
	border-bottom: 2px solid black;
	border-radius: 0px;
    outline: 0px solid transparent;
}
input:focus {
	background-color: #fff;
	border-bottom: 2px solid var(--c1);
    outline: 0px solid purple
}
input[type=submit] {
	font-size: 1.8rem;
	font-weight: 700;
	height: 3.8rem;
	border-radius: 28px;
	padding: 8px 18px 8px 18px;
}
*/

input[type=radio], input[type=checkbox] {
	height: 1.8rem;
	width: 1.8rem;
	margin: 0;
    border: 0px solid black;
	border-radius: 0px;
    outline: 0px solid transparent;
}
input[type=date] {
	height: 35px;
    border: 2px solid black;
	border-radius: 18px;
    outline: 1px solid transparent;
}
input[type=color] {
	height: 28px;
	width: 38px;
	border-radius: 18px;
	padding: 3px 8px;
}
textarea {
	overflow: auto;
	word-break: break-all;
}
select {
	font-size: 1.2rem;
	border: 0;
	border-bottom: 2px solid #181818;
	padding: 3px 5px;
}
option {
	font-size: 1.3rem;
	background-color: #fff;
	border-radius: 0px;
	padding: 8px 18px;
}
select option:hover {
	color: purple;
	font-size: 1rem;
	background-color: #ddd;
	border-radius: 8px;
	padding: 8px 18px;
}



/*
.label-right {
float: left;
width: 10em;
margin-right: 1em;
text-align: right;
}

.reveal-if-active {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  font-size: 16px;
  transform: scale(0.8);
  transition: 0.5s;
}
input[type="radio"]:checked ~ .reveal-if-active,
input[type="checkbox"]:checked ~ .reveal-if-active {
	opacity: 1;
	max-height: 1000px;
	padding: 10px 20px;
	transform: scale(1);
	overflow: visible;
}
*/

.input {
  display: flex;
  flex-direction: column-reverse;
  position: relative;
  padding-top: 1.5rem;
}
.input + .input {
  margin-top: 1.5rem;
}

.input-label {
  color: #6658d3;
  position: absolute;
  top: 0;
  transition: 0.25s ease;
}

.input-field {
  border: 0;
  z-index: 1;
  background-color: transparent;
  border-bottom: 1px solid #888;
  font: inherit;
  font-size: 1.125rem;
  padding: 0.25rem 0;
  transition: 0.25s ease;
}
.input-field:focus {
  outline: 0;
  border-bottom-color: #6658d3;
}
.input-field:focus + .input-label {
  color: #6658d3;
  /*transform: translateY(-1.5rem);*/
}



/*
form .input-data{
  width: 100%;
  height: 2.5rem;
  margin: 0 0;
  position: relative;
}
form .textarea{
  height: auto;
}
.input-data input,
.textarea textarea{
  display: block;
  background: none;
  padding: 0 0;
  width: 100%;
  height: 100%;
  font-size: 1.4rem;
  border-width: 0;
  border-bottom: 2px solid rgba(0,0,0, 0.12);
}
input:focus, textarea:focus {
	
	outline: 0px solid purple
}
.input-data input:focus ~ label, .textarea textarea:focus ~ label,
.input-data input:valid ~ label, .textarea textarea:valid ~ label,
.input-data input:user-valid ~ label,
.input-data input:placeholder-shown ~ label
 {
  transform: translateY(-20px);
  font-size: 1.2rem;
  color: var(--c1);
}
.textarea textarea{
  resize: none;
  padding-top: 10px;
}
.input-data label{
  position: absolute;
  pointer-events: none;
  bottom: 10px;
  font-size: 1.4rem;
  transition: all 0.3s ease;
}
.textarea label{
  width: 100%;
  height: 1.4rem;
  top: 0px;
}
.input-data .underline{
  position: absolute;
  bottom: 0;
  height: 2px;
  width: 100%;
}
.input-data .underline:before{
  position: absolute;
  content: "";
  height: 2px;
  width: 100%;
  background: var(--c1);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
}
.input-data input:focus ~ .underline:before,
.input-data input:valid ~ .underline:before,
.textarea textarea:focus ~ .underline:before,
.textarea textarea:valid ~ .underline:before{
  transform: scale(1);
}
*/


html,body {
	padding: 0 0;
	margin: 0 0;
	font-family: var(--f1);
	color: #181818;
	/*font-size: 1vw; Make font size responsive to the screen size */
	font-size: 12px;
	
	line-height: 1.5;
	letter-spacing: 0.6px;
	height:100%;
	overflow: auto;
}

/* https://blog.csdn.net/weixin_43312083/article/details/100170319 */


* {
	box-sizing: border-box
}

.bs {
	box-sizing: border-box
}






img {
	vertical-align: middle
}

h1,h2,p {
	padding: 0 0;
	margin: 0.8rem 0;
}
/*
h1 {
	font-size: var(--flx);
	font-weight: 800
}
h2 {
	font-size: var(--fl);
	font-weight: 700
}
h3 {
	font-size: var(--fm);
	font-weight: 700
}
h4 {
	font-size: var(--fm);
	font-weight: 600
}
h5 {
	font-size: var(--fs);
	font-weight: 600
}
h6 {
	font-size: var(--fsx);
	font-weight: 600
}
p {
	font-size: var(--fs)
}
*/
a {
	color: var(--c1)
}
a:link {
	color: var(--c1)
}
/* 
a:visited {
	color: var(--c2)
} */
a:hover {
	color: var(--c2)
}
a:active {
	color: var(--c2);
	background-color: var(--c2)
}

button {
    cursor: default;
    box-sizing: border-box;
    border-width: 0;
}

ul.nb {/*no-bullets*/
  list-style-type: none; /* Remove bullets */
  padding: 0; /* Remove padding */
  margin: 0; /* Remove margins */
  
  li:hover {
	  cursor: pointer;
	}
}

.cp {
	cursor: pointer;
}

.wa {
	width: auto
}
.wz {
	width: 0
}
.wt {
	width: 20%
}
.ws {
	width: 35%
}
.wm {
	width: 50%
}
.wl {
	width: 80%
}
.ww {
	width: 90%
}
.wf {
	width: 100%
}
.wv {
	width: 100vw
}
.wc {
	width: fit-content
}

.mos {/* show @mobile */
	display: none
}



.ha {
	height: auto
}
.hz {
	height: 0
}
.hs {
	height: 30vh
}
.hm {
	height: 70vh
}
.hl {
	height: 90vh
}
.hf {
	height: 100vh
}

.mhz {
	max-height: 0
}
.mhf {
	max-height: 100vh
}

.ms {
	margin: var(--ms)
}
.mm {
	margin: var(--mm)
}
.ml {
	margin: var(--ml)
}
.mts {
	margin-top: var(--ms)
}
.mtm {
	margin-top: var(--mm)
}
.mtl {
	margin-top: var(--ml)
}
.mbs {
	margin-bottom: var(--ms)
}
.mbm {
	margin-bottom: var(--mm)
}
.mbl {
	margin-bottom: var(--ml)
}
.mvs {
	margin-top: var(--ms);
	margin-bottom: var(--ms)
}
.mvm {
	margin-top: var(--mm);
	margin-bottom: var(--mm)
}
.mvl {
	margin-top: var(--ml);
	margin-bottom: var(--ml)
}
.mhs {
	margin-left: var(--ms);
	margin-right: var(--ms)
}
.mhm {
	margin-left: var(--mm);
	margin-right: var(--mm)
}
.mhl {
	margin-left: var(--ml);
	margin-right: var(--ml)
}

.ps {
	padding: var(--ps)
}
.pm {
	padding: var(--pm)
}
.pl {
	padding: var(--pl)
}
.pvs {
	padding-top: var(--ps);
	padding-bottom: var(--ps)
}
.pvm {
	padding-top: var(--pm);
	padding-bottom: var(--pm)
}
.pvl {
	padding-top: var(--pl);
	padding-bottom: var(--pl)
}
.pvlx {
	padding-top: var(--plx);
	padding-bottom: var(--plx)
}
.phs {
	padding-left: var(--ps);
	padding-right: var(--ps)
}
.phm {
	padding-left: var(--pm);
	padding-right: var(--pm)
}
.phl {
	padding-left: var(--pl);
	padding-right: var(--pl)
}

.bcb {
	border-color: black
}
.bcw {
	border-color: white
}
.bc1 {
	border-color: var(--c1)
}
.bc2 {
	border-color: var(--c2)
}
.bc3 {
	border-color: var(--c3)
}
.bws {
	border-style: solid;
	border-width: 1px
}
.bwm {
	border-style: solid;
	border-width: 2px
}
.bwl {
	border-style: solid;
	border-width: 3px
}
.brs {
	border-radius: 6px
}
.brm {
	border-radius: 1.2rem
}
.brl {
	border-radius: 3rem
}
.brr {
	border-radius: 50%
}
.ocb {
	outline-color: black
}
.ocw {
	outline-color: white
}
.oc1 {
	outline-color: var(--c1)
}
.oc2 {
	outline-color: var(--c2)
}
.oc3 {
	outline-color: var(--c3)
}
.ows {
	outline-style: solid;
	outline-width: 1px
}
.owm {
	outline-style: solid;
	outline-width: 2px
}
.owl {
	outline-style: solid;
	outline-width: 3px
}

.st {
	text-shadow: 2px 2px 3px gray
}
.sb {
	-webkit-box-shadow: 1px 2px 5px 2px rgba(0, 0, 0, 0.1);
	box-shadow: 1px 2px 5px 2px rgba(0, 0, 0, 0.1)
}

.cg {
	color: gray
}
.cb {
	color: black !important
}
.cbh:hover {
	color: black !important
}
.cw {
	color: white !important
}
.cwh:hover {
	color: white !important
}

/*
https://publishing-project.rivendellweb.net/lightening-and-darkening-colors-with-css/
https://geek-docs.com/css/css-ask-answer/269_css_dynamically_change_color_to_lighter_or_darker_by_percentage_css.html
https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark
https://codepen.io/xboxyan/pen/bGjVbGj
https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark
https://bryanlrobinson.com/blog/how-to-css-after-elements-for-background-overlays/
*/
/*
.clt {
	color: color-mix(in srgb, var(--c1) 10%, white);
}

@supports not (background-color: color-mix(in srgb, var(--c1) 30%, white)) {
	.bglt {
		background-color: var(--c1);
	}
	.bglt::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-image: linear-gradient(120deg, #eaee44, #33d0ff);
		opacity: .3;
		z-index: -1;
	}
}
@supports (background-color: color-mix(in srgb, var(--c1) 30%, white)) {
  .bglt {
		background-color: color-mix(in srgb, var(--c1) 30%, white);
	}
}

.caXX {
	color: var(--c2);
	--bgx: var(--c1);
    background: var(--bgx);
    color: color-contrast(var(--bgx) vs #fff, #000);
	
}
.ca {
	color: white;
}
@supports (mix-blend-mode: difference) and (not (filter: grayscale(1))) {
	.ca {
		color: white;
		mix-blend-mode: difference;
	}
}
@supports (filter: grayscale(1)) {
	.ca {
		color: var(--c1);
		filter: grayscale(1) contrast(9999) invert(1);
	}
}
*/

.cbw {
	color: var(--cbw)
}
.ca {
	color: var(--cbw)
}
.c1 {
	color: var(--c1) !important
}
.c1h:hover {
	color: var(--c1) !important
}
.c2 {
	color: var(--c2) !important
}
.c2h:hover {
	color: var(--c2) !important
}
.c3 {
	color: var(--c3) !important
}
.c3h:hover {
	color: var(--c3) !important
}

.cg1 {
	color: var(--g1)
}
.cg2 {
	color: var(--g2)
}
.cg3 {
	color: var(--g3)
}

.bgn {
	background: none
}
.bgo {/*off*/
	background: #DFE0F0
}
.bgb {
	background-color: black
}
.bgbh:hover {
	background-color: black
}
.bgbt {
	background-color: rgba(0,0,0,.6);
	backdrop-filter: blur(3px);
}
.bgw {
	background-color: white
}
.bgwh:hover {
	background-color: white
}
.bgwt {
	background-color: rgba(255,255,255,.2);
	backdrop-filter: blur(6px);
}
.bg1 {
	background-color: var(--c1)
}
.bg1h:hover {
	background-color: var(--c1)
}
.bg2 {
	background-color: var(--c2)
}
.bg2h:hover {
	background-color: var(--c2)
}
.bg3 {
	background-color: var(--c3)
}
.bg3h:hover {
	background-color: var(--c3)
}
.bgg1 {
	background: var(--g1)
}
.bgg1h:hover {
	background: var(--g1)
}
.bgg2 {
	background: var(--g2)
}
.bgg2h:hover {
	background: var(--g1)
}
.bgg3 {
	background: var(--g3)
}
.bgg3h:hover {
	background: var(--g1)
}

.f1 {
	font-family: var(--f1);
}
.f2 {
	font-family: var(--f2);
}
.f3 {
	font-family: var(--f3);
}
.fsx {
	font-size: var(--fsx)
}
.fs {
	font-size: var(--fs)
}
.fm {
	font-size: var(--fm)
}
.fl {
	font-size: var(--fl)
}
.flx {
	font-size: var(--flx)
}
.flxx {
	font-size: var(--flxx)
}
.fw1 {
	font-weight: 100
}
.fw3 {
	font-weight: 300
}
.fw5 {
	font-weight: 500
}
.fw6 {
	font-weight: 600
}
.fw7 {
	font-weight: 700
}
.fw8 {
	font-weight: 800
}
.fw9 {
	font-weight: 900
}
.lhs {
	line-height: 0.9
}
.lhm {
	line-height: 1.1
}
.lhl {
	line-height: 1.8
}
.ttn {
	text-transform: none
}
.ttc {
	text-transform: capitalize
}
.ttu {
	text-transform: uppercase
}
.ttl {
	text-transform: lowercase
}
.tdn {
	text-decoration: none
}
.tdl {
	text-decoration: line-through
}
.tdu {
	text-decoration: underline
}
.tduo {
	text-decoration: underline dotted
}
.tdud {
	text-decoration: underline dashed
}
.tduw {
	text-decoration: underline wavy
}


.hc {
	margin-left: auto;
	margin-right: auto
}
.hct {
	left: 50%;
	-ms-transform: translateX(-50%, 0%);
	transform: translate(-50%, 0%);
}
.vc {
	position: absolute;
	top: 50%;
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}
.vhc {
	position: absolute;
	top: 50%; 
	left: 50%; 
	transform: translate(-50%, -50%);
}
.vhcf {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.tc {
	text-align:center
}
.tl {
	text-align:left
}
.tr {
	text-align:right
}
.tj {
	text-align:justify
}

.rl {/*relative*/
	position: relative
}
.ab {/*absolute*/
	position: absolute
}
.fx {
	position: fixed
}
.sk {
	position: -webkit-sticky;
	position: sticky
}
.sks {/* sticky with scroll effect*/
	position: -webkit-sticky;
	position: sticky;
	top: 0px
}
.sksb {/* sticky with scroll effect bottm*/
	position: -webkit-sticky;
	position: sticky;
	top: 90%
}

.tp {
	top: 0
}
.bm {
	bottom: 0
}
.bm100 {
	bottom: 100%
}
.l { 
  float: left;
  clear: both
}
.r { 
  float: right;
  clear: both
}
.lh {/*left half*/
  position: absolute;
  left: 0px;
  width: 50%
}
.rh {
  position: absolute;
  right: 0px;
  width: 50%
}
.la {/*left auto*/
  position: absolute;
  left: 0px;
  width: auto
}
.ra {
  position: absolute;
  right: 0px;
  width: auto
}
.lt {
	left: 0
}
.rt {
	right: 0
}
/*
.bottom-left {
  position: absolute;
  bottom: 8px;
  left: 16px
}
.top-left {
  position: absolute;
  top: 8px;
  left: 16px
}
.top-right {
  position: absolute;
  top: 8px;
  right: 16px
}
.bottom-right {
  position: absolute;
  bottom: 8px;
  right: 16px
}
*/

.overlay1::after {
  background-image: linear-gradient(to top right, #1a1a1a, transparent);
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  opacity: 1;
  transition: .5s ease;
  backdrop-filter: blur(0px);
}

.overlay2 {
	position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(120deg, #000, #888);
    opacity: .7;
}
/*bg-overlay*/
.olb::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(120deg, #000, #888);
    opacity: .7;
}
/*fg-overlay*/
.olf::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: black;
    opacity: .4;
}

.hd {/*hide*/
	display: none
}
@media screen and (max-width: 576px) {
	.hdm {/*hide on mobile*/
		display: none
	}
}
/*.hdv {hide through - transition not work for display - DO NOT use this - use "wz iv" instead
	visibility: hidden;
	width: 0
}*/
.bo {/*block*/
	display: block
}
.in {/*inline*/
	display: inline
}
.ib {/*inblock*/
	display: inline-block
}
.vi {/*invisible*/
	visibility: visible
}
.iv {/*invisible*/
	visibility: hidden
}

.of {/*overflow auto*/
  overflow: auto
}
.ofx {
  overflow-x: auto
}
.ofy {
  overflow-y: auto
}
.ofhd {
  overflow: hidden
}
/* Hide scrollbar for Chrome, Safari and Opera 
https://www.w3schools.com/howto/howto_css_hide_scrollbars.asp
*/
.ofh::-webkit-scrollbar {
  display: none
}
/* Hide scrollbar for IE, Edge and Firefox */
.ofh {/*overflow scroll Hide scrollbar*/
  overflow: scroll;
  -ms-overflow-style: none;  /* IE and Edge */
  scrollbar-width: none;  /* Firefox */
}
.ofs {/*overflow scroll*/
  overflow: scroll
}

.ts {
	transition: all .6s
}
.tsf {/* transition fast */
	transition: all .3s
}
.tss {/* transition slow */
	transition: all 2s
}
.fade {
	transition: all 1.2s ease-out;
}

.tfxz {
	transform: translateX(0%)
}
.tfxc {
	transform: translateX(50%)
}
.tfxl {
	transform: translateX(-100%)
}
.tfxr {
	transform: translateX(100%)
}
.tfyz {
	transform: translateY(0%)
}
.tfym {
	transform: translateY(50%)
}
.tfyt {
	transform: translateY(-100%)
}
.tfyb {
	transform: translateY(100%)
}

.op {
	opacity: 1
}
.opz {
	opacity: 0
}
.op1 {
	opacity: .1
}
.op2 {
	opacity: .2
}
.op8 {
	opacity: .8
}
.op9 {
	opacity: .9
}

.z1n {
	z-index:-100
}
.z1 {
	z-index:100
}
.z2 {
	z-index:200
}
.z3 {
	z-index:300
}
.z4 {
	z-index:400
}
.z5 {
	z-index:500
}

.tb {/* table */
	display: table;
}


/* https://css-tricks.com/snippets/css/a-guide-to-flexbox/ */
/*.stack {
	flex-direction: column;
    align-items: flex-start;
}*/
.flex {/* flex */
  display: flex; /* or inline-flex */
}
.flex-rr {/* row is default */
  flex-direction: row-reverse
}
.flex-c {
  flex-direction: column
}
.flex-cr {
  flex-direction: column-reverse
}
.flex-w {/* nowrap is default */
  flex-wrap: wrap
}
.flex-wr {
  flex-wrap: wrap-reverse
}
.flex-e {/* equal width */
  flex-grow: 1
}


.grid {
	display: grid
}
.grid-test {
	grid-template-columns: repeat(auto-fit, minmax(58px, 1fr))
}
.grid-sxx {
	grid-template-columns: repeat(auto-fit, minmax(88px, 1fr))
}
.grid-sx {
	grid-template-columns: repeat(auto-fit, minmax(118px, 1fr))
}
.grid-s {
	grid-template-columns: repeat(auto-fit, minmax(188px, 1fr))
}
.grid-m {
	grid-template-columns: repeat(auto-fit, minmax(288px, 1fr))
}
.grid-l {
	grid-template-columns: repeat(auto-fit, minmax(388px, 1fr))
}
.grid-lx {
	grid-template-columns: repeat(auto-fit, minmax(488px, 1fr))
}
.grid-lxx {
	grid-template-columns: repeat(auto-fit, minmax(888px, 1fr))
}

.jc-s {/* horizontal, start is default */
  justify-content: flex-start
}
.jc-e {
  justify-content: flex-end
}
.jc-c {
  justify-content: center
}
.jc-sb {
  justify-content: space-between
}
.jc-sa {
  justify-content: space-around
}
.jc-se {
  justify-content: space-evenly
}
.ai-s {/* vertical, stretch is default */
  align-items: flex-start
}
.ai-e {
  align-items: flex-end
}
.ai-c {
  align-items: center
}
.ai-b {
  align-items: baseline
}
.ac-s {/* horizontal & vertical, normal is default */
  align-content: flex-start
}
.ac-e {
  align-content: flex-end
}
.ac-c {
  align-content: center
}
.ac-t{
  align-content: stretch
}
.ac-sb {
  align-content: space-between
}
.ac-sa {
  align-content: space-around
}
.ac-se {
  align-content: space-evenly
}
.gpsxx {/*gap, row-gap, column-gap*/
  gap: 1px
}
.gpsx {
  gap: 0.2rem
}
.gps {
  gap: 0.3rem
}
.gpm {
  gap: 1rem
}
.gpl {
  gap: 3rem
}
.gplx {
  gap: 5rem
}
.gplxx {
  gap: 8rem
}
.gp-rs {
  row-gap: 1rem
}
.gp-rm {
  row-gap: 3rem
}
.gp-rl {
  row-gap: 8rem
}
.gp-cs {
  column-gap: 0.6rem
}
.gp-cm {
  column-gap: 3rem
}
.gp-cl {
  column-gap: 8rem
}
.flex-equal {
  flex: 1 1 0%
}
.flex-1v2 {
  flex: 1 2 0%
}
@media (max-width: 577px) {
  .flex-equal, .flex-1v2 {
	  flex: 100%;
	}
}

.dpn {
  display: none	
}

@media screen and (max-width: 1200px) {
	
}
@media screen and (max-width: 992px) {
	
}
@media screen and (max-width: 768px) {
	.wa, .ws, .wm, .wl, .ww {
		width: 90%
	}
}
@media screen and (max-width: 576px) {
	.wt {
		width: 30%
	}
	.wa, .ws, .wm, .wl, .ww {
		width: 90%
	}
    .wfm {/* width full @mobile */
		width: 100%
	}
	.mos {/* show @mobile */
		display: block
	}
	.moh {/* hide @mobile */
		display: none
	}
	.motc {/* text center @mobile */
		text-align: center
	}
}


.slidesN {
  /* Necessary for mobile scrolling */
  
  /* For layout purposes */
  display: flex;
  /* To allow horizontal scrolling */
  
  
  justify-content: space-between;
}
.ssy-x {
	scroll-snap-type: x mandatory;
}
.ssa-s {
	scroll-snap-align: start;
}
.scroll-x {
	-webkit-overflow-scrolling: touch;
	overflow-x: scroll;
}
.section {
  /* For styling purposes */
  height: 60vh;
  min-height: 60vw;
  min-width: 80vw;
  
  /* Set where the snapping should happen */
  scroll-snap-align: start;
}

.section img {
 
 height: 60vh;
}


/* https://css-tricks.com/complete-guide-table-element/ */
/* https://freefrontend.com/css-tables/ */
table {
  border-collapse: collapse;
  width:100%
}

tbody, tbody tr {
	vertical-align: top;
	
  transition: all 0.3s ease-out;
}
tbody tr:hover {
  background-color: #ffffff
  
}
td, th {
  border: 0px solid #999;
  padding: 1.8rem 0.8rem 1.8rem 0.8rem;
  text-align: left;
}
th {
  font-size: 1.2rem;
  font-weight: 700
}
td {
  font-size: 1rem;
  font-weight: 600
}










.co-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(288px, 1fr));
  background-color: none;
  padding: 0 0;
}

/*
.co-grid .item1 {
  grid-column-start: 2;
  grid-column-end: 3;
}
.co-grid .item2 {
  grid-row-start: 2;
  grid-row-end: 3;
}
*/

.co-grid .co-no-more {
  min-height: 228px;
  font-size: 2.8rem;
  font-weight: 600;
  text-align:center;
  line-height: 2.8rem;
  padding: 18% 8%;
  background-color: white;
}














.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown-content {
  display: none;
  position: absolute;
  z-index: 1;
}
.dropdown:hover > .dropdown-content {
  display: block;
}
.dropdown:hover > .inline {
  display: inline-block;
}







.modal2{
  transform: scale(0.8) translate(0,-100%);
    transition: transform .35s,opacity .35s;
}

.modal3{
  transform:translate(0,100%) scale(.9);
}

.modal4{
  transform:scale(0) rotate(180deg);
}

#modal-open:checked + .modal {
    opacity: 1;
    transform: scale(1);
}

#modal-open2:checked + .modal2{
  transform:scale(1) translate(0,0);
  opacity:1;
}

#modal-open3:checked + .modal3{
  transform:scale(1) translate(0,0);
  opacity:1;
}

#modal-open4:checked + .modal4{
  transform:scale(1) rotate(0deg);
  opacity:1;
}







/*
* https://www.w3schools.com/howto/howto_css_tooltip.asp
*/
/* Tooltip container */
.tooltip {
  position: absolute;
  display: inline-block;
  border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}

/* Tooltip text */
.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  text-align: center;
  padding: 8px 6px;
  border-radius: 6px;

  /* Position the tooltip text */
  position: absolute;
  z-index: 100000000000000;
  bottom: 125%;
  left: 50%;
  margin-left: -60px;

  /* Fade in tooltip */
  opacity: 0;
  transition: opacity 0.3s;
}

/* Tooltip arrow */
.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #555 transparent transparent transparent;
}

/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}











.transition {
  -webkit-transition: width 2s, height 4s; /* Safari */
  transition: width 2s, height 4s;
}

.overlay2 {
	position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(120deg, #000, #888);
    opacity: .7;
}
.bg-overlay::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(120deg, #000, #888);
    opacity: .7;
}
.fg-overlay::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(120deg, #eaee44, #33d0ff);
    opacity: .7;
	@supports (mix-blend-mode: hue) {
        opacity: 1;
        mix-blend-mode: color;
        mix-blend-mode: hard-light;
        mix-blend-mode: hue;
    }
	
	z-index: 2;
}

.modalll {
	position:absolute;
	z-index:999999;
	display: none;
}
.modalll > * {
	position:relative;
    z-index: 100;
}
.display-block {
	display: block;
}

/* The side navigation menu */
.sidenav {
  height: 100%; /* 100% Full-height */
  width: 0; /* 0 width - change this with JavaScript */
  position: fixed; /* Stay in place */
  z-index: 1; /* Stay on top */
  top: 0; /* Stay at the top */
  left: 0;
  background-color: #111; /* Black*/
  overflow-x: hidden; /* Disable horizontal scroll */
  padding-top: 60px; /* Place content 60px from the top */
  transition: 0.5s; /* 0.5 second transition effect to slide in the sidenav */
}

/* The navigation menu links */
.sidenav a {
  padding: 8px 8px 8px 32px;
  text-decoration: none;
  font-size: 25px;
  color: #818181;
  display: block;
  transition: 0.3s;
}

/* When you mouse over the navigation links, change their color */
.sidenav a:hover {
  color: #f1f1f1;
}

/* Position and style the close button (top right corner) */
.sidenav .closebtn {
  position: absolute;
  top: 0;
  right: 25px;
  font-size: 36px;
  margin-left: 50px;
}

/* Style page content - use this if you want to push the page content to the right when you open the side navigation */
#main {
  transition: margin-left .5s;
  padding: 20px;
}

/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */
@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}







.position-left {
  left: -270px;
  top: 0;
  width: 0px;
  height: 100vh;
}
.position-right {
  right: -270px;
  top: 0;
  width: 0px;
  height: 100vh;
}
.position-top {
  left: 0;
  top: 0;
  width: 100%;
  height: 0;
}



.overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background-color: rgba(0,0,0,.3);
  z-index: 90;
  opacity: 0;
  visibility: hidden;
  transition: all 200ms ease-in;
}

.navxxxx {
  width: 100px;
  height: 200px;
  background-color: #262626;
  /*left: -270px;*/
  bottom: 0;
  left: 20%;
  position: fixed;
  /*float: right;*/
  padding: 20px 0;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  transform-origin: center;
  transition: all 200ms ease-in-out;
  z-index: 99;
}


.toggle {
  position: absolute;
  left: 100%;
  background-color: #262626;
  width: 40px;
  height: 40px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  border-top-right-radius: 30px;
  border-bottom-right-radius: 30px;
  cursor: default;
}
.toggle span {
  display: block;
  margin-top: -5px;
}
.logo {
  text-align: center;
  margin-bottom: 30px;
}
.logo  a{
  text-decoration: none;
  color: #888;
  font-size: 30px;
  text-shadow: 0 1px 3px rgba(0,0,0,.6);
  font-family: Arial, Helvetica, sans-serif;
}
.nav ul li {
  display: block;
  list-style: none;
}
.nav ul li a {
  padding: 10px 20px;
  display: block;
  color: #f6f6f6;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  text-decoration: none;
  transition: all 200ms ease;
}
.nav ul li a:hover {
  background-color: #444;
}

/* Show Nav */
.overlay {
  background-color:black;
  opacity: 0;
  visibility: invisible;
}

.show-nav .nav {
  left: 0;
}
.show-nav .overlay {
  opacity: 1;
  visibility: visible;
}

/* Styling the content */
.container  {
  max-width: 1000px;
  margin: 0 auto;
}
.content {
  background-color: #fff;
  margin-top: 100px;
  padding: 20px;
  font-family: Arial, Helvetica, sans-serif;
  box-shadow: 0 1px 2px rgba(0,0,0,.1)
}
.content h1 {
  text-align: center;
  margin-bottom: 30px;
  font-size: 35px;
  color: #333;
}
.content .lead {
  color: #333;
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  line-height: 1.7;
}







#img-zoomer-box {
  max-width: 500px;
  height: auto;
  position: relative;
  margin: 10px auto;
}

#img-1 {
  width: 100%;
  height: auto;
}

#img-zoomer-box:hover, #img-zoomer-box:active {
  cursor: zoom-in;
  display: block;
}

#img-zoomer-box:hover #img-2, #img-zoomer-box:active #img-2 {
  opacity: 1;
}
#img-2 {
  width: 340px;
  height: 340px;
  /*background: url('../img/photo.avif') no-repeat #FFF;*/
  box-shadow: 0 5px 10px -2px rgba(0,0,0,0.3);
  pointer-events: none;
  position: absolute;
  opacity: 0;
  border: 4px solid whitesmoke;
  z-index: 99;
  border-radius: 100%;
  display: block;
  transition: opacity .2s;
}



.active {
  color: var(--c1);
}


/* https://dev.to/selbekk/how-to-overlay-your-background-images-59le */
.image-box {

  /* Here's the trick */
  background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)) , var(--image-url) center center;
  background-size: cover;
}







.loading {
  display: flex;
  justify-content: center;
  margin-top: 30%;

  div {
    width: 1rem;
    height: 1rem;
    margin: 2rem 0.3rem;
    background: var(--c1);
    border-radius: 50%;
    animation: 0.9s bounce infinite alternate;

    &:nth-child(2) {
      animation-delay: 0.3s;
    }

    &:nth-child(3) {
      animation-delay: 0.6s;
    }
  }
}

@keyframes bounce {
  to {
    opacity: 0.3;
    transform: translate3d(0, -1rem, 0);
  }
}


/*https://geek-docs.com/css/css-ask-answer/162_hk_1709764923.html*/
@keyframes countup {
  from {
    counter-reset: increment 0;
  }

  to {
    counter-increment: increment 100;
  }
}
