@import url('https://fonts.googleapis.com/css2?family=Averia+Libre:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
:root {
    --primary-font: 'Outfit', sans-serif;
    --btn-color: #D63964;
    /* Pinkish Red */
    --btn-hover: #b52b50;
    --text-dark: #333333;
    --bg-blue-start: #6EC6F0;
    /* Approximate from mockup */
    --bg-blue-end: #3AB4E8;
    --bg-pricing-start: #56CCF2;
    --bg-pricing-end: #2F80ED;
}

body {
    font-family: var(--primary-font);
    color: var(--text-dark);
    -webkit-font-smoothing: antialiased;
}

/* Navbar */
.navbar-brand img {
    height: 80px;
}

.nav-link {
    color: var(--text-dark) !important;
    font-weight: 500;
}

.nav-title,
.footer-title {
    font-size: 1.5rem;
    font-weight: 700;
    font-family: "Averia Libre", system-ui;
    color: var(--bg-blue-end)
}

.btn-primary {
    background-color: var(--btn-color);
    border-color: var(--btn-color);
    border-radius: 50px;
    /* Pill shape */
    font-weight: 500;
    padding: 0.5rem 1.5rem;
}

.btn-primary:hover {
    border-width: 2px;
    background-color:white !important;
    border-color: var(--btn-color);
    color: var(--btn-color);
}

/* Hero Section */
.hero-section {
    background: url('assets/background.png') repeat;
    /* Assuming pattern */
    background-size: auto;
    margin-top: 50px;
    margin-bottom: 50px;
}

.hero-section h1 {
    font-weight: 800;
    line-height: 1.2;
}

.btn-danger {
    background-color: var(--btn-color);
    border-color: var(--btn-color);
    border-radius: 50px;
}

.btn-danger:hover {
    background-color: var(--btn-hover);
    border-color: var(--btn-hover);
}

.hero-img {
    max-height: 350px;
    width: auto;
    /* border: 2px solid #333; */
    /* Mockup has a border style */
}

/* Scalloped Edge Mixin Concept */
.how-it-works {
    background: linear-gradient(180deg, #48A0F8 0%, #A2D9F7 100%);
    padding-top: 80px;
    padding-bottom: 80px;
    margin-top: 40px;
    position: relative;
    z-index: 1;
}


/* Bottom Scallop */
.wave-shape-bottom {
    height: 100px;
    width: 100%;
    position: absolute;
    bottom: 0px;
    background: radial-gradient(circle, transparent 56px, #ffffff 20px);
    background-size: 100px 150px;
    background-position: -23px -50px;
    background-repeat: repeat-x;
    filter: drop-shadow(4px -9px 4px rgba(0, 0, 0, 0.3));
}

/* Note: Implementing perfect scalloped waves purely with CSS gradients can be tricky to align. 
   An alternative is mask-image, but radial-gradient is a good fallback. 
   Actually, a row of circles is better. */

.wave-shape-top {
    height: 100px;
    width: 100%;
    position: absolute;
    top: 0px;
    background: radial-gradient(circle, transparent 56px, #ffffff 20px);
    background-size: 100px 150px;
    background-position: -23px 0px;
    filter: drop-shadow(4px 9px 4px rgba(0, 0, 0, 0.3));
    background-repeat: repeat-x;
}



.section-title {
    font-weight: 700;
}

.step-card {
    /* border: 1px solid #ddd; */
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.arrow-icon {
    max-width: 100px;
    margin-top: 20px;
}

.flip-vertical {
    transform: scaleY(-1);
}

/* Templates Section */
.template-card {
    min-height: 250px;
}

/* Pricing Section */
.pricing-section {
    background: linear-gradient(180deg, #48A0F8 0%, #A2D9F7 100%);
    margin-top: 40px;
    box-shadow: inset 0 5px 9px 2px #00000059, inset 0px -5px 9px 2px #00000059;
    /* Space for the bottom wave of previous section if it overlaps, but they are separate */
}

/* Wait, Pricing section in mockup is also Blue Gradient. */

.pricing-card {
    border-radius: 15px;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.pricing-card:hover {
    transform: translateY(-5px);
}

.pricing-card .price {
    color: #000;
}

.pricing-card hr {
    opacity: 1;
}

/* Accordion */
.accordion-button {
    background-color: #ddd;
    color: #333;
    font-weight: 700;
    box-shadow: none !important;
}

.accordion-button:not(.collapsed) {
    background-color: #ccc;
    color: #000;
}

.accordion-item {
    background: transparent;
    padding: 10px;
    box-shadow: 1px 0px 11px 1px #0003
}

.accordion-header {
    border-radius: 0.5rem;
}

.footer {
    box-shadow: -2px -3px 12px #3333;
}

/* Footer */
footer a:hover {
    text-decoration: underline !important;
}

.hero-btn {
    align-self: flex-start;
}

.redeem-container{
    width: 100%;
    height: 100%;
    position: fixed;
    background-color: #22222288;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.redeem-modal *{
    font-family: "Playfair Display", serif;
    color: #333;
}
.redeem-modal{
    background-color: #DADADA;
    padding: 40px;
    border-radius: 20px;
    box-shadow: 1px -2px 5px 4px #00000055 inset;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    position: relative
}
.redeem-modal h2{
    text-align: center;
    font-size: 24px;
    font-style: bold;
}

.redeem-icon{
    text-align: center;
}
.redeem-modal h4{
    text-align: center;
    font-size: 16px;
    font-weight: 500;
}
.redeem-success{
    text-align: center;
}
.redeem-status{
    margin-bottom: 20px;
}
.redeem-close{
    position: absolute;
    top: 10px;
    right: 20px;
    cursor: pointer;
    
}
.loading-container, .share-link-container{
    background-color: #000e;
    width: 100vw;
    min-height: 100vh;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
}

.share-link-container{
    /* display: none; */
    z-index: 99998;
}
.share-link-dialog{
    width: 40%;
    background-color: #eee;
    position:relative;
    padding: 2%;
    border-radius: 20px;
    box-shadow: 1px 0px 8px 5px #0008 inset;
}

.share-close{
    position: absolute;
    width: 5%;
    top: 8%;
    right: 2%;
    opacity: 0.6;
    cursor: pointer;
}

.share-close:hover{
    opacity: 1;
}

.share-close img{
    width: 75%;
}
.copy-button{
    padding: 5px;
    margin-left: 20px;
    border-radius: 50%;
    background-color: var(--btn-color);
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.share-hover-button{
    z-index: 999;
    background-color: var(--btn-color);
    padding: 20px;
    border-radius: 50%;
    cursor: pointer;
    position: absolute;
    top: -20px;
    right: -20px;
    box-shadow: 2px 0 5px 5px #3333;
    transition: 0.3s all ;
}

.share-hover-button:hover{
    background-color: var(--btn-hover);
    transform: scale(1.05);
}
.copy-button img{
    width: 50%;
}
.copy-button:hover{
    background-color: var(--btn-hover);
}
.share-link-title{
    font-size: 1.5rem;
    font-weight: 600;
    color: #333;
}
.share-link{
    font-size: 1.2rem;
    padding: 1% 3%;
    border-radius: 10px;
    background-color: #fff;
    width: 80%;
}
.redeem-close:hover{
    color: #f00;
    font-size: 18px;
}
.redeem-button{
    background-color: #A6E228;
    padding: 8px 16px;
    border-radius: 20px;
    box-shadow:  1px -2px 5px 4px #00000055 inset;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    
}

.redeem-button:hover{
    transform: scale(1.05);
}
.divider-pink{
    border: 1px solid var(--btn-color);
    margin: 10px 0;
    width: 70%;
}
.dashboard-menu-item{
    cursor: pointer;
    transition: 0.2s all;
    margin: 10px 0;
}
.dashboard-menu-item.active{
    color: var(--btn-color);
}
.dashboard-menu-item:hover{
    color: var(--btn-hover);
    transform: scale(1.05);
}
.dashboard-left-profile{
    /* max-width: 120px; */
    width: 50%;
}
.dashboard-right{
    min-height: 80vh;
    background-color: #eee;
    padding: 20px;
}
.practices-item{
    min-width: 200px;
    padding: 1%;
    background-color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    border-radius: 10px;
    margin: 15px;
}
.dashboard-practice-share{
    display: flex;
    aspect-ratio: 1/1;
    justify-content: center;
    align-items: center;
    margin: 0 10px;
    border: 2px solid var(--btn-color);
    border-radius: 50%;
    cursor: pointer;
    padding: 10px;
    transition: 0.2s all;
}
.template{
    display: none;
}
.dashboard-practice-share i{
    color:var(--btn-color);
}
.dashboard-practice-share:hover{
    background-color: var(--btn-color);
    transform: scale(1.05);
}
.dashboard-practice-share:hover i{
    color:white;
}
.practices-image{
    /* width: 80%; */
}
.dashboard-practice-title{
    font-size: 1.5rem;
}
.practices-image img{
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;

}
/* Responsive adjustments */
@media (max-width: 991px) {
    .arrow-container {
        display: none;
    }

    .hero-section {
        margin-top: 0px;
        margin-bottom: 0px;
    }

    .how-it-works {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}

@media (max-width: 767px) {
    .hero-btn {
        align-self: center;
    }

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

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