*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family: Arial, Helvetica, sans-serif;
    
}
:root{
    --brand-primary: #2a7f7f;
    --brand-accent: #5778ac;
    --text-main: #1f2a37;
    --text-muted: #5c6472;
    --surface: #ffffff;
    --surface-soft: #f7fafc;
    --shadow-soft: 0 10px 24px rgba(15, 23, 42, 0.08);
    --shadow-hover: 0 16px 30px rgba(15, 23, 42, 0.14);
}
body {
    overflow-x: hidden;
    color: var(--text-main);
    background: #f5f8fb;
    line-height: 1.5;
}
/*overflow-x controls horizontal overflow (left–right direction).
hidden means: anything that goes outside the width of the page will be cut off and not visible, and no horizontal scrollbar will appear.*/


/* ================= NAVBAR ================= */
/* display: flex;
Turns the navbar into a flex container
justify-content: space-between;
Distributes items horizontally
First item → left side
Last item → right side
Space is evenly placed between them
align-items: center;
Aligns items vertically in the middle
padding: 18px 40px;
Adds space inside the navbar:
18px → top & bottom
40px → left & right
position: relative;
Sets the navbar as a reference point for positioned child elements*/
.navbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap: 16px;
    background: linear-gradient(180deg, #bdf4f4 0%, #ace8e8 100%);
    padding:18px 40px;
    position:relative;
    flex-wrap: wrap;
    box-shadow: 0 8px 20px rgba(44, 117, 117, 0.12);
}

.logo h2{
    font-size:clamp(14px, 1.8vw, 18px);
    font-weight:600;
    color: #114b5f;
}

/* nav-links display flex make horizontal then add gaps nav-links a hover makes color change when hover*/
.nav-links{
    display:flex;
    gap:20px;
    list-style:none;
    flex-wrap: wrap;
}

.nav-links a{
    text-decoration:none;
    color:#333;
    font-size:clamp(14px, 1.3vw, 15px);
    font-weight: 600;
    transition: color 0.25s ease;
}

.nav-links a:hover{
    color:#2a7f7f;
}

/* ================= DROPDOWN ================= */
.dropdown{
    position:relative;
}

.dropdown-menu{
    position:absolute;
    top:100%;
    left:0;
    background:white;
    list-style:none;
    padding:10px 0;
    min-width:180px;
    border-radius:6px;
    box-shadow:0 10px 24px rgba(15, 23, 42, 0.15);
    display:none;
}

.dropdown-menu li{
    padding:8px 20px;
}

.dropdown-menu li a{
    display:block;
    color:#333;
}

.dropdown-menu li a:hover{
    background:#7089ae;
    color:white;
    border-radius:4px;
}

/* Show dropdown on hover (desktop only) */
.dropdown:hover .dropdown-menu{
    display:block;
}

/* ================= MENU TOGGLE ================= */
.menu-toggle{
    display:none;
    font-size:24px;
    cursor:pointer;
}

/* ================= RESPONSIVE ================= */
@media (max-width:768px){

    .navbar{
        padding:15px 20px;
    }

    .logo h2{
        font-size:14px;
    }

    .menu-toggle{
        display:block;
    }

    .nav-links{
        display:none;
        flex-direction:column;
        position:absolute;
        top:100%;
        left:0;
        width:100%;
        background:#9cebeb;
        padding:15px 0;
        z-index:999;
        margin-left: 0;
    }

    .nav-links.active{
        display:flex;
    }

    .nav-links li{
        text-align:center;
        padding:10px 0;
    }

    /* Mobile dropdown fix */
    .dropdown-menu{
        position:static;
        display:block;
        background:none;
        box-shadow:none;
        padding:0;
    }

    .dropdown-menu li{
        padding:6px 0;
    }
}
/* ================= Home.ejs ================= */

.hero{
    /* Center in viewport without horizontal overflow (width + margin) */
    width: min(100% - 1.25rem, 1250px);
    max-width: 1250px;
    margin-inline: auto;
    margin-block: 0.625rem;
    padding-inline: clamp(0.75rem, 3vw, 1.5rem);
    border-radius: 14px;
    /* Fluid banner height between phone and desktop */
    min-height: clamp(11rem, 18vw + 6rem, 18.75rem);
    background-image: linear-gradient(rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.35)), url("bannerfinal.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}


.doctors{
    display:flex;
    justify-content:center;
    
    gap:clamp(20px, 5vw, 70px);
    padding:clamp(18px, 4vw, 40px);
    background:#f8f8f8;
    flex-wrap: wrap; /* important */
}

.doctor-cardleft,
.doctor-cardright,
.doctor-card{
    text-align: center;
    width:100%;
    background-color: var(--surface);
    border-radius: 14px;
    padding-bottom: 15px;
    font-size: 15px;
    margin-bottom: 20px;
    color: var(--text-muted);
    box-shadow: var(--shadow-soft);
    border: 1px solid #e5e7eb;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.doctor-cardleft,
.doctor-cardright{
    max-width: 400px; /* responsive */
}
.doctor-cardleft:hover,
.doctor-cardright:hover,
.doctor-card:hover,
.service-card:hover{
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}

.doctor-cardleft img,
.doctor-cardright img{
    width: 100%;
    max-width: 400px;
    height: auto;
    aspect-ratio: 8 / 5;
    border-radius: 15px;
    object-fit: cover;
    padding-top: 10px;
}

/* ================= DOCTOR.ejs ================= */
.doctor{
    display:flex;
    justify-content:center;
    gap:clamp(20px, 4vw, 40px);
    padding:clamp(16px, 3vw, 20px);
    background:var(--surface-soft);
    flex-wrap: wrap; /* important */
}

.doctor-card{
    max-width:500px; /* reduced from 600 */
}

.doctor-card img{
    width:100%;
    height: auto;
    max-width:300px;
    aspect-ratio: 6 / 5;
    
    border-radius: 15px;
    object-fit: cover;
    padding-top: 10px;

}

.doctor-card h3{
    margin-top:10px;
    font-size:18px;
    color: var(--text-main);
}

.speciality{
    font-weight:600;
}

.doctor-card p{
    font-size:14px;
    color:var(--text-muted);
    line-height:1.6;
}
.About,
.Experience,
.Education{
    font-size: 18px;
}


/* ================= MOBILE RESPONSIVE ================= */
@media (max-width: 768px){

    .hero{
        width: min(100% - 1rem, 1250px);
        margin-block: 0.5rem;
        padding-inline: 0.75rem;
        min-height: clamp(10rem, 32vw + 4rem, 14rem);
        background-position: center top;
    }

    .doctors{
        flex-direction: column;
        align-items: center;
        gap:20px;
    }

    .doctor{
        flex-direction: column;
        align-items: center;
        gap:20px;
    }

    .doctor-card{
        max-width:90%;
    }

    .doctor-cardleft,
    .doctor-cardright{
        max-width:95%;
    }

    .doctor-card img{
        width:100%;
        max-width:220px;
        height:auto;
    }
}



/* ================= SERVICES SECTION PAGES homeopathic and cosmetology  ================= */
.services-heading{
    text-align: center;
    margin-top: 20px;
    font-size: 20px;
    color: #1e3a5f;
    letter-spacing: 0.2px;
}

.services-container {
    display: flex;          /* Makes child elements inline */
    gap: clamp(16px, 3vw, 30px);              /* Space between cards */
    justify-content: space-evenly; /* Center cards horizontally */
    flex-wrap: wrap;        /* Makes it responsive */
    margin: clamp(20px, 4vw, 40px) 0;
    padding-inline: clamp(12px, 3vw, 24px);
}

.service-card {
    width: min(100%, 400px);           /* Fixed width for each card */
    
    border: 1px solid #e3e8ef;
    border-radius: 14px;
    padding: clamp(14px, 2.6vw, 20px);
    text-align: center;
    box-shadow: var(--shadow-soft);
    background: var(--surface);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.service-card img {
    width: 100%;
    max-width: 350px;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 8px;
    margin: 15px 0;
    
    
}
.service-card p{
    text-align: justify;
}




/* ===== Appointment Section ===== */
.appointment-section {
    text-align: center;
    background: linear-gradient(180deg, #f7f4f0 0%, #eef3f9 100%);
    padding: 60px 20px;
    display: flex;
    justify-content: center;
}

/* ===== Appointment Card ===== */
.appointment-container {
    background: white;
    width: 100%;
    max-width: 600px;
    padding: 40px;
    border-radius: 16px;
    box-shadow: var(--shadow-soft);
    border: 1px solid #e5e7eb;
}

.appointment-container h1 {
    text-align: center;
    color: var(--brand-accent);
    margin-bottom: 10px;
}

.appointment-container p {
    text-align: center;
    color: #555;
    margin-bottom: 30px;
}

/* ===== Form Styling ===== */
.appointment-form {
    display: flex;
    flex-direction: column;
}

.form-group {
    display: flex;
    flex-direction: column;
}

.form-group label {
    margin-bottom: 6px;
    font-weight: 600;
    color: #333;
}

.form-group input,
.form-group select,
.form-group textarea {
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #d1d9e6;
    font-size: 14px;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    background: #fcfdff;
}

/* Focus Effect */
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #0d6efd;
    outline: none;
    box-shadow: 0 0 5px rgba(13, 110, 253, 0.3);
}

/* ===== Button ===== */
.btn {
    margin-top: 20px;
    padding: 12px;
    background: linear-gradient(135deg, #2d7ff9 0%, #0d6efd 100%);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    box-shadow: 0 8px 20px rgba(13, 110, 253, 0.28);
}

.btn:hover {
    background: linear-gradient(135deg, #1e64d2 0%, #0a58ca 100%);
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(13, 110, 253, 0.35);
}

/* ===== Gallery Section ===== */
#galleryimg{
    width: min(100%, 400px);
height: auto;
aspect-ratio: 1 / 1;
border-radius: 15px;
object-fit: cover;
padding: 10px;

}
#contact-text{
text-align: center;
font-size: 25px;
font-weight: 700;
color: rgb(16, 76, 101);
margin-top: 15px;
margin-bottom: 15px;

}
.contact-section{
    text-align: center;
    margin-top: 25px;
    padding-inline: 12px;
}







/* ================= FOOTER ================= */
.footer{
     display:flex;
     color: white;
    justify-content:space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding:25px clamp(20px, 6vw, 60px);
    background: linear-gradient(180deg, #111827 0%, #0b1220 100%);
    font-size:14px;
    
}

.footer-icons a {
  text-decoration: none;
  margin-right: 15px;
  color:white;
  font-size: 16px;
}

.footer-icons i {
  margin-right: 6px;
  font-size: 18px;
}

/* Brand colors */
.fa-whatsapp { color: #25D366; }
.fa-facebook-f { color: #1877F2; }
.fa-instagram { color: #E4405F; }

.footer-left a{
    color: white;
}
.footerleft-content{
    display: flex;
    gap: 10px;
}

@media (max-width: 768px){
    .footer{
        flex-direction: column;
        text-align: center;
        padding: 18px 16px;
        gap: 12px;
    }

    .footerleft-content{
        justify-content: center;
        flex-wrap: wrap;
        row-gap: 6px;
    }

    .footer-icons{
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;
    }

    .footer-icons a{
        margin-right: 0;
    }
}

@media (max-width: 1024px){
    .navbar{
        padding: 16px 24px;
    }

    .appointment-container{
        max-width: 90%;
        padding: 28px 20px;
    }
}

@media (max-width: 600px){
    .services-heading{
        font-size: 18px;
        margin-top: 14px;
    }

    .appointment-section{
        padding: 30px 12px;
    }

    .appointment-container h1{
        font-size: 22px;
    }

    .appointment-container p{
        font-size: 14px;
    }

    #contact-text{
        font-size: 20px;
    }
}




