/* General Body Styles (Common Base) */
body {
    font-family: 'Inter', sans-serif;
    line-height: 1.6;
    color: #333; /* Default text color */
    background-color: #FBFCF7; /* Light off-white main background */
}

/* Layout Helper for Sticky Footer Pages */
body.layout-sticky-footer {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

body.layout-sticky-footer main {
    flex-grow: 1; /* Allow main content to take up available space */
}

/* Custom Color Palette Utilities */
.bg-pink-custom {
    background-color: #FFCAE0; /* Custom class for the light pink */
}
.text-black-custom {
    color: #000000; /* Explicit black text */
}
.bg-black-custom {
    background-color: #000000; /* Explicit black background */
}
.text-pink-custom { /* From home.html */
    color: #FFCAE0; 
}

/* --- Overlay and Spinner Styles (from home.html) --- */
.loading-overlay {
    position: fixed; /* Cover the entire viewport */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8); /* Semi-transparent white background */
    display: none; /* Hidden by default */
    justify-content: center;
    align-items: center;
    z-index: 1000; /* Ensure it's on top of other content */
    opacity: 0; /* Start fully transparent */
    transition: opacity 0.3s ease; /* Smooth fade-in/out */
}

.loading-overlay.visible {
    opacity: 1; /* Fade in */
}

.spinner {
    border: 4px solid #f3f3f3; /* Light grey border */
    border-top: 4px solid #000000; /* Black spinner color */
    border-radius: 50%; /* Make it round */
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite; /* Rotate animation */
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* --- 3-Step Process Section Styles (from home.html) --- */
.circle-number {
    width: 18rem;       /* Outer width of the circle */
    min-height: 18rem;  /* Keep it circular */
    padding: 1.5rem;
    padding-top: 2.5rem;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
    background-color: #ffffff;
    border: 10px solid #FFCAE0; /* Thicker Pink border */
    margin-bottom: 1.5rem;
    box-sizing: border-box;
}
.circle-number .number {
    font-size: 4.5rem;
    font-weight: bold;
    color: #FFCAE0; /* Pink number */
    line-height: 1;
    margin-bottom: 0.75rem;
}
.circle-number .title {
    font-size: 1.375rem;
    font-weight: 600;
    color: #000000; /* Black title text */
    line-height: 1.3;
}

/* Media Query for 3-Step Process (from home.html) */
@media (min-width: 768px) and (max-width: 1023.98px) {
    #three-circles-container > .max-w-xs {
        max-width: 13rem; 
    }

    .circle-number {
        width: 11rem;       
        min-height: 11rem;  
        padding: 0.75rem;   
        padding-top: 1rem;  
        border-width: 6px;  
    }

    .circle-number .number {
        font-size: 2rem;     
        margin-bottom: 0.3rem; 
    }

    .circle-number .title {
        font-size: 0.875rem;  
        line-height: 1.2;   
    }
}

/* Styling for the message area (from contact.html) */
.message-area {
    margin-top: 1.5rem; 
    padding: 1rem; 
    border-radius: 0.375rem; 
    text-align: center;
    font-weight: bold;
}
.message-area.success {
    background-color: #d4edda; /* Light green background */
    color: #155724; /* Dark green text */
    border: 1px solid #c3e6cb; /* Green border, added for completeness */
}
.message-area.error {
    background-color: #f8d7da; /* Light red background */
    color: #721c24; /* Dark red text */
    border: 1px solid #f5c6cb; /* Red border, added for completeness */
}
