/* ==========================================
   IMAGINE SHELTER
   Premium Wellness UI
========================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');

:root{

--bg:#F8FAF8;
--surface:#FFFFFF;
--surface-soft:#FDFDFC;

--primary:#3F6652;
--primary-dark:#2F4C3D;
--secondary:#8DAE9B;

--accent:#EAF2EC;

--text:#25322B;
--text-light:#64756C;

--border:#E4EBE5;

--shadow:0 15px 45px rgba(0,0,0,.08);

--radius:28px;

--max-width:1180px;

--transition:.35s ease;

}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{

font-family:"Inter",sans-serif;

background:var(--bg);

color:var(--text);

line-height:1.8;

overflow-x:hidden;

}

img{

display:block;

max-width:100%;

}

a{

text-decoration:none;

color:inherit;

}

section{

padding:110px 20px;

}

.container{

width:min(100%,var(--max-width));

margin:auto;

}

h1,h2,h3{

font-family:"Cormorant Garamond",serif;

font-weight:600;

color:var(--text);

line-height:1.15;

}

h1{

font-size:clamp(3rem,6vw,5.5rem);

}

h2{

font-size:clamp(2.2rem,4vw,3.3rem);

margin-bottom:20px;

}

h3{

font-size:1.55rem;

margin-bottom:15px;

}

p{

color:var(--text-light);

font-size:1.05rem;

}

/* ==========================================
NAVBAR
========================================== */

.navbar{

position:fixed;

top:0;

left:0;

width:100%;

z-index:1000;

backdrop-filter:blur(18px);

background:rgba(255,255,255,.78);

border-bottom:1px solid rgba(255,255,255,.4);

}

.nav-container{

max-width:1180px;

margin:auto;

padding:20px;

display:flex;

justify-content:space-between;

align-items:center;

}

.logo{

display:flex;

align-items:center;

gap:10px;

font-weight:700;

font-size:1.3rem;

color:var(--primary);

}

.logo-image{

    height:56px;

    width:auto;

    display:block;

}

.logo span{

font-size:1.8rem;

}

.nav-links{

display:flex;

gap:35px;

}

.nav-links a{

font-weight:500;

transition:var(--transition);

position:relative;

}

.nav-links a::after{

content:"";

position:absolute;

left:0;

bottom:-6px;

height:2px;

width:0;

background:var(--primary);

transition:.3s;

}

.nav-links a:hover::after{

width:100%;

}

.nav-button{

background:var(--primary);

color:white;

padding:13px 24px;

border-radius:999px;

transition:var(--transition);

}

.nav-button:hover{

background:var(--primary-dark);

transform:translateY(-2px);

}

/* ==========================================
MOBILE NAVIGATION
========================================== */

.menu-toggle{

    display:none;

    background:none;

    border:none;

    font-size:2rem;

    color:var(--primary);

    cursor:pointer;

}

/* ==========================================
HERO
========================================== */

.hero{

padding-top:180px;

padding-bottom:130px;

position:relative;

overflow:hidden;

}

.hero::before{

content:"";

position:absolute;

width:700px;

height:700px;

border-radius:50%;

background:#EAF3ED;

top:-280px;

right:-180px;

filter:blur(20px);

}

.hero::after{

content:"";

position:absolute;

width:500px;

height:500px;

background:#EDF5EF;

border-radius:50%;

left:-180px;

bottom:-180px;

filter:blur(20px);

}

.hero-content{

position:relative;

z-index:2;

max-width:850px;

margin:auto;

text-align:center;

}

.hero h1{

margin-bottom:28px;

}

.hero-text{

font-size:1.18rem;

max-width:760px;

margin:auto;

margin-bottom:45px;

}

.trust-badges{

display:flex;

justify-content:center;

gap:18px;

flex-wrap:wrap;

margin-bottom:55px;

}

.trust-badges span{

background:white;

padding:12px 20px;

border-radius:999px;

box-shadow:var(--shadow);

font-weight:500;

}

.hero-btn{

display:inline-flex;

align-items:center;

justify-content:center;

padding:18px 40px;

border-radius:999px;

background:var(--primary);

color:white;

font-weight:600;

font-size:1rem;

transition:var(--transition);

box-shadow:0 15px 35px rgba(63,102,82,.25);

}

.hero-btn:hover{

background:var(--primary-dark);

transform:translateY(-5px);

box-shadow:0 25px 45px rgba(63,102,82,.25);

}

/* ==========================================
PROMISE SECTION
========================================== */

.promise-section{

    background:var(--surface-soft);

    text-align:center;

}

.promise-section h2{

    margin-bottom:18px;

}

.promise-grid{

    max-width:1180px;

    margin:60px auto 0;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:30px;

}

.promise-card{

    background:white;

    border-radius:var(--radius);

    padding:40px 30px;

    box-shadow:var(--shadow);

    transition:var(--transition);

    border:1px solid var(--border);

}

.promise-card:hover{

    transform:translateY(-10px);

}

.promise-card h3{

    color:var(--primary);

    margin-bottom:18px;

}

.promise-card p{

    font-size:1rem;

}



/* ==========================================
HOW IT WORKS
========================================== */

.how-section{

    text-align:center;

}

.steps-grid{

    margin-top:55px;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:35px;

}

.step-card{

    background:white;

    border-radius:var(--radius);

    padding:45px 35px;

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.step-card:hover{

    transform:translateY(-8px);

}

.step-number{

    width:70px;

    height:70px;

    margin:auto;

    border-radius:50%;

    background:var(--accent);

    color:var(--primary);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:1.8rem;

    font-weight:700;

    margin-bottom:25px;

}

.step-card h3{

    margin-bottom:18px;

}



/* ==========================================
SHARE SECTION
========================================== */

.share-section{

    text-align:center;

}

.share-section h2{

    margin-bottom:18px;

}

.share-intro{

    max-width:700px;

    margin:0 auto 45px;

}

.input-card{

    background:white;

    max-width:900px;

    margin:auto;

    border-radius:30px;

    padding:35px;

    box-shadow:var(--shadow);

    border:1px solid var(--border);

}



/* ==========================================
TEXTAREA
========================================== */

textarea{

    width:100%;

    min-height:250px;

    border:none;

    resize:none;

    outline:none;

    background:transparent;

    font-family:"Inter",sans-serif;

    font-size:1.05rem;

    line-height:1.9;

    color:var(--text);

}

textarea::placeholder{

    color:#95A49A;

}



/* ==========================================
BOTTOM OF CARD
========================================== */

.card-bottom{

    margin-top:30px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

}

.char-counter{

    color:var(--text-light);

    font-size:.95rem;

}



/* ==========================================
BUTTONS
========================================== */

.main-btn{

    border:none;

    cursor:pointer;

    padding:16px 36px;

    border-radius:999px;

    background:var(--primary);

    color:white;

    font-size:1rem;

    font-weight:600;

    transition:var(--transition);

}

.main-btn:hover{

    background:var(--primary-dark);

    transform:translateY(-3px);

}



/* ==========================================
COMMON CARDS
========================================== */

.card{

    background:white;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    border:1px solid var(--border);

    padding:30px;

}

/* ==========================================
BOOKING SECTION
========================================== */

.booking-container{

    text-align:center;

    max-width:1180px;

    margin:auto;

}

.booking-container p{

    max-width:760px;

    margin:0 auto 40px;

}

.pricing-selector-box{

    background:white;

    border-radius:28px;

    padding:28px;

    box-shadow:var(--shadow);

    display:flex;

    justify-content:space-between;

    align-items:center;

    flex-wrap:wrap;

    gap:20px;

    margin-bottom:50px;

}

.pricing-selector-box label{

    font-weight:600;

    color:var(--text);

}

.pastel-select{

    padding:14px 18px;

    border-radius:14px;

    border:1px solid var(--border);

    background:white;

    font-size:1rem;

    outline:none;

}

.price-badge{

    background:var(--accent);

    color:var(--primary);

    padding:14px 24px;

    border-radius:999px;

    font-weight:700;

}

/* ==========================================
BOOKING GRID
========================================== */

.slots-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:25px;

    margin-top:40px;

}

.slot-card{

    background:white;

    border-radius:24px;

    padding:25px;

    box-shadow:var(--shadow);

    transition:var(--transition);

    border:1px solid var(--border);

}

.slot-card:hover{

    transform:translateY(-8px);

}

.slot-time{

    font-size:1.2rem;

    font-weight:700;

    margin-bottom:12px;

    color:var(--primary);

}

.slot-status{

    color:var(--text-light);

    margin-bottom:20px;

}

.slot-card button{

    width:100%;

}

/* ==========================================
BOOKING SUCCESS
========================================== */

.booking-box{

    background:#EDF8F1;

    border-left:6px solid #62B37D;

    border-radius:20px;

    padding:25px;

    box-shadow:var(--shadow);

    margin-bottom:40px;

}

.booking-box a{

    color:var(--primary);

    font-weight:700;

}

.hidden{

    display:none;

}

/* ==========================================
COMMUNITY SECTION
========================================== */

.feed-container{

    text-align:center;

}

.feed-container h2{

    margin-bottom:15px;

}

.feed-container>p{

    max-width:700px;

    margin:auto;

    margin-bottom:50px;

}

/* ==========================================
VENT FEED
========================================== */

#ventFeed{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

    gap:25px;

}

.vent-card{

    background:white;

    border-radius:26px;

    padding:28px;

    text-align:left;

    box-shadow:var(--shadow);

    border:1px solid var(--border);

    transition:var(--transition);

}

.vent-card:hover{

    transform:translateY(-6px);

}

.vent-card p{

    margin-bottom:20px;

}

.vent-date{

    font-size:.9rem;

    color:#92A095;

}

.reply-box{

    margin-top:20px;

    padding:18px;

    border-radius:18px;

    background:#F6FAF7;

    border-left:4px solid var(--primary);

}

.reply-box h4{

    margin-bottom:8px;

    color:var(--primary);

}

/* ==========================================
LOADING STATES
========================================== */

.loading-text{

    padding:40px;

    color:var(--text-light);

    font-style:italic;

}

/* ==========================================
FOOTER
========================================== */

footer{

    margin-top:120px;

    background:#22342B;

    color:white;

    padding:90px 20px 50px;

}

.footer-container{

    max-width:1180px;

    margin:auto;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

    gap:50px;

}

.footer-logo{

    font-family:"Cormorant Garamond",serif;

    font-size:2rem;

    width:90px;

    margin-bottom:18px;

}

.footer-text{
    max-width:650px;
    margin:20px auto;
    line-height:1.8;
    opacity:.9;
}

.footer-links{

    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:22px;
    margin:30px 0;

}

.footer-links a{

    color:#D7E2DA;

    text-decoration:none;

    transition:.3s;

}

.footer-links a:hover{

     color:var(--primary);

}

.footer-bottom{

    margin-top:60px;

    text-align:center;

    color:#AFC0B5;

    font-size:.95rem;

    border-top:1px solid rgba(255,255,255,.08);

    padding-top:30px;

}

/* ==========================================
ANIMATIONS
========================================== */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(35px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

@keyframes fadeIn{

    from{

        opacity:0;

    }

    to{

        opacity:1;

    }

}

.hero-content{

    animation:fadeUp .9s ease;

}

.promise-card,
.step-card,
.input-card,
.slot-card,
.vent-card{

    animation:fadeUp .8s ease;

}

/* ==========================================
HOVER EFFECTS
========================================== */

.promise-card:hover,
.step-card:hover,
.slot-card:hover,
.vent-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 60px rgba(0,0,0,.12);

}

.hero-btn:hover,
.main-btn:hover,
.nav-button:hover{

    transform:translateY(-4px);

}

textarea:focus{

    outline:none;

}

.pastel-select:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(63,102,82,.12);

}

/* ==========================================
SCROLLBAR
========================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#edf2ee;

}

::-webkit-scrollbar-thumb{

    background:var(--secondary);

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--primary);

}

/* ==========================================
UTILITY CLASSES
========================================== */

.text-center{

    text-align:center;

}

.mt-1{margin-top:10px;}
.mt-2{margin-top:20px;}
.mt-3{margin-top:30px;}
.mt-4{margin-top:40px;}
.mt-5{margin-top:60px;}

.mb-1{margin-bottom:10px;}
.mb-2{margin-bottom:20px;}
.mb-3{margin-bottom:30px;}
.mb-4{margin-bottom:40px;}
.mb-5{margin-bottom:60px;}

.hidden{

    display:none !important;

}

.fade{

    animation:fadeIn .5s ease;

}

/* ==========================================
RESPONSIVE
========================================== */

@media (max-width:1100px){

    .nav-links{

        gap:18px;

    }

}

@media (max-width:900px){

    section{

        padding:80px 18px;

    }

    .hero{

        padding-top:150px;

    }

    .hero h1{

        font-size:3rem;

    }

    .nav-links{

        display:none;

    }

    .nav-button{

        display:none;

    }

    .pricing-selector-box{

        flex-direction:column;

        align-items:stretch;

        text-align:center;

    }

    .card-bottom{

        flex-direction:column;

        align-items:stretch;

    }

    .main-btn{

        width:100%;

    }

}

@media (max-width:700px){

    h1{

        font-size:2.5rem;

    }

    h2{

        font-size:2rem;

    }

    .hero-text{

        font-size:1rem;

    }

    .trust-badges{

        gap:10px;

    }

    .trust-badges span{

        width:100%;

        text-align:center;

    }

    .promise-grid,
    .steps-grid,
    .slots-grid,
    #ventFeed{

        grid-template-columns:1fr;

    }

    .input-card{

        padding:24px;

    }

    textarea{

        min-height:200px;

    }

}

@media (max-width:500px){

    body{

        font-size:15px;

    }

    .hero{

        padding-top:130px;

    }

    .hero h1{

        font-size:2.2rem;

    }

    .hero-btn,
    .main-btn{

        width:100%;

    }

}

/* ==========================================
END
========================================== */


.hero-tag{

    display:inline-block;

    background:var(--accent);

    color:var(--primary);

    padding:10px 20px;

    border-radius:999px;

    font-weight:600;

    margin-bottom:25px;

}

.hero-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

    margin-bottom:50px;

}

.secondary-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:18px 40px;

    border-radius:999px;

    border:2px solid var(--primary);

    color:var(--primary);

    font-weight:600;

    transition:.3s;

}

.secondary-btn:hover{

    background:var(--primary);

    color:white;

}

/* ==========================================
WHY THIS EXISTS
========================================== */

.about-section{

    background:white;

}

.section-header{

    text-align:center;

    max-width:760px;

    margin:0 auto 70px;

}

.section-tag{

    display:inline-block;

    background:var(--accent);

    color:var(--primary);

    padding:10px 22px;

    border-radius:999px;

    font-weight:600;

    margin-bottom:18px;

}

.about-grid{

    display:grid;

    grid-template-columns:1.4fr .9fr;

    gap:60px;

    align-items:center;

}

.about-text{

    display:flex;

    flex-direction:column;

    gap:24px;

}

.about-text p{

    font-size:1.08rem;

}

.quote-card{

    background:linear-gradient(135deg,#f7fbf7,#edf5ef);

    border-radius:30px;

    padding:50px;

    box-shadow:var(--shadow);

    position:relative;

}

.quote-mark{

    font-size:5rem;

    color:var(--primary);

    opacity:.18;

    line-height:1;

}

.quote-card p{

    font-family:"Cormorant Garamond",serif;

    font-size:2rem;

    color:var(--text);

    line-height:1.4;

    margin-top:-25px;

}

/* ==========================
   TOAST NOTIFICATIONS
========================== */

.toast{

    position:fixed;

    top:30px;

    right:30px;

    min-width:280px;

    max-width:360px;

    padding:16px 22px;

    border-radius:18px;

    background:rgba(35,35,35,.92);

    color:white;

    backdrop-filter:blur(16px);

    border:1px solid rgba(255,255,255,.08);

    box-shadow:0 20px 40px rgba(0,0,0,.25);

    font-size:.95rem;

    line-height:1.5;

    transform:translateY(-20px);

    opacity:0;

    pointer-events:none;

    transition:.35s;

    z-index:9999;

}

.toast.show{

    opacity:1;

    transform:translateY(0);

}

.toast.success{

    border-left:5px solid #6BBF7A;

}

.toast.error{

    border-left:5px solid #E56B6F;

}

.footer-tagline{

    margin-top:25px;

    font-style:italic;

    opacity:.85;

    color:#d8e6d6;

}

/* ==========================
   LEGAL PAGES
========================== */

.legal-section{

    padding:160px 20px 80px;

}

.legal-card{

    max-width:900px;

    margin:auto;

    padding:50px;

    border-radius:30px;

    background:rgba(255,255,255,.05);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.08);

}

.legal-card h1{

    margin:20px 0;

}

.legal-card h2{

    margin-top:40px;

}

.legal-card p,
.legal-card li{

    line-height:1.9;

    opacity:.9;

}

.legal-card ul{

    padding-left:20px;

}

@media (max-width:768px){

    .nav-links{

     display:none;

     flex-direction:column;

     position:absolute;

     top:100%;

     left:0;

     width:100%;

     background:white;

     padding:30px;

     gap:20px;

     box-shadow:0 10px 30px rgba(0,0,0,.1);
    }

    .nav-button{

     display:block;

     margin-top:20px;

     text-align:center;

    }

    .menu-toggle{

        display:block;

    }

    .nav-links.show{

    display:flex;

}

}

.email-link{
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    transition: .3s;
}

.email-link:hover{
    text-decoration: underline;
    opacity: .9;
}

/* ===========================
   PAYMENT MODAL
=========================== */

.payment-modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.65);
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:9999;
    backdrop-filter:blur(6px);
}

.payment-modal.hidden{
    display:none;
}

.payment-box{
    width:460px;
    max-width:92%;
    max-height:90vh;
    overflow-y:auto;

    background:#ffffff;
    border-radius:22px;
    padding:24px;

    position:relative;

    box-shadow:0 25px 60px rgba(0,0,0,.25);

    animation:fadeUp .25s ease;
}

.close-btn{
    position:absolute;
    top:12px;
    right:12px;

    width:38px;
    height:38px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:none;
    background:transparent;

    color:#666;
    font-size:30px;
    line-height:1;

    cursor:pointer;
    z-index:10000;
}

.close-btn:hover{
    color:#000;
}



.payment-box h2{
    font-size:2rem;
    text-align:center;
    margin-bottom:6px;
}

.payment-price{
    text-align:center;
    font-size:1.25rem;
    margin-bottom:16px;
    color:#5D7A68;
}

.qr-image{
    width:180px;
    display:block;
    margin:0 auto 14px;
    border-radius:14px;
}

.upi-row{
    display:flex;
    gap:10px;
    margin-bottom:18px;
}

.upi-row input{
    flex:1;
}

.payment-box input{
    width:100%;
    padding:10px 12px;
    height:46px;

    margin-bottom:12px;

    border:1px solid #ddd;

    border-radius:10px;

    font-size:15px;

    box-sizing:border-box;
}

.payment-box button{
    width:100%;
    padding:13px;
    border:none;
    border-radius:10px;
    cursor:pointer;
    font-weight:600;
}

#copyUpiBtn{
    width:auto;
    padding:0 18px;
}

#confirmBookingBtn{
    background:#5D7A68;
    color:white;

    height:50px;

    margin-top:8px;

    transition:.2s;
}

#confirmBookingBtn:hover{
    background:#496151;
}

@keyframes fadeUp{
    from{
        transform:translateY(20px);
        opacity:0;
    }
    to{
        transform:translateY(0);
        opacity:1;
    }
}

@media (max-width:600px){

    .payment-box{

        width:95%;

        padding:18px;

        border-radius:18px;

    }

    .qr-image{

        width:160px;

    }

}

.qr-card{
    background:#F4F6F5;
    border-radius:18px;
    padding:16px;
    margin:16px auto;
    display:flex;
    justify-content:center;
}