:root {
	--color:#ccc;
	--color:var(--dark-gray);
	--bg-color:#fff;
	--bg-color-transparent:#fff0;
	--text-color:#000;
	--border-color:#000;
	--checkback:var(--color);
	--lightest-gray:#eee;
	--lighter-gray:#ccc;
	--light-gray:#aaa;
	--mid-gray:#888;
	--dark-gray:#666;
	--darker-gray:#444;
	--darkest-gray:#222;

	--blue: #007bff;
	--indigo: #6610f2;
	--purple: #6f42c1;
	--pink: #e83e8c;
	--red: #dc3545;
	--orange: #fd7e14;
	--yellow: #ffc107;
	--green: #28a745;
	--teal: #20c997;
	--cyan: #17a2b8;
	--white: #fff;
/*
	--gray: #6c757d;
	--gray-dark: #343a40;
	--primary: #007bff;
	--secondary: #6c757d;
	--success: #28a745;
	--info: #17a2b8;
	--warning: #ffc107;
	--danger: #dc3545;
	--light: #efefef;
	--dark: #232323;
*/
	--height:900px;
	--width:450px;
}
html {
	-webkit-background-size:cover;
	-moz-background-size:cover;
	-o-background-size:cover;
	background-size:cover;
//	background-color:var(--bg-color);
	background-color:#fff;
	color:var(--text-color);
	font:16px/1.2 'Montserrat','Arial','Helvetica Neue','Helvetica',sans-serif;
}
body {
	position:fixed;
	overscroll-behavior:none;
	background-repeat:no-repeat;
	background-color:var(--bg-color);
	width:100%;
	height:100%;
	margin:0;
}
/*
@media(min-width:500px) {
	html, body {
		width: 100%;
		max-width:var(--width);
		height: 100%;
		max-height:var(--height);
		background-color:initial;
	}
	html {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		border: solid #ccc 1px;
	}
	body {
		position:absolute;
	}
	.main {
		width:100%;
		height:100%;
		overflow:auto;
		background:var(--bg-color);
	}
}
*/
a {
	text-decoration:none;
	color:inherit;
}
.alert {
	color:#981e1e;
}

.main {
	position:absolute;
	top:0;
	width:100%;
	height:100%;
	z-index:2;
}
.main .header {
	text-align:center;
//	max-height:125px;
	width:100%;
//	padding-top:10px
}
.main .header table {
	width:100%;
}

#home-svg {
	position:absolute;
	top:0;
	width:100%;
	height:100%;
	z-index:1;
}
#home-svg #home-top {
	width:100%;
	height:40%;
	background:var(--home-top);
}
#home-svg #home-btm {
	width:100%;
	height:60%;
	background:var(--home-btm);
}
#home-svg svg {
	 width:100%;
	 height:31.5%;
	 position:absolute;
	 bottom:50%;
}
#home-svg svg path {
	fill:var(--home-svg);
}
@media(min-width:450px) {
	#home-svg svg path {
		transform:scaleX(1.06);
	}
}

.logo {
	margin:0 10px;
	max-width:90%;
	max-height:115px;
}
.logo.home {
	margin:10px auto;
	max-width:80%;
//	max-height:125px;
	border-radius:10px;
}
#logo-holder {
	width:220px;
	height:220px;
	border-radius:100%;
	background:#fff;
	margin:70px auto 50px;
	display:flex;
	justify-content:center;
	align-items:center;
	box-shadow:0 0 5px 0px var(--color)
}
#svg #nug {
	position:absolute;
	left:50%;
	transform:translateX(-50%) rotate(20deg);
	width:125px;
	margin-top:20px
}
.text#phone {
	color:#000;
	max-width:250px;
	margin:20px auto 0;
	text-align:initial;
}
.centered {
	position:fixed;
	top:calc(50% - 150px/2);
	right:0;
	left:0;
	text-align:center;
}
.centered.relative {
	position:relative;
}
.fixed {
	position:fixed;
}
.fixed.center {
	left:50%;
	transform:translateX(-50%);
}
.table {
	display:table;
}
.table-cell {
	display:table-cell;
}
.spinner {
	width:100px;
}
#pleasewait .logo {
	margin:0;
	max-width:80%;
	box-shadow:initial;
    -moz-animation: spinHorizontal 2.5s infinite linear;
    -o-animation: spinHorizontal 2.5s infinite linear;
   
    -webkit-animation: spinHorizontal 2.5s infinite linear;
    animation: spinHorizontal 2.5s infinite linear;
}
@-moz-keyframes spinHorizontal {
    0% {
        -moz-transform: rotateY(0deg);
    }
    100% {
        -moz-transform: rotateY(360deg);
    }
}
@keyframes spinHorizontal {
	0% { 
        transform: rotateY(0deg);
	}
    100% {
        transform: rotateY(360deg);
    }
}
@-ms-keyframes spinHorizontal {
	0% { 
        -ms-transform: rotateY(0deg);
	}
    100% {
        -ms-transform: rotateY(360deg);
    }
}
@-o-keyframes spinHorizontal {
	0% { 
        -o-transform: rotateY(0deg);
	}
	100% { 
        -o-transform: rotateY(360deg);
	}
}
@-webkit-keyframes spinHorizontal {
	0% { 
        -webkit-transform: rotateY(0deg);
	}
	100% { 
        -webkit-transform: rotateY(360deg);
	}
}
.main .header #icon {
	max-width:20%;
	margin:0 0 20px;
}
.divider {
	margin:10px auto 0px;
	width:90%;
	height:1px;
	background-color:var(--color);
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
input[type="text"],
input[type="number"] {
	font-size:20px;
	border:solid var(--color) 1px;
	color:#000;
	border-radius:3px;
	padding:0 2px;
	-moz-appearance: textfield;
}
#login #phone input[type="text"],
#login #phone input[type="number"] {
	text-align:center;
	border-width:0 !important;
}
.button {
	position:relative;
	left:50%;
	transform:translateX(-50%);
	border-radius:55px;
	width:230px;
	height:40px;
	background:var(--color);
	color:#fff;
	display:flex;
	justify-content: center;
	align-items: center;
	font-size:20px;
	padding:initial;
/*
	min-width:150px;
	font-size:14px;
	background:#333;
	color:#fff;
	padding:5px 10px;
	border:none;
	border-radius:5px;
	line-height:1.5em;
	box-shadow:0 0 5px 5px #e7e7e7;
*/
	box-shadow:initial !important;
}
.button.compact {
	font-size:12px;
}
.button.fixed {
	position:fixed;
	bottom:10px;
}
.button.fixed-footer {
	position:fixed;
	bottom:70px;
}
.button.disabled {
	background-color:#999 !important;
}
.button.inverse {
	background:#fff;
	color:var(--color);
	border:solid var(--color) 1px;
}
.button-group {
	display:inline-grid;
	column-gap:10px;
	width:calc(100% - 10px);
	margin-right:10px;
}
.button-group.two-wide {
	grid-template-columns:50% 50%;
}
.button-group.two-wide .button {
	width:calc(100% - 30px);
	min-width:initial;
}
.button-group.three-wide {
	grid-template-columns:33% 33% 33%;
}
.button-group.three-wide {
	width:calc(33% - 20px);
	min-width:initial;
}
.reqd {
}
.reqd:after {
	content:' *';
}
.wrapper-fixed {
	top:0;
	width:100%;
}
.wrapper {
	width:calc(100vw - 30px);
	width:calc(100% - 30px);
	margin:5px auto 0;
}
.scrollable {
	overflow-x:hidden;
	overflow-y:auto;
	width:100%;
	padding:0 2px 0 0;
}

.signup-page #city-wrapper {
	display:none;
}

.tenant {
	display:table;
	width:100%;
	margin:0 auto;
	border:solid var(--border-color) 1px;
	box-shadow:rgba(0,0,0,0.25) 2px 0px 8px;
	background-color:var(--mid-gray);
	color:#fff;
	font-weight:700;
}
.tenant-name {
	padding:10px;
	width:75%;
	display:table-cell;
	font-size:14px;
	font-weight:700;
}
.tenant-points {
	padding:10px 20px;
	width:25%;
	display:table-cell;
	text-align:right;
}
.points {
/*
	display:table;
	width:calc(100% - 4px);
	height:75px;
	background:#fff;
	color:#000;
	margin:2px auto 10px;
	border-radius:10px;
	box-shadow:0 0 5px 0px #aaa;
*/
	display:flex;
	justify-content:center;
	align-items:center;
	height:50px;
	margin:0 0 10px;
	border-radius:5px;
	background:var(--color);
	color:#fff;
	font-size:20px
}
.points.standalone {
	background:initial;
	color:var(--color);
}
.points-number {
	display:table-cell;
	width:75%;
	height:100%;
	text-align:center;
	vertical-align:middle;
	text-transform:uppercase;
	font-size:40px;
	font-weight:700;
}
.points-divider {
	width:1px;
	height:50%;
	margin:20px 0;
	background-color:#000;
	vertical-align:middle;
}
.points-label {
	display:table-cell;
	text-align:center;
	vertical-align:middle;
	text-transform:uppercase;
	font-size:14px;
	font-weight:initial;
}
.locations {
	margin:5px auto 15px;
}
.location {
//	display:table;
	width:100%;
	margin:0 auto 10px;
	border:solid var(--color) 1px;
//	box-shadow:rgba(0,0,0,0.25) 2px 0px 8px;
	box-shadow:initial !important;
	font-weight:normal;
	border-radius:12px;
	background-color:var(--white);
	color:var(--color);
}
.location.compact {
	margin:0 auto 5px;
}
.location.single {
	border-top:none;
	margin-bottom:15px;
}
.location-details {
	display:table;
	width:100%;
	height:70px;
//	line-height:60px;
	border-radius:12px;
	background-color:var(--white);
	color:var(--color);
}
.location-details .location-image {
	width:20%;
	display:table-cell;
//	position:relative;
}
.location-image {
	width:70px;
	height:70px;
	position:relative;
}
.location-image .circular-image {
	border: 0px solid black;
	box-sizing: border-box;
	position: absolute;
	background-color: rgb(255, 255, 255);
	border-color: rgb(161, 161, 166);
	border-radius: 100%;
	border-width: 1px;
	overflow: hidden;
	height: 60px;
	width: 60px;
	margin:5px;
}
.location-photo {
	background-color: rgba(0, 0, 0, 0);
	position: absolute;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	height: 100%;
	width: 100%;
}
.location-logo {
	background-color:rgba(0, 0, 0, 0);
	background-position:center center;
	background-repeat:no-repeat;
	background-size:cover;
	height:100%;
	width:100%;
}
.location-name {
	width:70%;
	display:table-cell;
	vertical-align:middle;
	padding:5px 10px;
	font-size:16px;
	font-weight:bold;
/*
	white-space:nowrap;
	text-overflow:ellipsis;
	overflow:hidden;
*/
}
.shop-info-header {
	font-weight:bold;
	margin:0 0 10px;
}
.shop-info-text {
	margin:0 0 20px
}
.arrow {
	width:10%;
	display:table-cell;
	vertical-align:middle;
}
.arrow div {
	width:25px;
	height:25px;
	border-radius:13px;
//	opacity:0.60;
	display:flex;
	justify-content:center;
	align-items:center;
	background:var(--color);
}
.arrow div span {
	color:#fff;
	transform:rotate(225deg);
	margin-right:5px;
	color:var(--white);
}
.order-now {
	position:relative;
	left:50%;
	transform:translateX(-50%);
	width:150px;
	text-align:center;
	padding:0 10px;
	font-weight:bold;
	color:#f00;
	border-style:solid;
	border-width:1px;
	border-color:#f00;
	border-radius:15px;
	line-height:30px
}
.location-visits {
	padding:5px 10px;
	display:table-cell;
	width:100%;
	text-align:right;
}
.location-actions {
	padding:5px 0;
	font-size:12px;
	font-weight:initial;
	text-align:center;
	text-transform:uppercase;
	background-color:var(--dark-gray);
	color:#fff;
	border-top:solid var(--border-color) 1px;
}

.purchase,
.redemption {
	background:rgba(255,255,255,0.2);
	background:var(--color-light);
	width:100%;
	margin:0 auto 10px;
	border:solid var(--border-color) 1px;
//	box-shadow:rgba(0,0,0,0.25) 2px 0px 8px;
	box-shadow:initial !important;
	width:calc(100% - 15px);
	color:var(--color);

	border-radius:25px;
	padding:5px;
}
.purchase-details,
.redemption-details {
	display:table;
//	border-bottom:solid var(--border-color) 1px;
	border-bottom:initial !important;
	background-color:var(--light-gray);
	background-color:initial !important;
//	color:#fff;
	width:100%;
//	padding:5px;
	margin:10px;
	width:calc(100% - 20px);
}
.purchase-name,
.redemption-name {
	width:65%;
	height:30px;
	display:table-cell;
//	padding:5px 10px;
	padding:initial !important;
	font-size:18px;
	font-weight:700;
}
.purchase-points,
.redemption-points {
	width:35%;
	height:100%;
	display:table-cell;
	text-align:right;
	font-size:16px;
	font-weight:700;
	vertical-align:middle;
}
.purchase-date,
.redemption-date {
	display:table-cell;
	width:65%;
	height:25px;
	font-size:14px;
}
.purchase-spend {
	display:table-cell;
	width:35%;
	text-align:right;
	font-weight:700;
	font-size:14px;
}

.rewards-alert {
	color:#f00;
	text-align:center;
	margin-bottom:10px;
	display:none;
}
.reward {
	background:rgba(255,255,255,0.2);
	background:var(--color-light);
	width:100%;
	margin:0 auto 10px;
	border:solid var(--border-color) 1px;
//	box-shadow:rgba(0,0,0,0.25) 2px 0px 8px;
	box-shadow:initial !important;
	width:calc(100% - 15px);

	border-radius:25px;
	padding:5px;
}
.reward-details {
	display:table;
//	border-bottom:solid var(--border-color) 1px;
	border-bottom:initial !important;
	background-color:var(--light-gray);
	background-color:initial !important;
	color:#fff;
	width:100%;
//	padding:5px;
	margin:10px;
	width:calc(100% - 20px);
}
.reward-name {
	width:60%;
	display:table-cell;
//	padding:5px 10px;
	padding:initial !important;
	font-size:18px;
	color:var(--color);
}
.reward-points {
	padding:13px 10px;
	width:25%;
	height:100%;
	display:table-cell;
	text-align:center;
	font-size:14px;
	font-weight:700;
	background:var(--color);
	border-radius:100px !important;
//	color:#fff !important;
}
.reward-actions {
	padding:5px 0;
	font-size:12px;
	font-weight:initial;
	text-align:center;
	text-transform:uppercase;
	background:#666;
	color:var(--color);
}
.popup-points,
.popup-reward,
.popup-needed {
	font-weight:bold;
}
.media {
	margin:5px 0 0;
	text-align:left;
	font-size:10px;
	display:none;
}
.media .image {
	max-width:100%;
	max-height:200px;
	border-radius:10px;
	border: solid #fff 1px;
}
.shadow {
	box-shadow: 0 10px 20px 0 rgba(0,0,0,0.5), 0 10px 20px 0 rgba(0,0,0,0.5);
}
.phone {
	display:none;
	margin-top:10px;
	text-align:center;
	font-size:12px;
	color:#000;
}
.message-holder {
	margin:0 auto;
	width:calc(100% - 8px);
	background:var(--color-light);
	border:solid var(--color) 1px;
	border-radius:12px;
	box-shadow:initial !important;
}
.message {
	margin:5px 0 10px;
//	background-color:#fff;
	background-color:initial !important;
	padding:10px 10px;
//	overflow-y:auto;
	color:#000;
	box-shadow: rgba(0,0,0,0.25) 2px 2px 8px;
}
.message a {
	color:#00f;
	text-decoration:underline;
}
.message-sent {
//	text-align:center;
	font-size:12px;
	font-weight:bold;
	margin:15px 0 5px 10px;
}

.deal-holder {
	margin:10px 5px 0;
	border-radius:12px;
	background-color:var(--color-light);
	border:solid var(--color) 1px;
	color:var(--color);
	box-shadow:0 0 5px 1px #d7d7d7;
	box-shadow:initial !important;
	display: block;
}
.deals-tabs {
	display:table;
	width:100%;
	margin-top:20px;
	border:solid #ccc 0;
	border-width:0 0 1px 0;
	padding: 0 0 15px 0
}
.deal {
	display:table;
	position:relative;
}
.deal-image {
	width:25%;
	vertical-align:middle;
	overflow:hidden;
}
.deal-text {
	padding:0 5px 5px 10px
}

.checkmark-wrapper {
    display: block;
    position: relative;
    padding: 5px 35px;
    margin-bottom: 15px;
    cursor: pointer;
//    font-size: 18px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.checkmark-wrapper input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 25px;
    width: 25px;
    background-color:#fff;
	border-radius:5px;
	border:solid var(--color) 1px;
}
.checkmark-wrapper:hover input ~ .checkmark {
    background-color:#eee;
}
.checkmark-wrapper input:checked ~ .checkmark {
    background-color:var(--checkback);
}
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
.checkmark-wrapper input:checked ~ .checkmark:after {
    display: block;
}
.checkmark-wrapper .checkmark:after {
    left: 9px;
    top: 5px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

.tgl {
	display: none;
}
.tgl,
.tgl:after,
.tgl:before,
.tgl *,
.tgl *:after,
.tgl *:before,
.tgl + .tgl-btn {
	box-sizing: border-box;
}
.tgl::-moz-selection,
.tgl:after::-moz-selection,
.tgl:before::-moz-selection,
.tgl *::-moz-selection,
.tgl *:after::-moz-selection,
.tgl *:before::-moz-selection,
.tgl + .tgl-btn::-moz-selection {
	background: none;
}
.tgl::selection,
.tgl:after::selection,
.tgl:before::selection,
.tgl *::selection,
.tgl *:after::selection,
.tgl *:before::selection,
.tgl + .tgl-btn::selection {
	background: none;
}
.tgl + .tgl-btn {
	outline: 0;
	display: block;
	width: 4em;
	height: 2em;
	position: relative;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
.tgl + .tgl-btn:after,
.tgl + .tgl-btn:before {
	position: relative;
	display: block;
	content: "";
	width: 50%;
	height: 100%;
}
.tgl + .tgl-btn:after {
	left: 0;
}
.tgl + .tgl-btn:before {
	display: none;
}
.tgl:checked + .tgl-btn:after {
	left: 50%;
}
.tgl-flat + .tgl-btn {
	padding: 2px;
	transition: all 0.2s ease;
	background: #fff;
	border: 4px solid var(--color-mid);
	border-radius: 2em;
}
.tgl-flat + .tgl-btn:after {
	transition: all 0.2s ease;
	background: var(--color-mid);
	content: "";
	border-radius: 1em;
}
.tgl-flat:checked + .tgl-btn {
	border: 4px solid var(--color);
}
.tgl-flat:checked + .tgl-btn:after {
	left: 50%;
	background: var(--color);
}

.tab-name {
	padding:0 0 3px 0;
}
.tab-name.active-tab {
	font-weight:bold;
	border:solid var(--color) 0px;
	border-width:0 0 4px 0;
}

.optin-page #name-wrapper,
.optin-page #email-wrapper,
.optin-page #birthdate-wrapper,
.optin-page #zip-wrapper {
	display:none;
}

@media(max-width:960px) AND (orientation:landscape) {
	.container {
		max-width:100%;
		overflow-y:auto;
	}
	.message-holder {
		display:flex;
	}

	.media {
		width:20%;
		margin:0 auto;
	}
	.message {
		width:75%;
		margin:0 auto;
	}
}
.overlay {
	display:none;
	z-index: 1000;
	background-color:rgba(0,0,0,0.5);
	position:absolute;
	top:0px;
	right:0px;
	bottom:0px;
	left:0px;
	color: #000;
	max-width:100%;
	max-height:100%;
}
.overlay .contents {
	position:fixed;
	top:10px;
	right:10px;
	bottom:10px;
	left:10px;
	background:#fff;
	color:#000;
	border-radius:10px;
	padding:10px;
	height:100%;
}
.overlay .contents.centered {
	top:50%;
	left:50%;
	right:0;
	transform: translate(-50%, -50%);
	bottom:initial;
	height:initial;
	width:initial;
}
@media(min-width:450px) {
	.overlay .contents.centered {
		left:50%;
		transform: translateX(-50%) translateY(-50%);
		max-width:450px;
	}
}
.overlay .contents.transparent {
	background:initial;
	padding:0;
}
.overlay-close {
	position:absolute;
	top:10px;
	right:10px;
}
.overlay-header {
	text-align:center;
//	font-size:24px;
//	font-weight:bold;
	margin:20px;
}
.footer {
	position:fixed;
	position:absolute;
	bottom:0;
	font-size:10px;
	display:table;
	width:100%;
	height:60px;
	padding-bottom: constant(safe-area-inset-bottom);
	padding-bottom: env(safe-area-inset-bottom);
	background:var(--color);
	color:#fff;
	-webkit-box-shadow: 0px -2px 5px 0px rgba(256,256,256,0.5);
	-moz-box-shadow:0px -2px 5px 0px rgba(256,256,256,0.5);
	box-shadow: 0px -2px 5px 0px rgba(256,256,256,0.5);
}
.footer.dark {
	color:#000;
}

.footer img {
	height:25px;
}
