/* Global reset to ensure no unexpected margins or paddings */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden; /* Ensures no horizontal scroll is possible */
  box-sizing: border-box; /* Includes padding and border in the element's width */
  color: #5F6369; 
}

body {
  background-color: #f0f0f1;
}

label.error {
    color: red;
    font-size: 12px;
    margin-bottom: 5px;
    text-align:left;
}   

/* General hyperlink styles */
a {
    color: #276EF1;          /* Default link color */
    text-decoration: underline;  /* Underlined by default */
}

/* Hover and focus states */
a:hover, a:focus {
    color: #0056b3;          /* Hover/focus color */
    text-decoration: none;   /* Remove underline on hover/focus */
}

/* Class to override the default hover behavior */
.no-hover-color:hover, .no-hover-color:focus {
    color: #FFFFFF;              /* Maintain the default color on hover/focus */
    text-decoration: none;  /* Maintain the underline on hover/focus */
}


.logos img {
    width: 100%;
    height: auto;
}

/* Logos Mobile */
@media screen and (max-width: 600px) {
    .logo img {
        width: 85%;
        height: auto;
    }
}


.contact-number a {
     
    text-align: center;
    width: 100%;
    font-family: Roboto, sans-serif;
    font-weight: bolder;
    font-size: 130%;  
    text-decoration: underline;
    text-decoration-thickness: 0.001em; /* Adjust the thickness of the underline */
    color: #333333; /* Set the regular color of the link */

}


.contact-number: a hover {
            color: #999999!important;
        }        







h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  line-height: 1.2;
  color: #000;
  font-family: "Roboto Slab", sans-serif;
  font-weight: 700 !important;
}

/* Header & Footer Content for _Layout View */


.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center; /* Center items vertically */
    max-width: 1200px; /* Optional: Set a max width */
    margin: 0 auto; /* Center the container horizontally */
    padding: 20px; /* Optional: Add some padding */
}

.logo-container {
    display: flex;
    align-items: center;
}

.logo {
    height: 60px !important;
    margin-right: 33px;
    padding-top: 11px;
}

.tagline {
    font-family: "Roboto Slab", sans-serif;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    font-size: 130%; /* Increase the font size by 30% */
}


.contact-container {
    display: flex;
    align-items: center;
    font-size: 18px;
        margin-right: 125px;
}

.contact-container .fas {
    margin-right: 5px;
    font-size: 18px;
}

.contact-text {
    margin-right: 5px;
}

.contact-number {
    color: #ffd700;
    font-weight: bold;
    font-size: 20px;
}

.contact-number a {
    color: #ffd700;
    font-weight: bold;
    font-size: 20px;
    text-decoration: none;
}


.qtext
{
	font-size: 18pt;
	color: #5F6369;
}

.footerhelptext
{
	font-size: 20pt;
	color: #5F6369;
}

.footercstext
{
	font-size: 14pt;
	color: #5F6369;
}



/* Header and Footer Full Bleed */
.site-header, .site-footer {
  width: 100vw; /* Use 100vw to make the elements span the full width of the viewport */
  display: block; /* Ensure block-level display */
  background-color: #003987; /* Example color */
  height: 120px; /* Example height */
  color: white;
  text-align: center;
  position: relative;
  margin: 0; /* Removes any default margin */
  left: 50%; /* Aligns to the center horizontally */
  right: 50%; /* Aligns to the center horizontally */
  transform: translateX(-50%); /* Shifts the element to the left by 50% of its width */
}

.site-header {
    background-color: #003987;
    height: 110px;  // Ensures header is visible
    line-height: 40px;  // Vertically centers any text inside
padding: 10px 0;
}

.site-footer {
    background-color: #D8D9DB!important;  /* Example color */
    height: auto;  /* Example height */
    line-height: 50px;
   text-decoration: none;
}


/* Footer Tel Button */

.btn {
    background-color: #5F6369;
     border: none;
    border-radius: 5px;
    padding: 8px 16px;
}

    .btn:hover {
        background-color: #666666;
    }

    .btn i {
        margin-right: 5px;
    }

    .btn a {
        color: white;
    }




/* CSS for Desktop */
.container, .main-and-detail {
    max-width: 1300px; /* or any specific max width */
    width: 100%;
    margin: 0 auto; /* This centers the content */
}

/* CSS for Mobile */
@media (max-width: 768px) {
    .container, .main-and-detail, .appointment-header, .progress-and-empty {
        width: 100%; /* Ensures it uses the full width */
        margin: 0; /* Removes any side margins */
        padding: 0; /* Removes any side padding */
    }
}


.appointment-header {
 
    padding: 15px;
    font-size: 18px;
    font-weight: bold;
    width: 75%;
    margin-left: 11.5%;
}

.progress-and-empty {
    display: flex;
    justify-content: space-between;
    width: 75%;
    margin-left: 12.5%;
}

.empty-area {
    width: 25%;
    background-color: #f0f0f1;
}

.main-and-detail {
    display: flex;
    justify-content: space-between;
    width: 75%;
    margin-left: 12.5%;
    gap: 10px;
}

.main-content-area, .detail-panel {
    background-color: #fff;
    padding: 20px;
   
 width: 80%;  /* Makes the image responsive */
height: 150%;	
}

.main-content-area img {
    width: 100%;  /* Makes the image responsive */
    height: auto;  /* Maintains the aspect ratio */
    max-width: 100%;  /* Ensures the image does not exceed the width of its container */
}


.detail-panel {
    padding-top: 80px;
    flex-basis: 25%;
    background-color: #fff;
    padding: 15px;
  
    position: -webkit-sticky;
    position: sticky;
    top: calc(55px + 10px);
    align-self: flex-start;
    height: fit-content;
}

.detail-panel::before { /* Add this rule */
    content: "";
    display: block;
    height: 13px;
    background-color: #276EF1;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.service-details	
{
    display: flex;
    color: #276EF1;
    font-size: .99em;    
    align-items: left;
    text-align: left;
    margin-top: 10px;
}

.service-info {
    font-family: Arial, sans-serif; /* or any other font family you prefer */
}

.service-info .label {
    font-size: 12px;
    color: #9FA2A5; /* Light gray color for the labels */
    margin-bottom: 5px;
}

.service-info .value {
    font-size: 16px;
    color: #333333; /* Darker color for the values */
    margin-bottom: 15px;
}




/*Spacers*/

.AddRow105 
{ height: 105px; }


.AddRow10 
{ height: 10px; }

.AddRow35 
{ height: 35px; }

.zip-form {
    width: 100%;  /* Ensures the form uses the full width available */
}

.zip-form input[type="text"], .zip-form button {
    width: 100%;  /* Makes input and button fill their container */
    padding: 12px 20px;  /* Increases padding for easier interaction on touch devices */
    box-sizing: border-box;  /* Includes padding in the width calculation */
    margin-bottom: 10px;  /* Adds space between the form elements */
}

zip.form button {
    background-color: #276EF1;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}


zip.form button:hover {
    background-color: #1C4FB0;
}


.service-selection p {
  margin-bottom: 10px; /* Spacing between text and buttons */
}

.button-group {
  display: flex;
  justify-content: space-between;
}

/* General styles for the service buttons */
.service-button {
    display: inline-block;
    padding: 10px 20px;
    margin: 5px;
    background-color: #276EF1;
    color: white;
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
    font-size: 16px;
}

/* Container for the buttons */
.button-group {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

/* Media query for mobile devices */
@media (max-width: 768px) {
    .button-group {
        flex-direction: column;
        align-items: center;
    }
    .service-button {
        width: 100%;
        margin: 10px 0;
    }
}


.fuel-selection {
  margin-top: 20px; /* Adjust as needed */
}

.fuel-selection label {
  display: block;
  margin-bottom: 5px;
}

.fuel-selection select {
  width: 60%;
  padding: 10px;
  border-radius: 4px;
  border: 1px solid #ccc;
  background-color: white;

}
 

.dropbox-selection label {
  display: block;
  margin-bottom: 5px;
width: 100%;  /* Makes input and button fill their container */
}

.dropbox-selection select {
  width: 100%;
  padding: 10px;
  border-radius: 4px;
  border: 1px solid #ccc;
  background-color: white;
 
  color: #5F6369;
}

/* Styles for the detail panel update */
.selected-heating-system h4 {
  margin-bottom: 5px;
}

.selected-heating-system p {
  font-weight: bold;
}


/*Stylize the Contact Form*/

body {
    font-family: Arial, sans-serif; /* Clean font for readability */
    padding: 20px; /* Spacing around the form */
    background: #f4f4f4; /* Light grey background */
}

form {
    background: #fff; /* White background for the form */
    padding: 20px; /* Padding inside the form */
    border: 0px solid #ccc; /* Border around the form */

    width: 500px; /* Fixed width */
    margin: auto; /* Centering the form */
}

label {
    display: block; /* Labels take the full width */
    margin-bottom: 5px; /* Space below each label */
    color: #333; /* Dark grey color for text */
}

input[type="text"],
input[type="email"],
input[type="tel"],
select {
    width: 100%; /* Full width */
    padding: 8px; /* Padding inside inputs */
    margin-bottom: 10px; /* Space below inputs */
    border: 1px solid #ccc; /* Grey border */
    box-sizing: border-box; /* Border included in width */
}

input[type="checkbox"] {
    margin-right: 5px; /* Space next to the checkbox */
}

.button-primary {
    background-color: #007BFF; /* Bootstrap primary color */
    color: white; /* White text */
    padding: 10px 15px; /* Padding */
    border: none; /* No border */
    border-radius: 5px; /* Rounded corners */
    cursor: pointer; /* Pointer cursor on hover */
    width: 100%; /* Full width for mobile visibility */

}

.button-primary:hover {
    background-color: #0056b3; /* Darker blue on hover */
}


.button-primary:disabled {
            background-color: #cccccc;
            cursor: not-allowed;
        }

.error-message {
            color: red;
            font-size: 14px;
            margin-top: 10px;
        }

button {
    background-color: #007BFF; /* Bootstrap primary color */
    color: white; /* White text */
    padding: 10px 15px; /* Padding */
    border: none; /* No border */
    border-radius: 5px; /* Rounded corners */
    cursor: pointer; /* Pointer cursor on hover */
    width: 100%; /* Full width for mobile visibility */

}

button:hover {
    background-color: #0056b3; /* Darker blue on hover */
}

fieldset {
    border: none; /* No border around fieldsets */
    margin: 0; /* No margin for alignment */
    padding: 0; /* No padding for alignment */
}

fieldset legend {
    font-size: 16px; /* Larger font for section titles */
    margin-bottom: 10px; /* Space below titles */
    color: #333; /* Dark grey color matching labels */
}

/* Style the Progress Bar Items */

.pb-container {
    display: flex;
    justify-content: space-between; /* Adjusts the layout to space out items */
    align-items: center;
    width: 75%; /* Ensures the container uses the full width */
}

.pb-section {
    flex: 1 1 33.33%; /* This allows each section to grow and shrink but bases it on 33.33% of the container's width */
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* Ensure underlines span the full width */
.pb-checked-underline, .pb-active-underline, .pb-inactive-underline {
    width: 100%; /* Ensures the underline is as wide as the section */
}
.pb-checked, .pb-active, .pb-inactive {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.pb-checked-content, .pb-active-content, .pb-inactive-content {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #276EF1;
    font-size: 17px;
}

.pb-checked-underline, .pb-active-underline, .pb-inactive-underline {
    height: 6px;
    background-color: #276EF1;
    width: 100%;
}


.pb-checked-icon {
    width: 20px;
    height: 20px;
    background-color: #276EF1; /* Blue background for the circle */
    border-radius: 50%; /* Rounded border to create the circle */
    display: flex;
    justify-content: center; /* Center the icon horizontally */
    align-items: center; /* Center the icon vertically */
    color: white;
    margin-right: 5px; /* Increase right margin to add space */
    margin-top: -7px; /* Nudge the element up by 10px */
}


.pb-inactive-content {
    color: #5F6369;
}

.pb-inactive-underline {
    background-color: #CFD1D2;
}

.pb-separator {
     
    padding: 0 5px;
}







.back-button {
    text-transform: none !important;  
    font-size: 12px;  /* Adjust font size as necessary */
    color: #000000;  /* Sets the text color to black */
    text-decoration: none !important;  /* Removes underline from the link */
    padding: 5px 1px;  /* Adds some padding around the text and icon */
    display: inline-flex;  /* Uses flexbox to align icon and text */
    align-items: center;  /* Vertically centers the icon with the text */
    border-radius: 5px;  /* Optional: rounds the corners of the button */
}

.back-button i {
    margin-right: 5px;  /* Adds spacing between the icon and text */
}

i.fas.fa-arrow-left + a.back-button {
    text-transform: none !important;
}


}



 