/* Reset and base styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #fff;
}

/* Custom CSS for design system colors */
:root {
    --primary: 196 34% 15%;
    --primary-foreground: 210 40% 98%;
    --secondary: 210 40% 96.1%;
    --secondary-foreground: 222.2 47.4% 11.2%;
    --muted: 210 40% 96.1%;
    --muted-foreground: 215.4 16.3% 46.9%;
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
}

.bg-primary { background-color: hsl(var(--primary)); }
.text-primary { color: hsl(var(--primary)); }
.text-primary-foreground { color: hsl(var(--primary-foreground)); }
.bg-secondary { background-color: hsl(var(--secondary)); }
.text-secondary-foreground { color: hsl(var(--secondary-foreground)); }
.bg-muted { background-color: hsl(var(--muted)); }
.text-muted-foreground { color: hsl(var(--muted-foreground)); }
.bg-background { background-color: hsl(var(--background)); }
.text-foreground { color: hsl(var(--foreground)); }
.border-border { border-color: hsl(var(--border)); }

/* Modal styles */
.modal {
    display: none;
    position: fixed;
    z-index: 50;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.8);
}

.modal.show {
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-content {
    background-color: white;
    padding: 24px;
    border-radius: 8px;
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
}

/* Chat with us Now button enhancement */
.chat-button {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    box-shadow: 0 10px 25px rgba(16, 185, 129, 0.3);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    animation: pulse-glow 2s infinite;
}

.chat-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 35px rgba(16, 185, 129, 0.4);
    background: linear-gradient(135deg, #059669 0%, #047857 100%);
}

.chat-button:active {
    transform: translateY(0);
}

.chat-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.chat-button:hover::before {
    left: 100%;
}

@keyframes pulse-glow {
    0%, 100% {
        box-shadow: 0 10px 25px rgba(16, 185, 129, 0.3), 0 0 0 0 rgba(16, 185, 129, 0.7);
    }
    50% {
        box-shadow: 0 10px 25px rgba(16, 185, 129, 0.3), 0 0 0 10px rgba(16, 185, 129, 0);
    }
}

/* Call Now button enhancement */
.call-button {
    background: linear-gradient(135deg, #059669 0%, #047857 100%);
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    box-shadow: 0 10px 25px rgba(5, 150, 105, 0.3);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    animation: pulse-glow-green 2s infinite;
}

.call-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 35px rgba(5, 150, 105, 0.4);
    background: linear-gradient(135deg, #047857 0%, #065f46 100%);
}

.call-button:active {
    transform: translateY(0);
}

.call-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.call-button:hover::before {
    left: 100%;
}

@keyframes pulse-glow-green {
    0%, 100% {
        box-shadow: 0 10px 25px rgba(5, 150, 105, 0.3), 0 0 0 0 rgba(5, 150, 105, 0.7);
    }
    50% {
        box-shadow: 0 10px 25px rgba(5, 150, 105, 0.3), 0 0 0 10px rgba(5, 150, 105, 0);
    }
}

/* Enquire Now button enhancement */
.enquire-button {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 16px;
    box-shadow: 0 10px 25px rgba(37, 99, 235, 0.3);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    animation: pulse-glow-blue 2s infinite;
}

.enquire-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 35px rgba(37, 99, 235, 0.4);
    background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
}

.enquire-button:active {
    transform: translateY(0);
}

.enquire-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.enquire-button:hover::before {
    left: 100%;
}

@keyframes pulse-glow-blue {
    0%, 100% {
        box-shadow: 0 10px 25px rgba(37, 99, 235, 0.3), 0 0 0 0 rgba(37, 99, 235, 0.7);
    }
    50% {
        box-shadow: 0 10px 25px rgba(37, 99, 235, 0.3), 0 0 0 10px rgba(37, 99, 235, 0);
    }
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Decorative elements for bg-slate-50 sections */

/* Semi-circle pattern */
.semicircle-top{
    background-position: center center !important;
    background-size: cover !important;
    background-image: url(img/4.jpg);
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.semicircle-top::before {
    position: absolute;
    content: '';
    /* z-index: -1; */
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: -moz-linear-gradient 90deg, #1800ff 0%, #8b7fff 35%, #fefefe 60%;
    background-image: -webkit-linear-gradient(90deg, #1800ff 0%, #8b7fff 35%, #fefefe 60%);
    background-image: -ms-linear-gradient(90deg, #1800ff 0%, #8b7fff 35%, #fefefe 60%);
    opacity: 0.051;
}

/* Circular arcs pattern */
.arcs-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 25px;
    background: url("data:image/svg+xml,%3Csvg width='50' height='25' viewBox='0 0 50 25' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 25 Q25 0 50 25 V0 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 50px 25px;
    z-index: 1;
}

.arcs-bottom::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 25px;
    background: url("data:image/svg+xml,%3Csvg width='50' height='25' viewBox='0 0 50 25' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0 Q25 25 50 0 V25 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 50px 25px;
    z-index: 1;
}

/* Overlapping circles pattern */
.circles-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 20px;
    background: url("data:image/svg+xml,%3Csvg width='40' height='20' viewBox='0 0 40 20' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='10' fill='white'/%3E%3Ccircle cx='30' cy='10' r='10' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 40px 20px;
    z-index: 1;
}

.circles-bottom::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 20px;
    background: url("data:image/svg+xml,%3Csvg width='40' height='20' viewBox='0 0 40 20' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='10' r='10' fill='white'/%3E%3Ccircle cx='30' cy='10' r='10' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 40px 20px;
    z-index: 1;
}

/* Rounded bumps pattern */
.bumps-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 15px;
    background: url("data:image/svg+xml,%3Csvg width='30' height='15' viewBox='0 0 30 15' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 15 Q7.5 0 15 15 Q22.5 0 30 15 V0 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 30px 15px;
    z-index: 1;
}

.bumps-bottom::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 15px;
    background: url("data:image/svg+xml,%3Csvg width='30' height='15' viewBox='0 0 30 15' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0 Q7.5 15 15 0 Q22.5 15 30 0 V15 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 30px 15px;
    z-index: 1;
}

/* Dots pattern (circular) */
.dots-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 20px;
    background: radial-gradient(circle at 50% 50%, white 4px, transparent 4px);
    background-size: 25px 20px;
    background-position: 0 0;
    z-index: 1;
}

.dots-bottom::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 20px;
    background: radial-gradient(circle at 50% 50%, white 4px, transparent 4px);
    background-size: 25px 20px;
    background-position: 0 0;
    z-index: 1;
}

/* Circular petals pattern */
.petals-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg width='36' height='18' viewBox='0 0 36 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 18 Q9 0 18 18 Q27 0 36 18 V0 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 36px 18px;
    z-index: 1;
}

.petals-bottom::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg width='36' height='18' viewBox='0 0 36 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0 Q9 18 18 0 Q27 18 36 0 V18 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 36px 18px;
    z-index: 1;
}

/* Alternative wave pattern */
.wave-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 15px;
    background: url("data:image/svg+xml,%3Csvg width='40' height='15' viewBox='0 0 40 15' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 15 Q10 0 20 15 T40 15 V0 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 40px 15px;
    z-index: 1;
}

.wave-bottom::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 15px;
    background: url("data:image/svg+xml,%3Csvg width='40' height='15' viewBox='0 0 40 15' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0 Q10 15 20 0 T40 0 V15 H0 Z' fill='white'/%3E%3C/svg%3E") repeat-x;
    background-size: 40px 15px;
    z-index: 1;
}

/* Ensure sections with decorative elements have relative positioning */
.section-with-decoration {
    position: relative;
    overflow: hidden;
}

/* Add some padding to accommodate the decorative elements */
.section-with-decoration {
    padding-top: calc(5rem + 20px);
    padding-bottom: calc(5rem + 20px);
}

/* Hover effects */
.hover-scale:hover {
    transform: scale(1.05);
    transition: transform 0.3s ease;
}

.hover-shadow:hover {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    transition: box-shadow 0.3s ease;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}