h1 {
    padding-top: 1.5rem ;
}
.modal-menu {
    max-width: 768px ;
    margin: 0 auto ;
    padding: 1rem ;
}
.header {
    height: calc(55px + (env(safe-area-inset-top))*0.75) !important ;
}
.header-navbar {
    width: 100%;
    max-width: 768px;
    display: flex;
    justify-content: center;
    background-color: var(--bs-light);
    /* position: fixed;
    top: 3.4rem; */
    z-index: 100;
    box-shadow: #00000030 1px 4px 10px 1px;
}
.header-navbar > li {
    width: 100% ;
    text-align: center ;
}
.header-navbar > li > a.nav-link.active {
    border-bottom: 3px solid var(--tertiary-active) ;
}
.logo-header {
    height: 80% ;
}
.header > button > i, .header > .header-title  {
    color: var(--bs-white)!important ;
}
.cpanel-link {
    position: absolute;
    right: 5%;
    top: 20%;
    font-size: 1.7rem;
    color: var(--bs-light);
    z-index: 9999;
}
.cpanel-link:hover {
   filter:brightness(.8) ; 
   color: var(--primary-accent) ;
}
#page {
    position: relative ;
    min-height: 60vh ;
    overflow-x: hidden ;
    margin-top: calc(95px + (env(safe-area-inset-top))*0.75) ;
    margin-bottom: calc(60px + (env(safe-area-inset-bottom))*1.1) ;
}
.pwa-container {
    max-width: 768px ;
}
.page-content {
    overflow-x: hidden;
    transition: all 300ms ease;
    z-index: 90;
}
.settings-form-container {
    height: calc( 100vh - (115px - (env(safe-area-inset-top) + env(safe-area-inset-bottom)) * 1.85 ));
    margin-bottom: 0px!important;
}
/* Coupon Block */
@media (max-width: 375px) {
    .modal-title {
        font-size: 1.2rem ;
    }
}
.coupon-block-content {
    position: absolute;
    top: 0 ;
}
.venue-logo {
    object-fit: contain;
    width: 50% ;
}
@media (min-width: 768px) {
    .venue-logo {
        width: 75% ;
    }
}
@media (max-width: 425px) {
    .coupon-block-text > h4 {
        font-size: .7rem ;
    }
}
.tab-pane > iframe {
    min-height: 46vh ;
}

.modal-overlay {
    background-color: black;
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0 ;
    opacity: 45%;
    display: none ;
}
.modal-overlay-visible {
    display: block!important ;
    z-index: 1;

}
.coupon-confirm-modal {
    width: 100%;
    height: 50%;
    z-index: 9999 ;
}
.coupon-confirm {
    padding: 3rem 1rem!important ;
}
@media (max-width: 576px) {
    .coupon-confirm-modal {
        width: 100% ;
        margin-left: 0px ;
    }
}
.coupon-body {
    position: relative ;
    display: inline ;
    width: calc(100% - 8px - calc(3 * var(--bs-gutter-x))) ;
    margin: 0 calc(.5 * var(--bs-gutter-x)) 1rem calc(2.5 * var(--bs-gutter-x)) ;
    background-color: var(--bs-body-bg) ;
    border-radius: 1rem ;
    box-shadow: #00000059 2px 3px 5px 2px ;
    padding: .75rem ;
    font-size: .8rem ;
}
.coupon-body:hover {
    background-color: var(--tertiary-inactive) ;
    opacity: .9;
}
.coupon-info {
    padding-left: var(--bs-gutter-x) ;
}
.coupon-text-image-container {
    display: flex ;
    align-items: center ;
}
.coupon-featured-image {
    width: 25% ;
    box-shadow: #00000059 2px 3px 5px 2px ;
    border-radius: 15% ;
    margin-left: calc(-7rem - 5px - (-2.5 * var(--bs-gutter-x))) ;
}
.back-btn-confirm-claim {
    color: var(--secondary-accent-heading)!important;
}
.coupon-info h1 {
    font-size: 2em ;
    font-weight: 400 ;
}
.coupon-info h2 {
    font-size: 1.75em ;
    font-weight: 600;
}
.coupon-info p {
    font-size: 1em ;
    font-weight: 400 ;
    margin-bottom: 0px ;
}
.distance-from {
    position: absolute;
    bottom: -25px;
    right: 20px;
    font-weight: 800;
    color: var(--bs-orange);
}
@media (max-width: 576px) {
    .coupon-body {
        font-size: .6rem ;
    }
    .coupon-info h1 {
        margin: 0 ;
        padding: 0 ;
    }
    .coupon-info h2 {
        line-height: 20px ;
    }
    .coupon-info p {
        line-height: 1.2em;
        width: 90%;
    }
}
.redeem-check-switch {
    width: 21em!important;
    padding: 1rem!important;
}
.redeem-check-switch-text {
    position: absolute;
    bottom: -8px;
    left: 0;
}
.choosen-icon {
    margin: 0.5rem;
    color: var(--bs-primary);
}
.coupon-nav-position {
    position: fixed ;
    bottom: 0 ;
    width: 100% ;
}
.modal-height-control {
    height: 80vh ;
    max-height: 700px ;
}.form-check-input:checked {
    background-color: var(--primary-accent)!important;
}
@media (max-height: 600px) {
    .coupon-nav-position {
        position: relative;
    }
    .modal-height-control {
        height: 90vh ;
        max-height: 800px ;
    }
}
.venue-logo-title-block {
    position: absolute ;
    bottom: calc(0px - 12.5vw) ;
    left: auto ;
    padding-left: calc(1 * var(--bs-gutter-x)) ;
    padding-right: calc(1 * var(--bs-gutter-x)) ;
    display: flex ;
    align-items: flex-end;
}
.venue-logo-title-block > img {
    width: 25vw ;
    aspect-ratio: 1;
    object-fit: contain;
}
.coupon-body > .heart-icon {
    position: absolute ;
    right: 1rem ;
    top: 1rem ;
    font-size: 2.8em ;
}
span > .heart-icon {
    font-size: 2.3em;
    position: absolute!important;
    right: 1.4em!important;
    bottom: 0.1em!important;
}
.venue-title-address-container {
    font-size: 1rem ;
    width: 50% ;
}
.day-date-redeem-btn {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    grid-gap: 1px;
}
@media (max-width: 500px) {
    .venue-title-address-container {
        font-size: .9rem;
        width: 100%;
        background-color: var(--bs-card-bg);
        position: relative;
        top: 8px;
    }
    .venue-title-address-container h3 {
        font-size: 1.2em;
        margin-bottom: 0vw;
    }
    .venue-title-address-container h4 {
        font-size: .8em;
        margin-bottom: 0vw;
    }
}
@media (max-width: 378px) {
    .day-date-redeem-btn {
        grid-template-columns: repeat(2,1fr);
    }
}
.heart-icon-form {
    position: absolute;
    right: 15%;
    top: 60%;
    font-size: 2rem;
}
@media (min-width: 576px) {
    .venue-logo-title-block {
        position: absolute ;
        bottom: calc(0px - 4rem) ;
        left: auto ;
        padding-left: calc(1 * var(--bs-gutter-x)) ;
        padding-right: calc(1 * var(--bs-gutter-x)) ;
        display: flex ;
        align-items: flex-end ;
    }
    .venue-logo-title-block > img {
        width: 8rem ;
        aspect-ratio: 1;
        object-fit: contain;
    }
}
.coupon-claim-button {
    background-color: var(--bs-primary);
    padding: 1rem;
}

.coupon-modal-tab-navigation {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    border-bottom-left-radius: .4rem;
    border-bottom-right-radius: .4rem;
}
.close-modal-button {
    position: absolute;
    top: -5px;
    right: 1rem;
    z-index: 99;
    font-size: 1.8rem;
}
.coupon-modal-tab-navigation > div > .active {
    background-color: var(--primary-accent-hover) ;
}
.coupon-claim-text-good {
    color: var(--primary-accent-hover) ;
}
.coupon-claim-text-low {
    color: var(--secondary-accent-heading) ;
}
.coupon-claim-text-none {
    color: var(--tertiary-inactive);
}
.coupon-claim-button-good {
    background-color: var(--primary-accent-hover) ;
    color: var(--text-colour-light)!important ;
}
.coupon-claim-button-low {
    background-color: var(--secondary-accent-heading) ;
    color: var(--text-colour-light)!important ;
}
.coupon-claim-button-none, .coupon-claim-button-none > h2, .coupon-claim-button-none > p   {
    background-color: var(--tertiary-inactive) ;
    color: var(--text-colour-dark)!important ;
}
.coupon-text-highlight {
    color: var(--tertiary-active) ;
}
.greyscale-apply {
    filter: grayscale(1) ;
}
@keyframes spin {
    from {transform: translate(-50%, -50%) rotate(0);}
    to   {transform: translate(-50%, -50%) rotate(360deg);}
}
.border-animation {
    position: relative ;
    overflow: hidden ;
    font-size: 2rem ;
    color: var(--text-colour-light) ;
    padding: 3rem ;
    border-radius: 1.5rem ;
    display: inline-block ;
    width: 100% ;
    text-align: center ;
    margin-top: 1rem ;
}
.border-animation::before {
    content: '';
    display: block ;
    background: conic-gradient(var(--primary-accent), var(--primary-accent-hover), var(--text-colour-light), var(--primary-accent-hover), var(--primary-accent)) ;
    width: calc(100% * 1.41421356237) ;
    padding-bottom: calc(100% * 1.41421356237) ;
    position: absolute ;
    left: 50% ;
    top: 50% ;
    z-index: -2 ;
    animation: spin 4s linear infinite ;
}
.border-animation::after{
    content: '' ;
    position: absolute; 
    inset: .33rem ;
    background-color: var(--primary-accent) ;
    z-index: -1 ;
    border-radius: 1.5rem ;
}
@media (max-width: 576px) {
    .tabs-rounded a:first-child {
        border-top-left-radius: 0px!important;
        border-bottom-left-radius: 0px!important;
    }
    .tabs-rounded a:last-child {
        border-top-right-radius: 0px!important;
        border-bottom-right-radius: 0px!important;
    }
    .tab-controls a {
        border-right: solid 1px rgba(0, 0, 0, 0.07)!important;
    }
}
.category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}
.map-container {
    height: calc(100vh - 155px);
}
.StripeElement {
    padding-top: 17px ;
    border: 1px solid rgba(0, 0, 0, 0.08) !important ;
}