body,p,h1,h2,h3,h4,h5,h6,span,ul,li,select,option{
    font-family: 'Inter', Arial, sans-serif;;
}
/* styles.css */
#multi-step-form {
    background-color: #f4f4f4;
    display: flex;
    justify-content: center;
    align-items: center;
    /* height: 100vh; */
    margin: 0;
    padding-top:50px;
    padding-bottom:50px;
}
                     
.form-container {
    /*background-color: white;*/
    padding: 20px;
    border-radius: 8px;
    /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);*/
    max-width: 414px;
}

/*.form-step {
    display: none;
}*/

.form-step h2{
    color: #666363;
    font-weight: 600;
    font-size: 26px;
    margin-top:0;
    margin-bottom: 15px;
}

input{
    border-radius: 6px;
    border: solid 1px #AFA8A8;
}

	/*input:focus{
    border: solid 1px #ff6600;
    outline: solid 1px #ff6600;
}*/

.form-step.active {
    display: block;
}

.dob-inputs {
    display: flex;
    gap: 16px;
    margin-bottom: 15px;
}

.dob-inputs input {
    width: 30%;
    flex: 1; /* Makes all inputs take equal width */
    padding: 20px;
    text-align: center; /* Centers the input text */
}

.button-group {
    display: flex;
    gap: 10px;
    margin-bottom: 15px;
}

.radio-btn {
    display: inline-block;
    padding: 10px 20px;
    border: 1px solid #AFA8A8;
    border-radius: 4px;
    cursor: pointer;
    user-select: none;
    transition: background-color 0.3s, color 0.3s;
    text-align: center;
}

label{
    font-weight: 600;
    color: #000;
    font-size: 20px;
    padding-bottom: 24px;
    display: block;
}

/*p{
    font-size: 18px;
}*/

/* Hide the original radio buttons */
input[type="radio"] {
    display: none;
}

.button-group.yesno .input-container.valid input[type="radio"]:checked + .radio-btn {
	border: solid 2px #28a745;
	background: #fff;
}

.button-group.yesno .input-container.invalid input[type="radio"]:checked + .radio-btn {
	border: solid 2px #dc3545;
}

/* Style when hovering over the button */
.radio-btn:hover {
    background-color: #ff6600;
    color: white;
    border-color: #ff6600;
}

/* Stepper styles */

.stepper-container {
    margin-bottom: 20px;
}

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

.step {
    text-align: center;
    position: relative;
    width: 55px;
}

#stepIndicator1{
    z-index: 10;
}
#stepIndicator2{
    z-index: 9;
}
#stepIndicator3{
    z-index: 8
}
#stepIndicator4{
    z-index: 7;
}

.step:not(#stepIndicator1):before{
    content: "";
    height: 4px;
    width: 98px;
    position: absolute;
    top: 16px;
    left: -75px;
    background: #e0e0e0;
    z-index: -1;
}

.step-number {
    background-color: #f0f0f0;
    border: 2px solid #e0e0e0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    color: #999;
    margin: 0 auto;
    transition: background-color 0.3s, color 0.3s;
}

.step.active .step-number {
    background-color: #00A56F;
    color: white;
    border-color: #00A56F;
}

.step.completed .step-number {
    background-color: #00A56F;
    color: white;
    border-color: #00A56F;
}

.step-line {
    flex: 1;
    height: 2px;
    background-color: #e0e0e0;
    margin: 0 5px;
    transition: background-color 0.3s;
}

.step.active + .step-line,
.step.completed + .step-line {
    background-color: #ff6600;
}

.step-title {
    margin-top: 5px;
    font-size: 12px;
    color: #999;
}

.step.active .step-title,
.step.completed .step-title {
    color: #000;
    font-weight: bold;
}

.next-btn,.submit-btn{
    color: #fff;
    background-color: #AFA8A8;
    border-radius: 6px;
    max-width: 252px;
    width: 100%;
    padding: 15px;
    border: none;
    flex: 1;
}

label.radio-btn{
    font-weight: 400;
    font-size: 16px;
}

/* Date input container styles */
.input-container {
    position: relative;
    display: inline-block;
    width: 30%;
}

.input-container input, .input-container select {
    width: 100%;
    padding: 12px;
    text-align: center;
    border: 1px solid #AFA8A8; /* Default green border */
    border-radius: 4px;
    box-sizing: border-box;
    transition: border-color 0.3s;
}

.input-container .icon {
    position: absolute;
    right: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #28a745; /* Default green background */
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 10px;
    color: white;
    visibility: hidden; /* Hidden by default */
}

.input-container.valid input:focus{
    outline: none;
}

.input-container.valid select,.input-container.valid input {
    border: 2px solid #28a745; /* Red border for invalid input */
}

.input-container.invalid select,.input-container.invalid input {
    border: solid 2px #dc3545; /* Red border for invalid input */
}

.input-container.invalid .icon {
    background-color: #dc3545; /* Red background for invalid icon */
    visibility: visible; /* Show icon */
}

.input-container.valid .icon {
    visibility: visible; /* Show icon */
}

/* Hide the default checkmark and cross icons */
#icon-day::before, #icon-month::before, #icon-year::before,
#icon-ukYes::before, #icon-ukNo::before, 
#icon-title::before, #icon-firstName::before, #icon-lastName::before,
#icon-email::before, #icon-contactNumber::before, #icon-address1::before, #icon-city::before, #icon-postcode::before,
#icon-liveWithPartnerYes::before, #icon-liveWithPartnerNo::before,
#icon-children0::before, #icon-children1::before,
#icon-children2::before, #icon-children3::before,
#icon-children4::before, #icon-children5::before{
    content: "\f00c"; /* Default to checkmark */
}

.input-container.invalid #icon-day::before,
.input-container.invalid #icon-month::before,
.input-container.invalid #icon-year::before,
.input-container.invalid #icon-ukYes::before,
.input-container.invalid #icon-ukNo::before,
.input-container.invalid #icon-title::before,
.input-container.invalid #icon-firstName::before,
.input-container.invalid #icon-lastName::before,
.input-container.invalid #icon-email::before,
.input-container.invalid #icon-contactNumber::before,
.input-container.invalid #icon-address1::before,
.input-container.invalid #icon-city::before,
.input-container.invalid #icon-postcode::before {
    content: 'x'; /* Cross for invalid */
}

.children-number-group .input-container, .children-number-group .input-container label{
	width: 100%;
}

.button-group.yesno .input-container {
	width: 50%;
}
.button-group.yesno .input-container label{
	width: 100%;
	padding-top: 17px;
	padding-bottom: 17px;
}

.next-btn:not(:disabled){
    background-color: #00A56F;
    cursor: pointer;
}

.step:not(#stepIndicator1).active:before, .step:not(#stepIndicator1).completed:before{
    background: #00A56F;
}

.back-btn {
    background: none;
    border: none;
    color: #555;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px; /* Space between arrow and text */
    text-decoration: underline;
    padding: 0;
}

.back-btn .arrow {
    font-size: 16px;
    transition: margin-left 0.2s;
}

.back-btn:hover .arrow {
    margin-left: -5px; /* Moves the arrow slightly to the left on hover */
}

.nav-btns{
    display: flex;
    justify-content: space-between;
    margin-top: 25px;
	gap: 27px;
	background: #fff;
    padding: 20px 20px;
}

.nav-btns div{
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: space-between;
}

.nav-btns > a{
	display:flex;
}

.start-nav{
	background: #fff;
    padding: 20px 30px;
}

.nav-btns img{
    width: auto;
    height: 15px;
}

.form-step.active#step-2, .form-step.active#step-3{    
    display: flex;
    flex-direction: column;
}

#step-2 .input-container, #step-3 .input-container{
    margin-bottom: 24px;
}

#step-2 .input-container,#step-3 .input-container{
    width: 100%;
}

#step-2 .input-container input, #step-2 .input-container select,#step-3 .input-container input{
    text-align: left;
}

.checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.checkbox-item {
    display: flex;
    align-items: center;
}

.checkbox-item input[type="checkbox"] {
    display: none;
}

.checkbox-item label {
    position: relative;
    display: inline-block;
    padding-left: 40px;
    cursor: pointer;
    font-size: 16px;
    color: #333;
}

/* Custom checkbox design */
.checkbox-item label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    background-color: #f1f1f1;
    border: 2px solid #ccc;
    border-radius: 4px;
    display: inline-block;
    box-sizing: border-box;
    transition: all 0.3s ease;
}

.checkbox-item input[type="checkbox"]:checked + label::before {
    background-color: #00b47e; /* Green background when checked */
    border: none;
}

.checkbox-item input[type="checkbox"]:checked + label::after {
    content: "✓";
    position: absolute;
    left: 9px;
    top: 5px;
    font-size: 18px;
    color: white;
    transition: all 0.3s ease;
}

/* Align label text */
.checkbox-item label {
    margin-left: 10px;
	padding-top: 6px;
	font-size: 18px;
	font-weight: 400;
	line-height: 22px;
	padding-bottom: 10px;
}

/*#step-3 .checkbox-item input[type="checkbox"] {
    margin-bottom: 0;
}

#step-3 .checkbox-item label {
    padding: 0;
}*/

/* Styles for Yes/No and Number Buttons */
.yes-no-group, .children-number-group {
    display: flex;
    gap: 10px; /* Space between buttons */
    margin-bottom: 15px; /* Margin below the button groups */
}

.yes-no-group label, .children-number-group label{
    font-weight: 400;
    font-size: 16px;
}

.btn-yes-no, .btn-number {
    display: inline-block;
    padding: 10px 20px;
    border: 1px solid #AFA8A8;
    border-radius: 4px;
    cursor: pointer;
    user-select: none;
    transition: background-color 0.3s, color 0.3s;
    text-align: center;
}

.children-number-group {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 columns with equal width */
    gap: 10px; /* Space between buttons */
}

.btn-yes-no:hover, .btn-number:hover {
    background-color: #ff6600   ;
    color: white;
}

input[type="radio"]:checked + .btn-yes-no {
    background-color: #ff6600;
    color: white;
    border-color: #e0e0e0;
}

input[type="radio"]:checked + .btn-number {
    border: solid 2px #28a745;
}

.btn-number{
	padding-top: 17px;
	padding-bottom: 17px;
}

label[for='liveWithPartnerYes'], label[for='liveWithPartnerNo']{
	width: 50%;
	padding-top: 17px;
	padding-bottom: 17px;
}

.accordion-title p{
    font-size: 18px;
    font-weight: 600;
    line-height: 22px;
    margin-bottom: 0;
}

/* Accordion Styles */
.accordion-title {
    cursor: pointer;
    border-radius: 4px;
    margin-bottom: 5px;
    margin-top: 20px;
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between; /* Space between title and arrow icon */
    align-items: center; /* Center the content vertically */
}

.accordion-content {
    display: none;
    border-radius: 4px;
    margin-bottom: 15px;
}

.accordion-content.active {
    display: block; /* Show content when active */
}

.arrow-icon {
    width: 20px; /* Adjust size as needed */
    height: auto;
    transition: transform 0.3s ease; /* Smooth rotation effect */
}

.accordion-title img.rotated {
    transform: rotate(180deg); /* Flip the image when expanded */
}

.accordion-content p{
    margin-top:0;
}

.go-back{
    cursor: pointer;
}

#step-5 ul li a{
    font-size: 18px;
    font-weight: 700;
    color: #666363;
    line-height: 22px;
}

.helper-date-text.input-has-error{
	color: #E01414;
}

.helper-resident-text.invalid{
	display:none;
	color: #E01414;
}

#stepIndicator1 .step-number{
	margin-left: 0;
}

#stepIndicator4 .step-number{
	margin-right: 0;
}

@media (min-width: 768px){
	.form-container {
		width: 598px;
		max-width: 598px;
	}
	.dob-inputs {
		gap: 27px;
		margin-bottom: 22px;
	}
	.step-number {
		width: 60px;
		height: 60px;
		font-size:30px;
	}
	.step:not(#stepIndicator1):before {
		content: "";
		height: 4px;
		width: 145px;
		position: absolute;
		top: 29px;
		left: -115px;
		background: #e0e0e0;
		z-index: -1;
	}
	
	.form-step h2 {
		margin-bottom: 25px;
	}
	
	.button-group {
		margin-bottom: 23px;
	}
	.button-group.yesno .input-container {
		width: 50%;
	}
	.button-group.yesno .input-container label{
		width: 100%;
		padding-top: 17px;
    	padding-bottom: 17px;
	}
}

@media (max-width: 767px){
	.fo-step1-form, 
	.fo-step2-form,
	.fo-step3-form, 
	.fo-step4-form, 
	.fo-step5-form, 
	.fo-step6-form{
		width: 414px;
}
}