/* Existing CSS */

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    background-color: #f0f2f5;
    color: #333;
    display: flex; /* Make body a flex container */
    flex-direction: column; /* Stack children vertically */
    min-height: 100vh; /* Ensure body takes full viewport height */
}

.container {
    display: flex;
    flex-grow: 1; /* Allow container to grow and fill available space */
    background: #f0f2f5;
}

.canvas-section {
    flex: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    border-right: 1px solid #e0e0e0;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.info-section {
    flex: 1;
    padding: 0px 20px 0px 20px; 
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    /* gap: 20px; */
    overflow-y: auto;
    box-shadow: -2px 0 10px rgba(0, 0, 0, 0.03);
}

/* Logo Placeholder */
.logo-placeholder {
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #eee;
}

.logo-placeholder img {
    max-width: 150px; /* Adjust as needed */
    height: auto;
    margin-bottom: 10px;
}

.logo-placeholder h1 {
    font-size: 1.8em;
    color: #333;
    margin: 0;
}


/* Horizontal Stepper Styles */
.stepper {
    display: flex;
    flex-direction: row; /* Changed to row for horizontal layout */
    justify-content: space-between; /* Distribute items evenly */
    align-items: flex-start; /* Align items to the top (important for text if it wraps) */
    margin-bottom: 15px; /* More space below the stepper */
    position: relative;
    padding: 0 10px; /* Little padding on sides for the line */
}

/* Horizontal progress line */
.stepper::before {
    content: '';
    position: absolute;
    top: 25px; /* Adjust to align with the center of the step number circle */
    left: 0;
    right: 0;
    height: 2px;
    background-color: #e0e0e0;
    z-index: 0;
}

.step-item {
    flex: 1; /* Allow items to grow and shrink */
    display: flex;
    flex-direction: column; /* Stack number and label vertically */
    align-items: center; /* Center content horizontally */
    text-align: center;
    cursor: pointer;
    position: relative;
    z-index: 1; /* Ensure it's above the horizontal line */
    background-color: transparent; /* Make background transparent to show line */
    border: none; /* Remove individual borders */
    padding: 0 5px; /* Minimal padding */
    transition: all 0.3s ease;
    font-size: 0.9em; /* Slightly smaller font for compactness */
    color: #777; /* Default color for inactive steps */
}

.step-item::before {
    content: attr(data-step);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 36px; /* Larger circle for better visibility */
    height: 36px;
    border-radius: 50%;
    background-color: #e0e0e0;
    color: #777;
    font-weight: bold;
    margin-bottom: 10px; /* Space between number and label */
    border: 2px solid #e0e0e0; /* Border for the circle */
    transition: all 0.3s ease;
    flex-shrink: 0; /* Prevent shrinking */
}

.step-item.active {
    font-weight: bold;
    color: #007bff;
}

.step-item.active::before {
    background-color: #007bff;
    color: white;
    border-color: #007bff;
    box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.2); /* Glow effect */
}

.step-item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 25px; /* Align with the center of the step number circle */
    left: 50%;
    width: 100%; /* Line segment connecting to the next step */
    height: 2px;
    background-color: #e0e0e0;
    transform: translateX(-50%); /* Center the line segment */
    z-index: -1; /* Behind the step circles */
}

/* This targets the line segment for active and completed steps */
.step-item.active:not(:last-child)::after,
.stepper .step-item.completed:not(:last-child)::after { /* You'll need JS to add 'completed' class */
    background-color: #007bff; /* Color the line for active/completed steps */
}

/* You might want to add a 'completed' class in your JS for styling past steps */
.step-item.completed .step-label {
    color: #555; /* Less prominent for completed steps */
}

.step-item.completed::before {
    background-color: #28a745; /* Green for completed steps */
    color: white;
    border-color: #28a745;
}

.step-label {
    margin-top: 5px;
    font-size: 0.85em; /* Adjust font size as needed */
}

/* Step Content Styles */
.step-content {
    display: none; /* Hidden by default */
    /* margin-top: 15px; */
    padding: 20px;
    /* border: 1px solid #e0e0e0; */
    border-radius: 8px;
    background-color: #fcfcfc;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05);
}

.step-content.active {
    display: block; /* Shown when active */
}

.step-content h2, .step-content h3 {
    color: #007bff;
    margin-top: 0;
    /* margin-bottom: 10px; */
    font-size: 1.2em;
    /* border-bottom: 1px solid #eee; */
    /* padding-bottom: 10px; */
}

.step-content p {
    /* margin-bottom: 10px; */
    line-height: 1;
    color: #555;
}

/* Control Buttons */
.controls {
    display: flex;
    justify-content: flex-end;
    margin-top: 25px;
    gap: 10px; /* Space between buttons */
}

.btn-red, .btn-primary, .btn {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.95em;
    transition: background-color 0.2s ease, transform 0.1s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.btn-red {
    background-color: #dc3545;
}

.btn-red:hover {
    background-color: #c82333;
    transform: translateY(-1px);
}

.btn-primary:hover, .btn:hover {
    background-color: #0056b3;
    transform: translateY(-1px);
}

.controls button {
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    background-color: #007bff; /* Default for next */
    color: white;
    border: none;
    transition: background-color 0.2s ease, transform 0.1s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

#helpBtn {
    background-color: hsl(0, 100%, 46%);
    color: #ffffff;
    border: 1px solid #ccc;
    font-weight: bold;
    box-shadow: none;
    text-align:left;
    float:left;
    align-self:flex-end;
}

#helpBtn:hover {
    background-color: #e0e0e0;
}

#prevBtn {
    background-color: #f0f0f0;
    color: #333;
    border: 1px solid #ccc;
    box-shadow: none;
}

#prevBtn:hover {
    background-color: #e0e0e0;
}

button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    background-color: #cccccc !important;
    color: #999 !important;
}

button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    background-color: #cccccc !important;
}




/* Slider Group Styles */
.slider-group {
    margin-bottom: 20px;
    padding: 15px;
    border: 1px solid #f0f0f0;
    border-radius: 6px;
    background-color: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.slider-label {
    display: block;
    margin-bottom: 8px;
    font-size: 1em;
    color: #555;
    font-weight: 600;
}

input[type="range"] {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 5px;
    background: #d3d3d3;
    outline: none;
    opacity: 0.7;
    transition: opacity .2s;
}

input[type="range"]:hover {
    opacity: 1;
}

input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #007bff;
    cursor: pointer;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}

input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #007bff;
    cursor: pointer;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}

/* Control Group (Number Input) Styles */
.control-group {
    margin-bottom: 15px;
    padding: 15px;
    border: 1px solid #f0f0f0;
    border-radius: 6px;
    background-color: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.control-group label {
    display: block;
    margin-bottom: 8px;
    font-size: 1em;
    color: #555;
    font-weight: 600;
}

input[type="number"] {
    width: calc(100% - 22px); /* Account for padding and border */
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95em;
    box-sizing: border-box; /* Include padding in width calculation */
}

/* Other Elements */
#bathroomsDrawn, #bedsDrawn, #kitchensDrawn, #entrancesDrawn {
    font-size: 0.9em;
    color: #666;
    margin-top: 10px;
    background-color: #f9f9f9;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px dashed #e0e0e0;
    display: block; /* Ensure visibility */
}

.hidden {
    display: none;
}

/* Custom File Upload Button */
.custom-file-upload {
    display: inline-block;
    background-color: #007bff;
    color: white;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.95em;
    transition: background-color 0.2s ease, transform 0.1s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    margin-right: 10px; /* Space between button and file name */
}

.custom-file-upload:hover {
    background-color: #0056b3;
    transform: translateY(-1px);
}

#imageUploader {
    display: none; /* Hide the default file input */
}

#file-name-display {
    display: inline-block;
    font-size: 0.9em;
    color: #666;
    /* margin-top: 10px; */
    background-color: #f9f9f9;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px dashed #e0e0e0;
    vertical-align: middle; /* Align with the button */
}

/* Footer Styles */
.site-footer {
    background-color: #333;
    color: #f0f2f5;
    text-align: center;
    padding: 20px;
    font-size: 0.85em;
    margin-top: auto; /* Push footer to the bottom */
}

.site-footer p {
    margin: 0;
}

.bullets {
  list-style: none;
  padding-left: 0;
  margin: 1rem 0;
}

.bullets li {
  display: flex;
  align-items: flex-start;
  font-size: 0.9rem;
  margin-bottom: 0.75rem;
}

.bullets li i {
  color: #0d6efd; /* Bootstrap primary color */
  margin-right: 0.5rem;
  font-size: 1rem;
  line-height: 1.4;
}

.logo-placeholder h1 {
    padding-top:10px;
    font-family: 'Bellota', cursive;
    font-weight: bold; /* This makes it bold */
}
.logo-placeholder a{
    text-decoration: none;;
}
  


#chakraRotationValue {
  font-size: 16px;
}

#chakraOpacityValue {
  font-size: 16px;
}

.center{
text-align: center;

}

.stepHeadingDiv {
    display: flex;
    justify-content: space-between;
    align-items: center;

    /* Move border properties here if you want it under the whole line */
    border-bottom: 1px solid #eee;
    /* padding-bottom: 10px;  */
    /* margin-bottom: 20px;  */
}
.stepHeadingDiv h2 {
    margin-top: 0;       /* Remove default top margin */
    margin-bottom: 0;    /* Remove default bottom margin */
    font-size: 1.1em;
    color: #007bff;
    /* flex-grow: 1; If you want h2 to take full width up to the button */
    /* margin-right: 15px; /* Add space between h2 and button */
}

.stepHeadingDiv span i{
    padding-right:5px;
    /* If the button needs specific top alignment within its span,
       and the span needs to align with the h2, this should be enough. */
}

/* Video Modal Specific Styles (if using for video like the last example) */
#videoModal .modal-dialog {
    max-width: 800px; /* Adjust modal width for video */
}
#videoModal .modal-body {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 Aspect Ratio (height / width * 100) */
    height: 0;
    overflow: hidden;
    background-color: #000; /* Black background for video */
}
#videoModal  .modal-header {
    padding-bottom:10px;
}
#videoModal  .modal-footer {
    padding-top:10px;
}
#videoModal .modal-body iframe, /* if you are using iframe for videos */
#videoModal .modal-body video {  /* if you are using <video> tag for videos */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; /* Remove iframe/video border */
}

#imageCanvas{
    border: none; /* We will draw the border using JS, so no default CSS border */
    background-color: #f1f1f1; /* Light blue background for the canvas area */
    display: block; /* Remove extra space below canvas */
    max-width: 100%; /* Ensure canvas is responsive */
    height: auto; /* Maintain aspect ratio */
    border-radius: 0.5rem; /* Slightly rounded corners for the canvas itself */
}


#showVastuchakraDiv{
    padding:5px;

}


/* CSS to style your new buttons */
        .plus.button,
        .min.button {
            display: inline-block;
            position: relative;
            padding: 0.5em 1em;
            background-color: #3f3690;
            color: #fff;
            cursor: pointer;
            text-align: center;
            width: 50px;
        }

        .plus.button {
            left: -6px;
            border-top-right-radius: 4px;
            border-bottom-right-radius: 4px;
        }

        .min.button {
            right: -6px;
            border-top-left-radius: 4px;
            border-bottom-left-radius: 4px;
        }

        .myNum {
            width: 30px !important;
            text-align: center;
            /* Basic styling for the number input for better visual integration */
            padding: 0.5em 0;
            margin-top: -4px;
            border: 1px solid #ccc;
            vertical-align: middle; /* Align with buttons */
            height: 35px; /* Adjust height to match buttons */
        }

        /* Hide Number Inputs - Chrome, Safari, Edge, Opera */
        input::-webkit-outer-spin-button,
        input::-webkit-inner-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }

        /* Hide Number Inputs - Firefox */
        input[type=number] {
            -moz-appearance: textfield;
        }

        /* Container for better layout */
        .number-input-container {
            display: flex;
            align-items: center;
            justify-content: center;
            margin-top: 50px; /* Just for demonstration */
        }