@font-face {
    font-family: 'caviardreams';
    src: url('../fonts/caviardreams_bold-webfont.woff2') format('woff2'),
         url('../fonts/caviardreams_bold-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
body {
	font-family: 'caviardreams';
  overflow: hidden;
  color: #ececec;
}
section {
	height: 100vh;
	position: relative;
	background-color: #262626;
}

/* GENERAL STYLES */
h1 {
  text-align: center;
  font-size: 35px;
  text-transform: uppercase;
  color: #fff;
}
h2 {
	text-align: center;
	text-transform: uppercase;
	font-size: 18px;
  line-height: 22px;
	margin-bottom: 20px;
}
a {
	color: inherit;
	text-decoration: underline;
  transition: all .25s ease-in-out;
  cursor: pointer;
}
a:hover {
	color: #686868;
}
p.text {
  margin-bottom: 20px;
}
.btn {
  text-decoration: none;
  text-align: center;
  text-transform: uppercase;
  font-size: 14px;
  border: 2px solid #fff;
  background-color: #fff;
  color: #313131;
  padding: 15px 20px;
  width: 80px;
  display: block;
  cursor: pointer;
}
.btn:hover {
  background-color: inherit;
  color: #fff;
}

/* TOP SECTION STYLES */
.top-section {
	height: 60%;
  background-color: #686868;
	width: 100%;
	display: flex;
}

/* COLOR MENU STYLES */
.color-menu {
  padding: 0 30px 0 10px;
  margin: 90px 0 0 0;
	width: 20%;
	background-color: #313131;
	overflow: auto;
}
.color-menu h2 {
  position: fixed;
  background-color: #313131;
  width: 20%;
  padding: 40px 30px 30px 10px;
  margin: 0;
  top: 0px;
  left: 0;
}
.color-menu p {
	font-size: 14px;
}
.flag-table img {
	width: 80px;
	margin: 0 auto;
	display: block;
}
table.flag-table {
	display: table;
	margin-bottom: 20px;
	width: 100%;
}
.flag-table td {
	display: table-cell;
	vertical-align: middle;
	font-size: 14px;
	padding: 5px;
	text-transform: uppercase;
}
.flag-table .flag-name {
	font-size: 14px;
	text-align: center;
	text-transform: uppercase;
}
.colors-section {
	overflow: auto;
	padding: 0px 20px;
	height: 180px;
	width: 80px;
}
.color-choices {
	margin-bottom: 20px;
	min-width: 80px;
}
.color-choices td span {
	border-radius: 50%;
	height: 20px;
	width: 20px;
	display: block;
	margin: 3px auto;
	transition: .25s all ease-in-out;
	cursor: pointer;
}
.color-choices td span:hover {
	box-shadow: 0 0 10px #fff;
}
.color-choices td:nth-child(odd) span {
	margin-right: 3px;
}
.color-choices td:nth-child(even) span {
	margin-left: 3px;
}
.color-choices .flag-name td {
	font-size: 10px;
	text-transform: uppercase;
	padding-bottom: 10px;
	display: table-cell;
	max-width: 50px;
}

/* PREVIEW AREA STYLES */
.preview-area {
	padding-top: 40px;
	background: #686868;
/* background: linear-gradient(90deg, rgba(235,235,235,1) 0%, rgba(200,200,200,1) 35%, rgba(232,232,232,1) 100%); */
	width: 75%;
}
.t-shirt-preview {
  position: absolute;
  width: 75%;
  height: 200px;
  top: 20%;
  z-index: 9;
}
.shirt-neck {
  border-radius: 50%;
  height: 50px;
  width: 80px;
  background-color: #686868;
  margin: -127px -40px;
  position: absolute;
  left: 50%;
	top: 50%;
  z-index: 9;
}
.shirt-body {
  height: 200px;
  width: 190px;
  background-color: #fff;
  margin: -100px 0 0 -95px;
  position: absolute;
  left: 50%;
	top: 50%;
}
.shirt-graphic {
  background-image: none;
  width: 50px;
  height: 50px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin: 0 auto;
  position: relative;
  top: 45px;
  left: 30%;
}
.left-sleeve {
  width: 80px;
  height: 80px;
  background-color: #fff;
  position: absolute;
  left: 50%;
  top: -30%;
  margin: 75px 0 0 -150px;
  transform: rotate(60deg);
}
.right-sleeve {
  width: 80px;
  height: 80px;
  background-color: #fff;
  position: absolute;
  left: 50%;
  top: 50%;
  margin: -85.5px 0px 0px 70px;
  transform: rotate(300deg);
}
.rsleeve-graphic {
  background-image: none;
  width: 30px;
  height: 50px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center left;
  margin: 0 auto;
  position: relative;
  top: 24px;
  left: 31%;
}
.lsleeve-graphic {
  background-image: none;
  width: 30px;
  height: 50px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center right;
  margin: 0 auto;
  position: relative;
  top: 25px;
  left: -31%;
}
.button-box {
  position: absolute;
  width: 75%;
  height: 40%;
  top: 20%;
}
.preview-area .btn {
  position: relative;
  top: 100%;
  left: 100%;
  margin: -70px 0 0 -120px;
}

/* TOOLBAR AREA STYLES */
.tool-bar {
  height: 40%;
  background-color: #424242;
  display: flex;
	padding-top: 20px;
}
.tool-bar > div {
  width: 25%;
  padding: 20px;
}
.tool-bar > div:after {
  content: '';
  width: 0px;
  height: 200px;
  margin: -200px 0 0 -20px;
  display: block;
  border-right: 2px solid #000;
}
.tool-bar > div:first-of-type:after {
  display: none;
}
.tool-bar .tools-table {
  display: table;
}
.tool-bar .tools-table > div {
  height: 100%;
  width: 33%;
  display: table-cell;
  text-align: center;
  padding: 0 10px;
}
.tool-bar > div > div p {
  margin-bottom: 10px;
  text-transform: uppercase;
  font-size: 12px;
}
.tools-title {
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 15px;
  font-size: 16px;
}
.neck-tools {
  width: 15% !important;
}
/*
.left-sleeve-tools {
  background-color: #fff;
}
.right-sleeve-tools {
  background-color: #000;
}
.shirt-body-tools {
  background-color: #fff;
} */
ul {
  list-style: none;
  margin: 0 auto;
  width: 40px;
}
ul.neck-choices li {
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  height: 40px;
  width: 40px;
  margin-bottom: 12px;
  cursor: pointer;
  transition: all .25s ease-in-out;
}
ul.neck-choices li img {
	width: 40px;
  transition: all .25s ease-in-out;
}
/* ul.neck-choices li:nth-of-type(1) {
  background-image: url(../images/neck-crew.svg);
}
ul.neck-choices li:nth-of-type(2) {
  background-image: url(../images/neck-v.png);
}
ul.neck-choices li:nth-of-type(3) {
  background-image: url(../images/neck-swoop.png);
} */
ul.neck-choices li img:hover {
	filter: drop-shadow(0 0 10px #fff);
}
/*
ul.neck-choices li:nth-of-type(1) span {
  height: 15px;
  width: 20px;
  display: block;
  margin: 0 auto;
  background-color: #4f4f4f;
  border-radius: 50%;
  position: relative;
  top: -8px;
}
ul.neck-choices li:nth-of-type(2) span {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 15px 0 15px;
  border-color: #4f4f4f transparent transparent transparent;
  position: relative;
  top: 21px;
}
ul.neck-choices li:nth-of-type(3) span {
  height: 20px;
  width: 30px;
  display: block;
  margin: 0 auto;
  background-color: #4f4f4f;
  border-radius: 50%;
  position: relative;
  top: -8px;
} */
ul.length-choices li {
  width: 40px;
  height: 40px;
  margin: 0 auto;
  background-color: #dbdbdb;
  cursor: pointer;
  transition: background-color .25s ease-in-out;
}
ul.length-choices li:before {
  content: '';
  width: 50px;
  height: 0px;
  margin: 0 0 0 -5px;
  display: block;
  border-bottom: 2px dashed #000;
  transition: all .25s ease-in-out;
}
ul.length-choices li:hover {
  background-color: #a2a2a2;
}
ul.length-choices li:hover:before,
ul.length-choices li.border-glow:before {
  border-bottom: 2px dashed #fff;
  box-shadow: 0 0 10px #fff;
}
.hover-grey {
  background-color: #a2a2a2;
  transition: background-color .25s ease-in-out;
}
ul.graphic-choices li {
  border-radius: 50%;
  width: 30px;
  height: 30px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin: 15px auto;
  cursor: pointer;
  background-color: #dbdbdb;
  /* border: 1px solid #dbdbdb; */
  transition: all .25s ease-in-out;
}
ul.graphic-choices li:hover {
  background-color: #fff;
  box-shadow: 0 0 10px #fff;
}
ul.graphic-choices li:nth-of-type(1) {
  background-image: url(../images/graphic-heart.png);
}
ul.graphic-choices li:nth-of-type(2) {
  background-image: url(../images/graphic-peace.png);
}
ul.graphic-choices li:nth-of-type(3) {
  background-image: url(../images/graphic-rainbow.png);
}
ul.graphic-choices li:nth-of-type(4) {
  background-image: url(../images/graphic-fist.png);
}
input {
  width: 60px;
  border: 1px solid #dbdbdb;
  padding: 5px;
  box-shadow:0 0 15px 4px rgba(0,0,0,0.06);
  outline: 0;
	margin-bottom: 20px;
}
input:focus {
  border: #000;
  box-shadow: 0 0 0 .2rem rgba(122, 208, 228,.25) !important;
}
/* .separator-p {
	margin-bottom: 20px !important;
	text-decoration: underline;
} */

/* FINISH PAGE STYLES */
.finished-section {
  padding-top: 40px;
  display: none;
}
.finished-content {
  display: flex;
  height: 100%;
  width: 100%;
}
.link-text {
  margin-left: 50px;
  display: block;
  padding-top: 30px;
}
.link-text:before {
  content: '';
  background-image: url(../images/arrow-icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  position: relative;
  top: 13px;
  left: -20px;
  height: 10px;
  width: 10px;
  display: block;
  transition: all .25s ease-in-out;
}
.link-text:hover:before {
  opacity: .3;
}
.finished-left {
  width: 30%;
}
.flag-box-positioning {
  height: 416px;
  width: 30%;
  position: absolute;
  top: 50%;
  margin: -240px 0 0 0;
}
.finished-left .color-menu {
  width: 100%;
  padding: 0 0 0 30px;
  margin: 126px 0 0 0;
}
.finished-left .menu-background {
  background-color: #313131;
  height: 415px;
  /* width: 82.5%; */
  display: flex;
  padding: 0 30px 30px 0;
  margin-right: 30px;
  /* flex-direction: column; */
}
.finished-left .menu-background h2 {
  position: absolute;
  padding: 40px 30px;
  background-color: #313131;
  width: 73%;
}
.finished-left .color-menu h2 {
  position: absolute;
  width: 23.3%;
  padding: 40px 30px;
  top: 18%;
  line-height: 25px;
}
.finished-left .color-menu p {
  padding: 20px 20px 0 0;
}
.finished-left .btn {
  position: absolute;
  top: 78%;
  width: 168px;
  left: 30px;
}
.flag-image {
  background-size: contain;
  background-repeat: no-repeat;
  height: 48.8px;
  width: 88px;
  display: block;
  margin: 0 auto;
}
.agender-flag {
  background-image: url(../images/flags/flag-agender.png);
}
.aromantic-flag {
  background-image: url(../images/flags/flag-aromantic.png);
}
.asexual-flag {
  background-image: url(../images/flags/flag-asexual.png);
}
.bdsm-flag {
  background-image: url(../images/flags/flag-bdsm.png);
}
.bear-flag {
  background-image: url(../images/flags/flag-bear.png);
}
.bisexual-flag {
  background-image: url(../images/flags/flag-bisexual.png);
}
.demiromantic-flag {
  background-image: url(../images/flags/flag-demiromantic.png);
}
.demisexual-flag {
  background-image: url(../images/flags/flag-demisexual.png);
}
.gender-queer-flag {
  background-image: url(../images/flags/flag-gender-queer.png);
}
.genderfluid-flag {
  background-image: url(../images/flags/flag-genderfluid.png);
}
.intersex-flag {
  background-image: url(../images/flags/flag-intersex.png);
}
.lesbian-original-flag {
  background-image: url(../images/flags/flag-lesbian-original.png);
}
.lesbian-flag {
  background-image: url(../images/flags/flag-lesbian.png);
}
.nonbinary-flag {
  background-image: url(../images/flags/flag-nonbinary.png);
}
.pansexual-flag {
  background-image: url(../images/flags/flag-pansexual.png);
}
.polyamorous-flag {
  background-image: url(../images/flags/flag-polyamorous.png);
}
.polysexual-flag {
  background-image: url(../images/flags/flag-polysexual.png);
}
.rainbow-1978-flag {
  background-image: url(../images/flags/flag-rainbow-1978.png);
}
.rainbow-ally-flag {
  background-image: url(../images/flags/flag-rainbow-ally.png);
}
.rainbow-philly-flag {
  background-image: url(../images/flags/flag-rainbow-philly.png);
}
.rainbow-progress-flag {
  background-image: url(../images/flags/flag-rainbow-progress.png);
}
.qpoc-flag {
  background-image: url(../images/flags/flag-qpoc.png);
}
.rainbow-flag {
  background-image: url(../images/flags/flag-rainbow.png);
}
.rubber-flag {
  background-image: url(../images/flags/flag-rubber.png);
}
.transgender-flag {
  background-image: url(../images/flags/flag-transgender.png);
}
.twink-flag {
  background-image: url(../images/flags/flag-twink.png);
}
.finished-left td span {
  transition: all .25s ease-in-out;
  cursor: pointer;
}
.finished-left td span:hover {
  filter: drop-shadow(0 0 10px #fff);
}
.finished-middle {
  width: 40%;
}
.finished-right {
  width: 30%;
}
.finished-text {
  margin: 0 auto;
  text-align: center;
  width: 50%;
  padding-top: 30px;
}
.finished-shirt {
  /* background-color: #e1e0e0; */
  background-color: #686868;
  width: 440px;
  height: 440px;
  margin: 0 auto;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -240px 0 0 -250px;
  padding: 30px;
}
.finished-shirt .t-shirt-preview {
  width: 440px;
  top: 50%;
  margin-top: -100px;
}
.flag-sticker {
  background-image: url();
  background-size: contain;
  background-repeat: no-repeat;
  height: 44.8px;
  width: 80px;
  position: relative;
  top: 100%;
  left: 100%;
  margin: -40px 0 0 -80px;
}
.instructions {
  padding: 0 30px;
  height: 500px;
  position: absolute;
  top: 50%;
  margin: -240px 0 0 0;
}
.instructions p {
  margin-bottom: 15px;
  font-size: 14px;
  line-height: 16px;
}
p.last-p {
  margin-bottom: 31px;
}
.step-list {
  counter-reset: step-counter;
  counter-reset: item;
  counter-reset: number;
  font-size: 14px;
  margin-bottom: 30px;
  line-height: 16px;
  margin-bottom: 0px;
}
.step-list li {
  padding: 0 0 10px 40px;
  text-indent: -14px;
  counter-increment: item;
}
.step-list li:before {
  content: counter(number) ".";
  counter-increment: number;
  position: relative;
  left: -8px;
}
.step-list2 {
  counter-reset: letter;
  padding-top: 10px;
}
.step-list2 li {
  padding: 0 0 10px 20px;
}
.step-list2 li:before {
  content: counter(letter, lower-alpha) ".";
  counter-increment: letter;
}
.bullet-list {
  width: 100%;
  padding: 10px 0 0 0;
}
.bullet-list li {
  padding: 0 0 10px 20px;
  counter-increment: none;
}
.bullet-list li:before {
  content: "";
  counter-increment: none;
  border-radius: 50%;
  display: block;
  background-color: #fff;
  position: relative;
  top: 10px;
  left: -12px;
  height: 6px;
  width: 6px;
}
.finished-right .btn {
  width: 140px;
}


/* JS ADDED CLASSES */
.background-dark-hover {
	background-color: #a2a2a2 !important;
}
.background-dark-click {
	background-color: #a2a2a2 !important;
}
.background-inherit {
	background-color: inherit;
}
.background-white {
	background-color: #fff !important;
}
.shape-glow {
	box-shadow: 0 0 10px #fff;
}
.background-image-none {
	background-image: none !important;
}
.drop-shadow-glow {
	filter: drop-shadow(0 0 10px #fff);
}
.neck-crew {
  border-radius: 50%;
  height: 50px;
  width: 80px;
  margin: -127px -40px;
}
.neck-v {
	width: 0;
  height: 0;
  border-style: solid;
	border-width: 80px 60px 0 60px;
	border-color: #686868 transparent transparent transparent;
	top: 50%;
	border-radius: inherit;
	background-color: transparent;
	margin: -100px 0 0 -58px;
}
.neck-swoop {
  border-radius: 50%;
	height: 75px;
	width: 132px;
	margin: -136px 0 0 -65px;
}
.final-shirt-preview {
  height: 0px;
}
