body{
  font-family: Arial;
  background:#f4f7ff;
  margin:0;
  padding:10px;
}

.container{
  max-width:900px;
  margin:auto;
  background:#fff;
  padding:30px;
  border-radius:12px;
}

.header{
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}

h1{ color:#0f2a5f; margin:0; }

.secure-box {
  background: #eef4ff;
  padding: 10px 15px;
  border-radius: 8px;
  color: #1d4ed8;
  
  /* ⚡ ADD THESE FOR EXACT SPACING CONTROL */
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px; /* Controls the exact vertical gap between the lines */
}

.section-title{
  margin-top:25px;
  color:#1d4ed8;
  font-weight:bold;
}

/* ✅ FIX GAP + RESPONSIVE GRID */
.grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:20px; /* 👈 IMPORTANT GAP FIX */
  margin-top:15px;
}

.field{
  display:flex;
  flex-direction:column;
}

.field label{
  margin-bottom:8px;  /* 👈 GAP FIX BETWEEN LABEL & INPUT */
  font-size:14px;
  font-weight:500;
}

input, select, textarea{
  padding:12px;
  border:1px solid #ddd;
  border-radius:8px;
  outline:none;
  background-color: #fff;
}

textarea{ min-height:90px; }

.error{
  color:red;
  font-size:12px;
}

/* ⚡ NEW SCROLLABLE DROPDOWN FIXES */
#service {
  position: absolute;
  top: 27px; /* Aligns right under the label */
  left: 0;
  width: 100%;
  z-index: 100;
}

/* Keeps the error box and hidden elements properly spaced below the dropdown track */
.field:has(#service) {
  position: relative;
  height: 72px; 
}

/* Stylizes option hover states when using size attribute */
#service option {
  padding: 10px;
  cursor: pointer;
}


/* ===== RADIO DESIGN ===== */
.radio-wrap{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:15px;
}

.radio-card{
  flex:1;
  min-width:250px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:15px;
  border:2px solid #e5e7eb;
  border-radius:12px;
  cursor:pointer;
  transition:0.3s;
  position:relative;
}

.radio-card:hover{
  border-color:#1d4ed8;
}

.radio-card input{
  display:none;
}

/* circle */
.circle{
  width:18px;
  height:18px;
  border:2px solid #1d4ed8;
  border-radius:50%;
  margin-top:3px;
  position:relative;
}

.radio-card input:checked + .circle::after{
  content:"";
  width:10px;
  height:10px;
  background:#1d4ed8;
  border-radius:50%;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
}

.radio-card b{
  display:block;
}

.radio-card p{
  margin:5px 0 0;
  font-size:12px;
  color:#666;
}

/* ===== HIDDEN ===== */
.hidden{ display:none; }

/* ===== BUTTON ===== */
button{
  width:100%;
  margin-top:25px;
  padding:12px;
  background:#1d4ed8;
  color:#fff;
  border:none;
  border-radius:10px;
  font-size:16px;
}


/* HOME ADDRESS FULL WIDTH FIX */
#homeAddressBox{
  margin-top:15px;
}

#homeAddress{
  width:100%;        /* 👈 FULL WIDTH */
  min-height:120px;  /* 👈 INCREASE HEIGHT */
  padding:14px;
  border-radius:10px;
  border:1px solid #ddd;
  font-size:14px;
  resize:none;       /* optional: disables resize */
}


.final-box{
  display:flex;
  gap:12px;
  align-items:center;
  background:#f1f5ff;
  padding:15px;
  border-radius:12px;
  margin-top:20px;
  border:1px solid #e5e7eb;
}

.final-box .final-icon{
  width:40px;
  height:40px;
  background:#dbeafe;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  font-size:18px;
}

.final-box b{
  display:block;
  color:#1e3a8a;
}

.final-box p{
  margin:5px 0 0;
  font-size:12px;
  color:#6b7280;
}



/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .grid{
    grid-template-columns:1fr; /* stack fields */
  }
  
  /* Adds spacing on smaller screens so elements don't overlap the absolute dropdown */
  .field:has(#service) {
    margin-bottom: 15px;
  }

  .radio-wrap{
    flex-direction:column;
  }

  .container{
    padding:20px;
  }
}