/* ==========================================================================
   Build ID: BUILD-20260818-FINALOVERRIDE
   Description: NIWC Atlantic Specific CSS Style for Custom Forms
   Date: August 18, 2026
   ========================================================================== */

/* Typography & Labels (Top-Aligned) */
.df_Plain .label { 
  flex: 0 0 33.333%; 
  max-width: 33.333%;
  padding: 0.375rem 0.75rem 0.375rem 0; 
  font-size: 90%; 
  font-weight: 600; 
  color: #212529; 
  background-color: transparent; 
  border: none;
  border-radius: 0.25rem; 
  text-align: right;
  box-sizing: border-box;
  align-self: flex-start; 
}

.df_Plain .extra { 
  font-size: 80%; 
  color: #6c757d; 
  font-style: italic; 
  text-align: left;
}

.df_Plain .subextra { 
  font-size: 80%; 
  color: #6c757d; 
}

/* Section Card & Sub-Section Headers */
.df_Plain .section {
  width: 100% !important;
  box-sizing: border-box;
  background-color: #f8f9fa; 
  border: 1px solid #dee2e6; 
  border-radius: 0.5rem; 
  padding: 1.25rem; 
  margin-bottom: 1.5rem; 
  clear: both;
}

.df_Plain .section .header { 
  position: relative;
  border-bottom: 1px solid #dee2e6; 
  margin: 0 0 1.75rem 0; 
  padding-bottom: 0.5rem; 
  clear: both;
  width: 100%;
}

.df_Plain .section .header h1 { 
  font-size: 1.5rem; 
  width: 100%; 
  margin-bottom: 0.25rem; 
  color: #212529;
}

.df_Plain .section .header h2 { 
  font-size: 1rem; 
  width: 100%; 
  padding-bottom: 0; 
  border-bottom: none; 
  color: #6c757d;
}

/* Section Container Layer */
.df_Plain .section_container {
  display: block;
  clear: both;
  position: relative;
  margin-top: 1rem;
  width: 100%;
}

.df_Plain .section_design { 
  border: 2px dotted #dee2e6; 
  border-radius: 0.25rem;
}

/* Standard Input Control Row Layout */
.df_Plain .control {
  display: flex !important;
  align-items: flex-start; 
  margin-bottom: 1rem;
  width: 100%;
}

/* Field Box Wrapper Layout */
.df_Plain .field {
  flex: 0 0 66.666%; 
  max-width: 66.666%;
  box-sizing: border-box;
  padding-left: 0.5rem;
}

/* Nested Div inside Field */
.df_Plain .field > div {
  display: flex !important;
  align-items: center;
  width: 100%;
}

/* Validation Text Indicator & Required Key Legend - Hidden */
.df_Plain .required,
.df-form-required-key { 
  display: none !important; 
}

.df_Plain .val { 
  color: #dc3545; 
}

/* Input Fields Baseline Styling */
.df_Plain .field input[type="text"],
.df_Plain .field input[type="email"],
.df_Plain .field input[type="password"],
.df_Plain .field input[type="number"],
.df_Plain .field input[type="tel"],
.df_Plain .field select,
.df_Plain .field textarea {
  display: inline-block;
  width: auto;
  max-width: 100%;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0.25rem; 
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

/* Select Box Height Normalization */
.df_Plain .field select {
  height: calc(1.5em + 0.75rem + 2px); 
}

/* Checkbox Spacing */
.df_Plain .field input[type="checkbox"] { 
  margin: 0 8px 0 0; 
  vertical-align: middle;
  cursor: pointer;
}

.df_Plain .field input[type="checkbox"] + label {
  margin-right: 15px;
}

/* Standard Focus Ring */
.df_Plain .field input:focus,
.df_Plain .field select:focus,
.df_Plain .field textarea:focus,
.df_Plain .focus { 
  color: #495057;
  background-color: #fff;
  border-color: #80bdff;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

/* Red Outline on Required Inputs */
.df_Plain .field input:required,
.df_Plain .field select:required,
.df_Plain .field textarea:required,
.df_Plain .field input[aria-required="true"],
.df_Plain .field select[aria-required="true"],
.df_Plain .field textarea[aria-required="true"],
.df_Plain .field div:has(.required) input,
.df_Plain .field div:has(.required) select,
.df_Plain .field div:has(.required) textarea {
  border-color: #dc3545 !important;
}

/* Red Glow Focus State for Required Inputs */
.df_Plain .field input:required:focus,
.df_Plain .field select:required:focus,
.df_Plain .field textarea:required:focus,
.df_Plain .field input[aria-required="true"]:focus,
.df_Plain .field select[aria-required="true"]:focus,
.df_Plain .field textarea[aria-required="true"]:focus,
.df_Plain .field div:has(.required) input:focus,
.df_Plain .field div:has(.required) select:focus,
.df_Plain .field div:has(.required) textarea:focus {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
}

/* ==========================================================================
   SPECIFIC OVERRIDES (MUST REMAIN AT BOTTOM OF CSS FILE)
   ========================================================================== */

/* Target Section Header Controls to Take 100% Width */
.df_Plain .control[id*="sectionContact"],
.df_Plain .control[id*="sectionTechInquiry"],
.df_Plain .control[id*="sectionSBInquiry"],
.df_Plain .control[id*="sectionContracts"] {
  display: block !important;
  width: 100% !important;
  clear: both;
  margin-bottom: 1rem;
}

/* Forces #df_field_contentINST and all child containers to display 100% block flow */
#df_field_contentINST,
#df_field_contentINST.control,
#df_field_contentINST .field,
#df_field_contentINST .field > div,
#df_field_contentINST .field > div > span {
  display: block !important;
  flex: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  box-sizing: border-box !important;
}