/*!
  * AMORA CSS Beta
  * Minimalist css
  * Project: https://github.com/berrycreative/amoracss
  * Licensed under the MIT license
  * Copyright (c) 2024 Berry Creative
*/

@import url("https://cdn.jsdelivr.net/gh/berrycreative/icobcl@main/icobcl-sn/icobcl-sn.css"); /* Icons Library by ICOBCL */
@import url("badges.css");

:root {
  --color: hsl(205, 20%, 32%);
  --font-color: #252424;
  --bg-color: #FFF;
  --bg-alternative-color: #F3F3F6;
  --bg-secondary: #e9ecef;
  --bg-tertiary: #f8f9fa;
  --bg-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
  --bg-transparent: rgba(0, 0, 0, 0.2);
  --color-primary: #972F65;
  --color-secondary: #6c757d;
  --color-tertiary: rgba(33, 37, 41, 0.5);
  --color-realce: #d5256d;
  --color-lightgray: #EAEAEA;
  --color-gray: #E5E5E5;
  --color-darkgray: #3F4144;
  --color-alternative-gray: #d1d1d1;
  --color-error: #C41E3A;
  --color-success: #28BD14;
  --color-dark: #212529;
  --color-light: #F4F4F4;
  --color-code: #596365;
  --color-amora: #8A4D76;
  --color-amora-alt: #972F65;
  --color-satus: #CEFF00;
  --color-satus-alt: #1a2e44;
  --color-hubb: #00ff43;
  --color-whitesmoke: #F5F5F5;
  --color-highlight: #DFFF00;
  --color-focus: #711A7F;
  --color-btn: #FFFFFF;
  --color-green: #128c7e;
  --font-size: 1rem;
  --line-height: 1.6;
  --outline-width: 3px;
  --spacing: 1rem;
  --grid-spacing-v: 0;
  --grid-spacing-h: var(--spacing);
  --transition: 0.2s ease-in-out;
  --grid-maxWidth: 120rem;
  --grid-gutter: 2rem;
  --border-radius: 0.25rem;
  --border-radius-lg: 0.50rem;
  --border-radius-xl: 1rem;
  --border-radius-xxl: 2rem;
  --border-radius-pill: 50rem;
  --box-shadow: 2px 2px 10px;
  --card: 30rem;
  --card-small: 20rem;
  --card-wide: 50rem;
  --content-width: 80rem;
  --justify-important: center;
  --font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, "Roboto", "Ubuntu", "Fira Sans", "Avenir","Avenir Next", "Segoe UI", "Droid Sans", "Helvetica Neue", sans-serif;
  --font-family-code: monaco, "Menlo", "Roboto Mono", "Ubuntu Monospace", "Consolas", "Lucida Console", monospace;
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: var(--font-size);
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}
     
body.dark {
  --color: hsl(0, 0%, 95%);
  --bg-color: #23252e;
  --bg-alternative-color: #36363F;
  --bg-secondary: #343a40;
  --bg-tertiary: #2b3035;
  --font-color: #F5F5F5;
  --color-primary: #39ff14;
  --color-secondary: rgba(222, 226, 230);
  --color-tertiary: rgba(222, 226, 230, 0.5);
  --color-realce: #D5256D;
  --color-lightgray: #EAEAEA;
  --color-gray: #B3B3B3;
  --color-darkgray: #999;
  --color-whitesmoke: #282828;
  --color-error: #DC143C;
  --color-light: #F1F1F1;
  --color-code: #E0115F;
  --color-highlight: #e3bc5e;
  --color-focus: #a2ff34;
  --color-btn: #25092A;
  --color-amora-alt: #c79ab8;
  --color-green: #25D366;
}
      
body {
  color: var(--font-color);
  background-color: var(--bg-color);
  font-size: var(--font-size);
  font-family: var(--font-family-sans);
  max-width: 68em;
  margin: auto;
  padding: 11px;
}
   
a {
  font-weight: 700;
  text-decoration: none;
  color: var(--color-primary); 
  }
  
a:hover {
  color: var(--color-realce);
}

a.destaq {
  color: var(--color-primary);
  text-decoration: none;
  background-image: linear-gradient(0deg, var(--color-highlight), var(--color-highlight));
  background-position: bottom;
  background-repeat: no-repeat;
  background-size: 100% 10%;
  padding: 2px 2px 0 2px;
}

a.destaq:hover {
  background-size: 100% 100%;
  transition-duration: 200ms;
  border-radius: 2px;
}
 
i:hover {
  color: var(--color-primary);
  border-bottom: none;
}

i:hover a {
  color: unset !important;
  border-bottom: unset !important;
}

.noHover {
  pointer-events: none;
}  

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  line-height: 1.1;
  margin: 0.35em 0 0.7em;
  overflow-wrap: break-word;
  word-wrap: break-word;
  -ms-word-break: break-all;
  word-break: break-word;
}

h1 { 
  font-size: 2.35em;
} 

h2 { 
  font-size: 2.00em; 
} 

h3 { 
  font-size: 1.75em; 
} 

h4 { 
  font-size: 1.5em; 
} 

h5 { 
  font-size: 1.25em; 
} 

h6 { 
  font-size: 1em; 
} 

p {
  margin-top: 0px;
  margin-bottom: 1.5rem;
}

mark {
  background-color: var(--color-highlight);
  border-radius: 2px;
  padding: 0 2px 0 2px;
}

blockquote {
  color: var(--color-darkgray);
  text-align: justify;
  margin-left: 0;
  margin-right: 0;
  padding-left: 1em;
  padding-top: 0.8em;
  padding-bottom: 0.8em;
  padding-right: 1.4em;
  border-left: 5px solid var(--color-primary);
  margin-bottom: 2.5rem;
  background-color: var(--bg-alternative-color); 
}

blockquote p {
  margin-bottom: 0; 
}

cite {
  color: var(--color-focus);
  font-style: italic;
}

small, sub, sup {
  font-size: 0.875em; 
}

sup {
    background-color: var(--color-amora);
    border-radius: var(--border-radius);
    color: var(--color-gray);
    font-weight: bold;
    font-size: 0.875em;
    margin: 0.2rem;
    padding: 0.2rem 0.3rem;
    position: relative;
    top: -2px;
}

hr {
  background-color: var(--color-gray);
  border: none;
  height: 1px;
  margin: 2rem 0;
}

:where(dl, ol, ul) {
  padding-right: 0;
  padding-left: var(--spacing);
  -webkit-padding-start: var(--spacing);
  padding-inline-start: var(--spacing);
  -webkit-padding-end: 0;
  padding-inline-end: 0;
}

ul {
  padding-left: 1.4em;
  margin-top: 0px;
  margin-bottom: 2.5rem; 
}

li {
  margin-bottom: 0.4em; 
}

ul li {
  list-style: square;
}

aside {
  width: 40%;
  padding-left: .5rem;
  margin-left: .5rem;
  float: right;
  border-left: 2px solid var(--color-focus);
  font-style: italic;
}
aside>p {
  margin: .5rem;
}

img {
  height: auto;
  max-width: 100%;
  margin-top: 0px;
  margin-bottom: 2.5rem;
  border-style: none;
}

iframe {
  border: 0;
}

figure {
  margin: 0 0 1rem;
}

.figure {
  display: inline-block;
}

.figure-img {
  margin-bottom: 0.5rem;
  line-height: 1;
}

.figure-caption {
  font-size: 0.875em;
  color: var(--secondary-color);
}

img,
svg {
  vertical-align: middle;
}

.img-circle {
	border-radius: 50%;
}

.img-rounded {
	border-radius: var(--border-radius-xxl);
}

footer,
header,
main {
    margin: 0 auto;
    max-width: var(--grid-maxWidth);
    padding: 3rem 1rem;
}

section {
    display: flex;
    flex-wrap: wrap;
    justify-content: var(--justify-important);
}

section img,
article img {
    max-width: 100%;
}

section pre {
    overflow: auto;
}

section aside {
    border: 1px solid var(--bg-secondary);
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow) var(--color-gray);
    margin: 1rem;
    padding: 1.25rem;
    width: var(--card);
}

section aside:hover {
    box-shadow: var(--box-shadow) var(--bg-secondary);
}

article header,
div header,
main header {
    padding-top: 0;
}

header {
    text-align: var(--justify-important);
}

header a b,
header a em,
header a i,
header a strong {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}


section header {
    padding-top: 0;
    width: 100%;
}

.darkmode {
  position: fixed;
  top: 0;
  right: 0;
  padding: 0 calc((50vw - 50rem) / 2);
  z-index: 999;
}

@media only screen and (max-width: 768px) and (min-width: 320px) {
  .darkmode {
    margin-right: 10px;
  }
}

/*-- Scrollbar -- */

	::-webkit-scrollbar {
		width: 8px;
	  }
	  /* Track */
	  ::-webkit-scrollbar-track {
		background: var(--color-gray) 
	  }
	   
	  /* Handle */
	  ::-webkit-scrollbar-thumb {
		background: var(--color-primary); 
	  }
	  
	  /* Handle on hover */
	  ::-webkit-scrollbar-thumb:hover {
		background: var(--color-realce); 
	  }

/*-- NAVIGATION --*/

.logo {
    position: absolute;
    width: 200px;
    top: 0;
    padding-left: 10px;
    color: var(--color-darkgray);
}

nav {
    height: 60px;
    background: var(--bg-alternative-color);
    border-radius: var(--border-radius-lg);
}

    nav ul li {
        display: inline-block;
        line-height: 60px;
        margin: 0 15px;
    }

        nav ul {
            float: right;
            margin-right: 25px;
        }

            nav ul li a {
                position: relative;
                padding: 10px;
                color: var(--color-primary);
                font-size: 0.875em;
                text-transform: uppercase;
            }
            
            nav ul li a:hover {
                padding: 10px;
                background: var(--color-gray);
                color: var(--color-darkgray);
                border-radius: var(--border-radius-lg); 
            }

label #menu-open, #menu-close {
    font-size: 1.675em;
    color: var(--color-darkgray);
    float: right;
    line-height: 60px;
    margin-right: 30px;
    cursor: pointer;
    display: none;
}

#menu-check { display: none; }

@media (max-width: 880px) {
    label #menu-open { display: block; }

    nav ul {
        position: fixed;
        width: 100%;
        height: 100vh;
        background: var(--bg-alternative-color);
        top: 80px;
        left: -100%;
        text-align: center;
        transition: .5s;
        z-index: 10;
    }

        nav ul li {
            display: block;
            margin: 45px 0;
            line-height: 20px;
        }
        
            nav ul li a {
            font-size: 0.875em;
        }

    #menu-check:checked ~ ul { left: 0; }
    #menu-check:checked ~ label #menu-open { display: none; }
    #menu-check:checked ~ label #menu-close { display: block; }
    
    .logo {
      top: 5px;
    }
}

/*-- NAVIGATION LITE --*/

.menu {
	font-size: 0rem;
	margin: 0;
	padding-left: 0;
}
.menu li {
	display: inline-block;
	font-size: 1.5rem;
	list-style-type: none;
	margin-left: 1.1rem;
}
.menu li:first-child {
	margin-left: 0;
}
.menu li.active a {
	background-color: var(--color-primary);
        color: var(--color-whitesmoke);
        height: 2.5rem;
	line-height: 2.5rem;
	padding: .5rem;
        border-radius: var(--border-radius);
}

.responsive-menu label {
	background-color: var(--color-primary);
	color: #fff;
	cursor: pointer;
	text-align: center;
}

#nav,/* fix old android browser (always open) */
.responsive-menu label,.responsive-menu input[type=checkbox] { 
	display: none;
}
.responsive-menu label {
	height: 2.5rem;
	line-height: 2.5rem;
}
#nav:checked+ul#responsive-menu,/* fix old android browser */
.responsive-menu input[type=checkbox]:checked+ul { 
	display: block;
}

@media (max-width: 767px) {
	.responsive-menu { /* fix old android browser : good position*/
		left: 0;
		right: 0;
	}
	.responsive-menu ul {
		display: none;
	}
	.responsive-menu label,
	.responsive-menu ul li {
		display: block;
		margin-left: 0;
	}
	.responsive-menu ul li:hover {
		background-color: var(--color-gray);
	}
	.responsive-menu ul li a {
		display: block;
		height: 3.5rem;
		line-height: 3.5rem;
		padding-left: .7rem;
		padding-right: .7rem;
	}
	.responsive-menu ul li a:hover {
		text-decoration: none;
	}
	.responsive-menu ul li.active a {
		background-color: var(--color-transparent);
		color: var(--color-secondary);
	        height: 3.5rem;
		line-height: 3.5rem;
		padding-left: .7rem;
		padding-right: .7rem;
	}
}

/*-- PAGINATION --*/

.pagination {
	margin: 0;
	padding: 0;
	width: 100%;
}
.pagination ul,
.pagination ul ul {
	display: inline-block;
	margin: 0;
	padding: 0;
}
.pagination li,
.pagination li li {
	display: inline-block;
	font-size: 1.5rem;
	list-style-type: none;
	margin: 10px;
	cursor: pointer;
}
.pagination li.active a {
	color: var(--color-error);
}
.pagination li.disabled a {
	color: var(--color-darkgray);
}
.pagination li.disabled a:hover {
	text-decoration: none;
}

/*-- ALERTS --*/

.alert {
	border-radius: .3rem;
	margin-bottom: 1.5rem;
	padding: 1.5rem;
}
.alert a,
.alert a:hover {
	color: inherit;
}
.alert.info {
	background-color: #dbedf9;
	color: #258fd6;
}
.alert.success {
	background-color: #d3f5e2;
	color: #239c56;
}
.alert.warning {
	background-color: #fbe8d9;
	color: #da7418;
}
.alert.error {
	background-color: #fce4e2;
	color: #e43d29;
}

/*-- UTILITIES --*/

.hero {
  display: flex;
  flex-direction: column;
}

.full-screen {
  width: 100%;
  min-height: 100vh;
}

.full-width {
  width: 100% !important;
}

.container { 
   max-width: var(--grid-maxWidth); 
   margin: 0 auto; 
   width: 98%; 
   padding: 0 calc(var(--grid-gutter) / 2);
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}
@media (min-width: 1400px) {
  .container {
    max-width: 1320px;
  }
}

abbr[title] {
  border-bottom: 1px dotted;
  text-decoration: none;
  cursor: help;
}

/*-- EMBEDDED --*/

:where(audio, canvas, iframe, img, svg, video) { 
  vertical-align: middle; 
} 

audio, video { 
  display: inline-block; 
} 

audio:not([controls]) { 
  display: none; height: 0; 
} 
  
:where(iframe) { 
  border-style: none; 
}

:where(svg:not([fill])) {
  fill: currentColor;
}

svg:not(:root) {
  overflow: hidden;
}

/*-- OVERFLOW --*/

.x-scroll {
   overflow-x:scroll;
}

.y-scroll {
   overflow-y:scroll;
}

.x-hide {
   overflow-x:hidden;
}

.y-hide {
   overflow-y:hidden;
}

/*-- MINIMALIST GRID --*/

.grid {
  grid-column-gap: var(--grid-spacing-h);
  grid-row-gap: var(--grid-spacing-v);
  display: grid;
  grid-template-columns: 1fr;
  margin: 0;
}

@media (min-width: 992px) {
  .grid {
    grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
  }
}

.grid > * {
  min-width: 0;
}


/*-- GRID --*/

.row {
  display: flex;
  flex-direction: column;
  padding: 0;
  width: 100%;
}

.row.row-no-padding {
  padding: 0;
}

.row.row-no-padding > .column {
  padding: 0;
}

.row.row-wrap {
  flex-wrap: wrap;
}

.row.row-top {
  align-items: flex-start;
}

.row.row-bottom {
  align-items: flex-end;
}

.row.row-center {
  align-items: center;
}

.row.row-stretch {
  align-items: stretch;
}

.row.row-baseline {
  align-items: baseline;
}

.row .column {
  display: block;
  flex: 1 1 auto;
  margin-left: 0;
  max-width: 100%;
  width: 100%;
}

.row .column.column-offset-10 {
  margin-left: 10%;
}

.row .column.column-offset-20 {
  margin-left: 20%;
}

.row .column.column-offset-25 {
  margin-left: 25%;
}

.row .column.column-offset-33, .row .column.column-offset-34 {
  margin-left: 33.3333%;
}

.row .column.column-offset-40 {
  margin-left: 40%;
}

.row .column.column-offset-50 {
  margin-left: 50%;
}

.row .column.column-offset-60 {
  margin-left: 60%;
}

.row .column.column-offset-66, .row .column.column-offset-67 {
  margin-left: 66.6666%;
}

.row .column.column-offset-75 {
  margin-left: 75%;
}

.row .column.column-offset-80 {
  margin-left: 80%;
}

.row .column.column-offset-90 {
  margin-left: 90%;
}

.row .column.column-10 {
  flex: 0 0 10%;
  max-width: 10%;
}

.row .column.column-20 {
  flex: 0 0 20%;
  max-width: 20%;
}

.row .column.column-25 {
  flex: 0 0 25%;
  max-width: 25%;
}

.row .column.column-33, .row .column.column-34 {
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}

.row .column.column-40 {
  flex: 0 0 40%;
  max-width: 40%;
}

.row .column.column-50 {
  flex: 0 0 50%;
  max-width: 50%;
}

.row .column.column-60 {
  flex: 0 0 60%;
  max-width: 60%;
}

.row .column.column-66, .row .column.column-67 {
  flex: 0 0 66.6666%;
  max-width: 66.6666%;
}

.row .column.column-75 {
  flex: 0 0 75%;
  max-width: 75%;
}

.row .column.column-80 {
  flex: 0 0 80%;
  max-width: 80%;
}

.row .column.column-90 {
  flex: 0 0 90%;
  max-width: 90%;
}

.row .column .column-top {
  align-self: flex-start;
}

.row .column .column-bottom {
  align-self: flex-end;
}

.row .column .column-center {
  align-self: center;
}

@media (min-width: 40rem) {
  .row {
    flex-direction: row;
    margin-left: -1.0rem;
    width: calc(100% + 2.0rem);
  }
  .row .column {
    margin-bottom: inherit;
    padding: 0 1.0rem;
  }
}

/*-- TAG --*/

.tags {
  display: inline-block;
  border-radius: var(--border-radius-lg);
  text-transform: uppercase;
  color: var(--color-tertiary);	
  padding: 0.5rem;
  line-height: 1;
  letter-spacing: 0.5px;
  margin: .15rem;
}
.tags.small {
  padding: 0.4rem;
  font-size: 0.75em;
}
.tags.large {
  padding: 0.7rem;
  font-size: 1.125em;
}
.tags + .tags {
  margin-left: 1rem;
}

/*-- ALIGNMENT --*/

.v-align {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.h-align {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.right {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
}

.left {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}

.fixed {
  position: fixed;
  width: 100%;
}

.nopadding {
  padding: 0 !important;
}

.nomargin {
  margin: 0 !important;
}

.pull-right {
  float: right !important;
}

.pull-left {
  float: left !important;
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.justify {
  text-align: justify;
}

.uppercase {
  text-transform: uppercase;
}

.lowercase {
  text-transform: lowercase;
}

.capitalize {
  text-transform: capitalize;
}

/*-- BUTTONS --*/

button {
  margin: 0;
  overflow: visible;
  font-family: inherit;
  text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button {
  display: block;
  margin-bottom: var(--spacing);
}

[role=button] {
  display: inline-block;
  text-decoration: none;
}

.button, button, input[type="submit"], input[type="reset"], input[type="button"], [role=button] {
  display: inline-block;
  padding: 5px 10px;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  background-color: var(--color-gray);
  color: var(--color);
  border-radius: var(--border-radius);
  border: 1px solid var(--color-gray);
  cursor: pointer;
  box-sizing: border-box; 
}

.button[disabled], button[disabled], input[type="submit"][disabled], input[type="reset"][disabled], input[type="button"][disabled] {
    cursor: default;
    opacity: .5; 
}
    
.button:focus:enabled, .button:hover:enabled, button:focus:enabled, button:hover:enabled, input[type="submit"]:focus:enabled, input[type="submit"]:hover:enabled, input[type="reset"]:focus:enabled, input[type="reset"]:hover:enabled, input[type="button"]:focus:enabled, input[type="button"]:hover:enabled {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-btn);
    outline: 0;
}

.button.primary,
.button.secondary,
.button.dark,
.button.error,
.button.success,
[type="submit"] {
  color: var(--color-btn);
  z-index: 1; /* hightlight from other button's border when grouped */
  background-color: var(--bg-dark);
  background-color: var(--color-primary);
}

.button:hover,
[type="button"]:hover,
[type="reset"]:hover,
[type="submit"]:hover,
button:hover {
opacity: 0.9;
color: var(--color-focus);
}

input:disabled,
input:disabled:hover,
button:disabled,
button:disabled:hover {
opacity: 0.7;
cursor: not-allowed;
}

.button.primary { border-color: var(--color-primary); color: var(--color-btn); 
} 
.button.secondary { background-color: var(--bg-secondary); color: var(--color-secondary); 
}
.button.dark { background-color: var(--color-dark); color: var(--color-gray);
} 
.button.error { background-color: var(--color-error); 
} 
.button.success { background-color: var(--color-success);
} 
.button.outline { background-color: transparent; border-color: var(--color-lightgray); 
} 
.button.outline.primary { border-color: var(--color-primary); color: var(--color-primary); 
} 
.button.outline.secondary { border-color: var(--color-secondary); color: var(--color-secondary); 
} 
.button.outline.dark { border-color: var(--color-darkgray); color: var(--color-darkgray); 
} 
.button.clear { background-color: transparent; border-color: transparent; color: var(--color-primary); 
} 
.button.icon { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; 
} 
.button.icon > img { margin-left: 2px; 
} 
.button.icon-only { padding: 1rem; 
}
.button.small {
  font-size: .8rem;
  height: 2.8rem;
  line-height: 2.8rem;
  padding: 0 1.5rem;
}

.button.large {
  font-size: 1.6rem;
  height: 4.5rem;
  line-height: 4.5rem;
  padding: 0 2rem;
}

/*-- INPUT - FORMS --*/

input, fieldset, textarea, select {
		font-size: 1em;
		margin: 0;
		padding: 0;
		border: 0;
		background-color: var(--bg-alternative-color);
		color: var(--color-dargray);	
}

textarea, select, input, fieldset {
  padding: 8px 10px;
  margin-bottom: 10px;
  background-color: var(--bg-alternative-color);
  border-radius: 4px;
  box-shadow: none;
  box-sizing: border-box;
}

input:focus, textarea:focus {
		outline: none;
		box-shadow: inset 0 -2px var(--color-primary);
}

textarea {
  width: 100%; 
}

input[type="checkbox"]:focus {
  outline: 1px dotted var(--color-gray); }

label, legend, fieldset {
  display: block;
  margin-bottom: .5rem;
  font-weight: 500; }

input:not([type="checkbox"], [type="radio"], [type="submit"], [type="color"], [type="button"], [type="reset"]),
select,
textarea,
textarea[type="text"] {
  font-family: inherit;
  padding: 0.8rem 1rem;
  font-size: 1em;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  display: block;
}

input::-moz-placeholder {
    color: var(--color-alternative-gray);
  }
  input:-moz-placeholder {
    color: var(--color-alternative-gray);
  }
  *::-webkit-input-placeholder {
    color: var(--color-alternative-gray);
  }
  *:-ms-input-placeholder {
    color: var(--color-alternative-gray);
  }
  *:-moz-placeholder {
    color: var(--color-alternative-gray);
  }
  
/*-- CARDS --*/

.cards {
  padding: 1rem 2rem;
  border-radius: 4px;
  background: var(--bg-color);
  -webkit-box-shadow: 0 1px 3px var(--color-gray);
          box-shadow: 0 1px 3px var(--color-gray);
}

.cards p {
  padding-left: 1rem;
}

.cards p:last-child {
  margin: 0;
}

/*-- TABLE --*/

table {
  min-width: 60%;
  border: none;
  border-collapse: collapse;
  border-spacing: 0;
  text-indent: 0;
  text-align: justify;
}

td,
th {
  vertical-align: middle;
  padding: 1.2rem 0.4rem;
}

thead {
  border-bottom: 2px solid var(--color-lightgray);
}

tfoot {
  border-top: 2px solid var(--color-lightgray);
}

tr {
	border-color: #bbb;
	transition-duration: .2s;
}

tr:hover {
	background-color: var(--color-primary);
        color: var(--color-whitesmoke);
	transition-duration: .2s;
}

.scrollable-table {
	overflow: auto;
}

/*-- COLORS --*/

.clr-purple {
  color: #A21CAF;
}

.clr-dpurple {
  color: #86198F;
}

.clr-neonpurple {
  color: #C724B1;
}

.clr-violet {
  color: #8F00FF;
}

.clr-lime {
  color: #04FF86;
}

.clr-green {
  color: #228B22;
}

.clr-green2 {
  color: #4DC71F;
}

.clr-neongreen {
  color: #0FFF50;
}

.clr-chartreuse {
  color: #7fff00;
}

.clr-teal {
  color: #008080;
}

.clr-blue {
  color: #4A69BD;
}

.clr-blue2 {
  color: #10A8D6;
}

.clr-neonblue {
  color: #1F51FF;
}

.clr-aqua {
  color: #00FFFF;
}

.clr-pink {
  color: #ff0080;
}

.clr-lilac {
  color: #AA98A9;
}

.clr-mustard {
  color: #D7C811;
}

.clr-yellow {
  color: #FFEA00;
}

.clr-neonyellow {
  color: #DFFF00;
}

.clr-orange {
  color: #F28C28;
}

.clr-red {
  color: #C41E3A;
}

.clr-neonred {
  color: #FF3131;
}

.clr-cherry {
  color: #D2042D;
}

.clr-marsala {
  color: #986868;
}

.clr-wine {
  color: #722F37;
}

.clr-amora {
  color: #8a4d76;
}

.clr-amora-alt {
  color: #972F65;
}

.clr-gray {
  color: #E6E6E6;
}

.clr-platinum {
  color: #E5E4E2;
}

.clr-white {
  color: #F1F1F1;
}

.clr-black {
  color: #262626;
}

.bg-gradient {
  background-image: var(--bg-gradient) !important;
}

.bg-opacity-10 {
  opacity: 0.1;
}

.bg-opacity-25 {
  opacity: 0.25;
}

.bg-opacity-50 {
  opacity: 0.5;
}

.bg-opacity-75 {
  opacity: 0.75;
}

.bg-opacity-100 {
  opacity: 1;
}

/*-- ROUNDED --*/

.rounded {
 border-radius: var(--border-radius)
}

.rounded-0 {
  border-radius: 0 !important;
}

.rounded-lg {
  border-radius: var(--border-radius-lg) !important;
}

.rounded-xl {
  border-radius: var(--border-radius-xl) !important;
}

.rounded-xxl {
  border-radius: var(--border-radius-xxl) !important;
}

.rounded-circle {
  border-radius: 50% !important;
}

.rounded-pill {
  border-radius: var(--border-radius-pill) !important;
}

/*-- GROUP --*/

.group {
  display: inline-flex;
  justify-self: flex-start;
  margin: .2rem 1rem .2rem 0;
}
.group > * {
  margin: 0;
}
.group:not(.vertical) > * + * {
  -webkit-margin-start: -1px;
          margin-inline-start: -1px;
}
.group:not(.vertical) > *:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.group:not(.vertical) > *:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.group.vertical {
  flex-direction: column;
}
.group.vertical > * + * {
  -webkit-margin-before: -1px;
          margin-block-start: -1px;
}
.group.vertical > *:not(:last-child) {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.group.vertical > *:not(:first-child) {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
} 

.gtag {
  display: inline-block;
  border: 1px solid var(--color-gray);
  border-radius: var(--border-radius-lg);
  text-transform: uppercase;
  color: var(--color-tertiary);	
  padding: 0.2rem;
  line-height: 1;
  letter-spacing: 0.5px;
}
.gtag.small {
  padding: 0.4rem;
  font-size: 0.75em;
}
.gtag.large {
  padding: 0.7rem;
  font-size: 1.125em;
}
.gtag + .gtag {
  margin-left: 0;
}

/*-- FAB ZAP --*/

.float-zap {
  position:fixed;
  width: 40px;
  height: 40px;
  bottom:20px;
  right:20px;
  background-color: var(--color-green);
  color: var(--color-whitesmoke);
  border-radius:50px;
  text-align:center;
  z-index:100;
  transition: transform 0.5s ease;
}

.float-zap:hover {
  color: var(--color-whitesmoke) !important;
  text-decoration: none; 
  transform: scale(1.1);
}

.zap-pulse {
  animation-name: pulse;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-iteration-count: infinite;
}

@keyframes pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5);
	}
	80% {
		box-shadow: 0 0 0 14px rgba(37, 211, 102, 0);
	}
}

.zap-pulse-border {
	bottom: 120px;
	right: 20px;
	animation-play-state: paused;
}

.zap-pulse-border::before {
	content: "";
	position: absolute;
	border-radius: 50%;
	padding: 25px;
	border: 5px solid #25d366;
	opacity: 0.75;
	animation-name: pulse-border;
	animation-duration: 1.5s;
	animation-timing-function: ease-out;
	animation-iteration-count: infinite;
}

@keyframes pulse-border {
	0% {
		padding: 25px;
		opacity: 0.75;
	}
	75% {
		padding: 50px;
		opacity: 0;
	}
	100% {
		opacity: 0;
	}
}

.ico-float {
    display: block;
    margin: 0 auto;
    padding: 5px;
    font-size:32px;
}

/*-- FAB ABOUT | Credits - Andy Tran --*/

.float-about {
  z-index: 999999;
  position: fixed;
  right: 10px;
  bottom: 20px;
  display: flex;
  align-items: center;
  flex-direction: row;
  transform: translateX(100%);
  transition: 0.2s ease;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.float-about:before {
  content: "";
  position: absolute;
  display: block;
  top: 50%;
  left: -58px;
  width: 58px;
  height: 48px;
  transform: translateY(-50%);
}

.float-about:hover {
  transform: translateX(0%);
}

.float-about:hover .float-about__meta {
  opacity: 1;
}

.float-about__thumbnail {
  position: absolute;
  top: 50%;
  left: -58px;
  width: 48px;
  height: 48px;
  border: 2px solid var(--color-gray);
  border-radius: 100%;
  padding: 4px;
  box-sizing: border-box;
  transform: translateY(-50%);
  overflow: hidden;
  cursor: pointer;
}

.float-about__thumbnail img {
  display: block;
  width: 100%;
  border-radius: 100%;
}

.float-about__meta {
  font-family: var(--font-family-sans);
  opacity: 0;
  transition: 0.2s ease;
}

.float-about__meta h2,
.float-about__meta p {
  margin: 0;
  padding: 0;
}

.float-about__meta h2 {
  color: var(--color-darkgray);
  font-size: 1rem;
  font-weight: 600;
}

.float-about__meta p {
  color: var(--color-darkgray);
  font-size: .75rem;
  font-weight: 400;
}

.float-about__meta a {
  color: inherit;
  font-weight: 400;
  text-decoration: none;
}

.float-about__meta a:hover {
  color: var(--color-primary);
}

/*-- GALLERY --*/

.gallery {
  list-style: none !important;
  padding: 0;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20ch, 1fr));
  gap: 1rem;
}

.gallery img {
  display: block;
  width: 100%;
  object-fit: cover;
  height: var(--gallery-height);
  transform: scale(1) translate(0, 0);
  transition: transform 1200ms ease-in;
}

.gallery figure {
  --gallery-height: 15rem;
  --gallery-aspect-ratio: 4/3;

  /* reset figure default margin */
  margin: 0;
  height: var(--gallery-height);
  background-color: hsl(200, 85%, 2%);

  display: grid;
  grid-template-areas: "card";
  place-items: end;
  border-radius: 0.5rem;
  overflow: hidden;
}

@supports (aspect-ratio: 1) {
  .gallery figure,
  .gallery img {
    aspect-ratio: var(--gallery-aspect-ratio);
    /* Remove height to prevent distorting aspect-ratio */
    height: auto;
  }
}

.gallery figure > * {
  grid-area: card;
}

.gallery figcaption {
  transition: transform 800ms 400ms ease-in;

  /* Visual styles for the caption */
  padding: 0.25em 0.5em;
  border-radius: 5px 0 0 0;
  background-color: hsl(0 0% 100% / 87%);
  /* provide stacking context */
  z-index: 1;
}

.gallery figure:hover figcaption,
.gallery figure:focus figcaption {
  transform: translateY(0);
}

.gallery figure:hover img,
.gallery figure:focus img {
  transform: scale(1.3) translate(-8%, -3%);
}

.gallery figure:focus {
  outline: 2px solid white;
  outline-offset: 2px;
}

@media (any-hover: hover) and (any-pointer: fine) {
  .gallery figcaption {
    transform: translateY(100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery * {
    transition-duration: 0ms !important;
  }

  .gallery img {
    transform: none !important;
  }

  .gallery figcaption {
    transition-delay: 0ms;
  }
}

/* Vignette */
.gallery figure::after {
  content: "";
  grid-area: card;
  width: 100%;
  height: 100%;
  box-shadow: inset 0 0 2rem 1rem hsl(0 0% 0% / 65%);
  position: relative;
}

/*-- PRE - CODE --*/

pre, code, kbd, samp, var {
  font-family: var(--font-family-code);    
}

pre {
  background-color: var(--bg-alternative-color);
  display: block;
  padding: 1em;
  overflow-x: auto;
  margin-top: 0px;
  margin-bottom: 2.5rem;
}

code {
  color: var(--color-code);
  font-size: 0.9em;
  padding: 0 0.5em;
  border-radius: 4px;
  background-color: var(--bg-alternative-color);
  white-space: pre-wrap; 
}

.code {
  border-radius: .1rem;
  position: relative;
}

.code::before {
  color: var(--color-focus);
  content: attr(data-lang);
  font-size: .95rem;
  position: absolute;
  right: .8rem;
  top: .4rem;
}

.code code {
  color: var(--color-code);
  display: block;
  line-height: 1.5;
  overflow-x: auto;
  padding: 1rem;
  width: 100%;
}

pre > code {
  padding: 0;
  background-color: transparent;
  white-space: pre; 
  line-height: var(--line-height);
}

kbd {
  background: var(--bg-alternative-color);
  border: 1px solid var(--color-gray);
  border-radius: 2px;
  color: var(--color-darkgray);
  padding: 2px 4px 2px 4px;
  font-size: 0.9em;
}  

samp {
  background: var(--bg-alternative-color);
  padding: 0.2em 0.4em;
  border-radius: 0.4em;
  font-size: 0.9em;
}

var {
  color: var(--color-focus);
  font-style: normal;
  font-size: 0.7em;
}

del {
  color: var(--color-error);
}

/* Separator */

.separator {
  background: var(--color-primary);
  width: 120px;
  height: 1px;
  margin: 1rem 0;
}

/** BADGE 'Made with Amora' **/

a.amora-badge {
    position: fixed;
    display: flex;
    align-items: center;
    z-index: 999;
    top: auto;
    left: 10px;
    bottom: 10px;
    right: auto;
    color: var(--color-darkgray);
    font-weight: 500;
    background-color: var(--bg-alternative-color);
    border-radius: 4px;
    padding: 5px;
    font-size: .55rem;
    text-decoration: none !important;
    width: auto;
    height: auto;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.2);
    transition: transform 0.5s ease;
}

a.amora-badge:hover {
  transform: scale(1.1);
}

.madewith {
   color: var(--color-amora-alt);
   font-weight: 800;
}

/*-- TOOLTIP --*/

a.tooltip {
	position: relative;
	display: inline;
}
a.tooltip span {
	font-size: 1.3rem;
	line-height: 1.7rem;
	position: absolute;
	min-width:140px;
	color: var(--color-whitesmoke);
	background: var(--color-primary);
	min-height: 30px;
	text-align: center;
	visibility: hidden;
	border-radius: 4px;
	opacity: 0;
	-webkit-transition: opacity 0.3s ease-in-out;
	-moz-transition: opacity 0.3s ease-in-out;
	-ms-transition: opacity 0.3s ease-in-out;
	-o-transition: opacity 0.3s ease-in-out;
	transition: opacity 0.3s ease-in-out;
}
a.tooltip span:after {
	content: '';
	position: absolute;
 	width: 0; height: 0;
}
a:hover.tooltip span {
	visibility: visible;
	opacity:1;
	z-index: 999;
}
a.tooltip.tooltip-top span:after {
	top: 100%;
	left: 50%;
	margin-left: -8px;
	border-top: 8px solid var(--color-primary);
	border-right: 8px solid transparent;
	border-left: 8px solid transparent;
}
a:hover.tooltip-top span {
	bottom: 30px;
	left: 50%;
	margin-left: -76px;
}
a.tooltip.tooltip-right span:after {
	top: 50%;
	right: 100%;
	margin-top: -8px;
	border-right: 8px solid var(--color-primary);
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
}
a:hover.tooltip-right span {
	left: 100%;
	top: 50%;
	margin-top: -15px;
	margin-left: 15px;
}
a.tooltip.tooltip-bottom span:after {
	bottom: 100%;
	left: 50%;
	margin-left: -8px;
	border-bottom: 8px solid var(--color-primary);
	border-right: 8px solid transparent;
	border-left: 8px solid transparent;	
}
a:hover.tooltip-bottom span {
	top: 30px;
	left: 50%;
	margin-left: -76px;
}
a.tooltip.tooltip-left span:after {
	top: 50%;
	left: 100%;
	margin-top: -8px;
	border-left: 8px solid var(--color-primary);
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
}
a:hover.tooltip-left span {
	right: 100%;
	top: 50%;
	margin-top: -15px;
	margin-right: 15px;
}
