/* ============================================================
   MARKETO FORM — UNIVERSAL STYLESHEET  v1.1
   ============================================================
   Features:
     • Works on any .mktoForm instance (no ID dependency)
     • Floating labels
     • Full-width form layout
     • Checkbox list styling  (from RCB Template)
     • Single standalone checkbox styling  (from RCB Template)
     • Radio list with optional price-column support
     • Primary button with wipe animation
     • Secondary button style
     • 1-column forms: extra 16px padding on top of primary button
   ============================================================ */

@font-face {
  font-family: 'HelveticaNowDisplay-Regular';
  src: url('https://explorehumancapital.aon.com/rs/851-LXZ-252/images/HelveticaNowDisplayRegular.ttf') format('truetype');
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'HelveticaNowDisplay-Bd';
  src: url('https://explorehumancapital.aon.com/rs/851-LXZ-252/images/HelveticaNowDisplayBold.ttf') format('truetype');
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'HelveticaNowDisplay-Md';
  src: url('https://explorehumancapital.aon.com/rs/851-LXZ-252/images/HelveticaNowDisplayMd.ttf') format('truetype');
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'HelveticaNowDisplay-Lt';
  src: url('https://explorehumancapital.aon.com/rs/851-LXZ-252/images/HelveticaNowDisplayLt.woff2') format('woff2'),
       url('https://explorehumancapital.aon.com/rs/851-LXZ-252/images/HelveticaNowDisplayLt.woff') format('woff');
  font-style: normal;
  font-display: swap;
}

/* Global box-sizing for Marketo form */
.mktoForm,
.mktoForm * {
  box-sizing: border-box !important;
}

/* Container / column reset to avoid squashing in Bootstrap columns */
#form-section.col {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0;
}
#form-section .form-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  width: 100%;
  max-width: 100%;
  margin: 0;
}

/* Form root: full width, safe in narrow columns */
.mktoForm,
form.mktoForm,
form.mktoForm[style] {
  container-type: inline-size;
  width: 100% !important;
  inline-size: 100% !important;
  max-width: 100% !important;
  max-inline-size: 100% !important;
  min-width: 0 !important;
  min-inline-size: 0 !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  display: block !important;
  background: transparent !important;
  background-color: transparent !important;
  font-family: 'HelveticaNowDisplay-Regular', Arial, sans-serif !important;
  font-size: 18px !important;
  color: #5d6d78 !important;
  line-height: 1.4 !important;
}

/* Global typography inheritance inside form */
.mktoForm .mktoLabel,
.mktoForm .mktoHtmlText,
.mktoForm .mktoHtmlText p,
.mktoForm .mktoHtmlText li,
.mktoForm .mktoHtmlText a,
.mktoForm .mktoRadioList label,
.mktoForm .mktoCheckboxList label,
.mktoForm .mktoButton,
.mktoForm .mktoButton * {
  font-family: 'HelveticaNowDisplay-Regular', Arial, sans-serif !important;
  color: inherit !important;
}

/* Structural width constraints */
.mktoForm .mktoFormRow,
.mktoForm .mktoFormCol,
.mktoForm .mktoFieldWrap,
.mktoForm .mktoButtonRow,
.mktoForm .mktoHtmlText {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

/* Reset nested lists */
.mktoForm .mktoForm .mktoRadioList,
.mktoForm .mktoForm .mktoCheckboxList {
  padding: 0 !important;
  float: none !important;
}

/* Remove Marketo’s clear div */
.mktoForm .mktoClear {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}

/* Form container padding */
.form-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Row layout: single column, full width */
.mktoForm .mktoFormRow {
  position: relative;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-bottom: 24px !important;
  padding: 0;
  box-sizing: border-box !important;
}

/* Column layout: full width within each row */
.mktoForm .mktoFormRow .mktoFormCol {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
  hyphens: auto !important;
  position: relative;
}

/* Hide rows that consist only of hidden inputs */
.mktoFormRow input[type="hidden"] {
  margin-bottom: 0 !important;
}
.mktoFormRow:has(input[type="hidden"]:only-child) {
  display: none !important;
}

/* Row spacing variations for specific content types */
.mktoForm .mktoFormRow:has(.mktoHtmlText) {
  margin-bottom: 8px !important;
}
.mktoForm .mktoFormRow:has(.mktoRadioList) {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
}
.mktoForm .mktoFormRow:has(.mktoCheckboxList) {
  margin-bottom: 0 !important;
  gap: 0 !important;
  padding-bottom: 0 !important;
}
.mktoForm .mktoFormRow:has(.mktoCheckboxList) .mktoFormCol {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Textarea row spacing */
.mktoForm .mktoFormRow:has(textarea) {
  margin-top: 30px;
}

/* Last row / button row spacing */
.mktoForm .mktoFormRow:last-of-type {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.mktoForm .mktoButtonRow {
  margin-top: 18px !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.mktoForm .mktoFormRow:has(.mktoHtmlText) + .mktoButtonRow {
  margin-top: 18px !important;
}

/* Base input/textarea styling */
.mktoForm input,
.mktoForm textarea {
  width: 100%;
  font-family: "Helvetica Now Text", sans-serif;
  font-size: 16px !important;
  color: #262836 !important;
  background: transparent !important;
  border: none;
  border-bottom: 1px solid #ccc;
  padding: 8px 0 8px 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
  appearance: none;
  outline: none;
  text-indent: 0px;
}

/* Base input/select styling */
.mktoForm input,
.mktoForm select {
  width: 100%;
  font-family: "Helvetica Now Text", sans-serif;
  font-size: 16px !important;
  color: #262836 !important;
  background-color: #F9FCFC !important;
  border: none;
  border-bottom: 1px solid #ccc;
  padding: 8px 0 8px 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
  appearance: none;
  outline: none;
  text-indent: 0px;
}

/* Hidden fields */
.mktoForm input[type="hidden"] {
  margin-bottom: 0 !important;
  width: 0 !important;
  display: none !important;
  height: 0 !important;
  padding: 0 !important;
  border: none !important;
}

/* General field reset */
.mktoForm .mktoField,
.mktoForm input[type="text"],
.mktoForm input[type="url"],
.mktoForm input[type="email"],
.mktoForm input[type="tel"],
.mktoForm input[type="number"],
.mktoForm input[type="date"],
.mktoForm textarea.mktoField,
.mktoForm select.mktoField {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  border: none !important;
  border-radius: 0 !important;
  border-bottom: 1px solid #ccc !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Textarea specifics */
.mktoForm textarea.mktoField,
.mktoForm textarea {
  min-height: 50px !important;
}

/* Checkbox/radio dimensions */
.mktoForm input[type="checkbox"],
.mktoForm input[type="radio"] {
  width: 20px !important;
  min-width: 20px !important;
  max-width: 20px !important;
  height: 20px !important;
  min-height: 20px !important;
  max-height: 20px !important;
}

/* Custom checkbox/radio base */
.mktoForm input[type="checkbox"].mktoField,
.mktoForm input[type="radio"].mktoField {
  border: 1px solid #acc0c4 !important;
  border-bottom: 1px solid #acc0c4 !important;
  background: #fff !important;
  border-radius: 0 !important;
  min-height: 20px !important;
  height: 20px !important;
  padding: 0 !important;
  margin: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  position: relative !important;
}

/* Hover/focus border accent on text inputs/selects/textarea */
.mktoForm .mktoFormRow:hover input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.mktoForm .mktoFormRow:hover select,
.mktoForm .mktoFormRow:hover textarea,
.mktoForm input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.mktoForm select:focus,
.mktoForm textarea:focus {
  border-bottom-color: #007585 !important;
}

/* Placeholder and select text font */
.mktoForm input::placeholder,
.mktoForm textarea::placeholder,
.mktoForm select {
  font-family: "Helvetica Now Text", sans-serif !important;
}

/* Floating label base */
.mktoForm label.mktoLabel {
  position: absolute;
  top: 8px;
  left: 0px;
  bottom: 8px;
  margin: 0 !important;
  font-size: 16px;
  padding: 4px 0 !important;
  display: flex;
  align-items: center;
  font-family: "Helvetica Now Text", sans-serif;
  color: #777 !important;
  background: none;
  transition: all 0.25s ease-in-out;
  pointer-events: none;
  z-index: 2;
  transform-origin: top left;
  line-height: 1;
}

/* Floating label moved state (driven by JS .moveUp class) */
.mktoForm label.mktoLabel.moveUp {
  transform: translateY(-22px) scale(0.75);
  font-size: 12px !important;
  color: #777 !important;
}

/* Label typography hardening */
.mktoForm label.mktoLabel,
.mktoForm label.mktoLabel * {
  font-family: "Helvetica Now Text", sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  word-spacing: normal !important;
  text-transform: none !important;
}

/* Select labels: keep a background so text stays legible over select field */
.mktoForm .mktoFormRow:has(select) label.mktoLabel {
  background-color: #F9FCFC !important;
  padding: 0px 0 !important;
  display: flex;
  align-items: center;
  z-index: 1;
}
.mktoForm .mktoFormRow:not(:has(select)) label.mktoLabel {
  background: transparent !important;
}

/* Textarea label spacing */
.mktoFormRow:has(textarea) label.mktoLabel {
  padding: 8px 0px !important;
}
.mktoForm textarea.mktoField {
  border: 1px solid #ccc !important;
  padding: 4px !important;
  margin: 0 !important;
  min-height: 50px;
}
.mktoFormRow:has(textarea) label.mktoLabel.moveUp {
  transform: translateY(-26px) scale(0.75);
  font-size: 12px !important;
}

/* Hide Marketo asterisk; JS/error styling will handle required */
.mktoForm .mktoLabel .mktoAsterix {
  display: none !important;
}

/* HTML text inside form */
.mktoForm .mktoHtmlText,
.mktoForm .mktoHtmlText p {
  font-size: 12px !important;
  font-family: "Helvetica Now Text", sans-serif;
  font-weight: 400 !important;
  color: #777 !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  line-height: 14px !important;
}

/* Headings inside HtmlText */
.mktoForm .mktoHtmlText h4,
.mktoForm .mktoHtmlText h6 {
  font-family: 'HelveticaNowDisplay-Md', sans-serif !important;
  font-size: 1rem !important;
  line-height: 1.24 !important;
  margin: 0 0 8px 0 !important;
  letter-spacing: 0 !important;
  color: #262836 !important;
}
.mktoForm .mktoHtmlText h1,
.mktoForm .mktoHtmlText h2,
.mktoForm .mktoHtmlText h3 {
  font-family: 'HelveticaNowDisplay-Bd', sans-serif !important;
}
.mktoForm .mktoHtmlText h5 {
  font-family: 'HelveticaNowDisplay-Md', sans-serif !important;
}

/* Links inside HtmlText */
.mktoForm .mktoHtmlText a {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  color: inherit;
  background: none;
  box-shadow: none;
  border: none;
}

/* Horizontal rules inside form */
.mktoForm hr,
.mktoForm hr.alternative {
  display: block;
  margin-top: 18px !important;
  margin-bottom: 18px !important;
  padding: 0 !important;
  border-width: 0.0625rem !important;
  border-color: #acc0c4 !important;
}

/* General link styling */
.mktoForm a {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-color: #EB0017 !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 2px;
  background-image: none !important;
}

/* Remove any external-link icon decorations */
.mktoForm a::before,
.mktoForm a::after,
.mktoForm a[target="_blank"]::before,
.mktoForm a[target="_blank"]::after {
  content: none !important;
  display: none !important;
  background-image: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* HtmlText / list link styling for consistency */
.mktoForm .mktoHtmlText a,
.mktoForm .mktoHtmlText p a,
.mktoForm .mktoRadioList input + label a,
.mktoForm .mktoCheckboxList input + label a {
  text-decoration: underline !important;
  text-decoration-color: #EB0017  !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 2px !important;
}

/* Primary button base (non-secondary/non-tertiary) */
.mktoForm .mktoButton:not(.secondary):not(.tertiary),
.mktoForm button.mktoButton:not(.secondary):not(.tertiary),
.mktoForm input.mktoButton:not(.secondary):not(.tertiary) {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: #fff !important;
  border: 1px solid #fff !important;
  font-family: 'HelveticaNowDisplay-Regular', Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
  cursor: pointer;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 20px !important;
  justify-items: start !important;
  padding: 16px 24px !important;
  text-align: left !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  text-transform: none !important;
  isolation: isolate !important;
  overflow: hidden !important;
  z-index: 1 !important;
  width: auto !important;
  min-width: 120px !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  border-radius: 0 !important;
  transition: color 0.3s ease-out, border-color 0.3s ease-out !important;
}

/* Primary button background layer */
.mktoForm button.mktoButton:not(.secondary):not(.tertiary)::after,
.mktoForm input.mktoButton:not(.secondary):not(.tertiary)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #EB0017;
  opacity: 1;
  transition: opacity 0.3s ease-out;
  pointer-events: none;
  z-index: 0;
}

/* Primary button wipe overlay */
.mktoForm button.mktoButton:not(.secondary):not(.tertiary)::before,
.mktoForm input.mktoButton:not(.secondary):not(.tertiary)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0;
  background: #f9fcfc;
  transition: width 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
  z-index: 1;
}

/* Primary button hover/focus */
.mktoForm button.mktoButton:not(.secondary):not(.tertiary):hover,
.mktoForm button.mktoButton:not(.secondary):not(.tertiary):focus,
.mktoForm input.mktoButton:not(.secondary):not(.tertiary):hover,
.mktoForm input.mktoButton:not(.secondary):not(.tertiary):focus {
  background: #EB0017 !important;
  color: #262836 !important;
  border-color: #EB0017 !important;
}
.mktoForm button.mktoButton:not(.secondary):not(.tertiary):hover::after,
.mktoForm button.mktoButton:not(.secondary):not(.tertiary):focus::after {
  opacity: 0;
}
.mktoForm button.mktoButton:not(.secondary):not(.tertiary):hover::before,
.mktoForm button.mktoButton:not(.secondary):not(.tertiary):focus::before,
.mktoForm input.mktoButton:not(.secondary):not(.tertiary):hover::before,
.mktoForm input.mktoButton:not(.secondary):not(.tertiary):focus::before {
  width: 100%;
}

/* Button label & icon */
.mktoForm .mktoButton .button-label {
  position: relative;
  z-index: 2;
  display: inline-block;
  color: inherit !important;
  letter-spacing: 0 !important;
  word-spacing: normal !important;
  text-transform: none !important;
}
.mktoForm .mktoButton span.icon {
  display: inline-block;
  width: 40px;
  height: 40px;
  margin-left: 0;
  justify-self: end;
  vertical-align: middle;
  z-index: 2;
  color: #fff;
  flex-shrink: 0;
  transition: color 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.mktoForm .mktoButton span.icon.arrow-right {
  background: url(https://explorehumancapital.aon.com/rs/851-LXZ-252/images/arrow-right-white.svg) no-repeat center center !important;
  background-size: contain !important;
}
.mktoForm .mktoButton:hover span.icon.arrow-right,
.mktoForm .mktoButton:focus span.icon.arrow-right {
  background: url(https://explorehumancapital.aon.com/rs/851-LXZ-252/images/arrow-right-navy.svg) no-repeat center center !important;
  background-size: contain !important;
}

/* Secondary button */
.mktoForm .mktoButton.secondary,
.mktoForm .secondary {
  background: transparent !important;
  color: #262836 !important;
  border: 1px solid #262836 !important;
  font-family: 'HelveticaNowDisplay-Regular', Arial, sans-serif;
  font-weight: 400;
  font-size: 18px;
  padding: 10px 24px !important;
  cursor: pointer;
  border-radius: 0;
  transition: background 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              color 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              border-color 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.mktoForm .mktoButton.secondary:hover,
.mktoForm .mktoButton.secondary:focus {
  background: #FFFFFF !important;
  color: #262836 !important;
  border-color: #262836 !important;
}

/* Button row alignment */
.mktoForm .mktoButtonRow {
  text-align: left;
  padding: 0px !important;
  margin: 0;
}
.mktoForm .mktoButtonWrap {
  padding: 0;
  margin: 0;
  display: block;
}

/* 1-column forms: add 16px padding only on top of primary button */
.mktoForm .mktoButtonRow .mktoButton:not(.secondary):not(.tertiary),
.mktoForm .mktoButtonRow button.mktoButton:not(.secondary):not(.tertiary),
.mktoForm .mktoButtonRow input.mktoButton:not(.secondary):not(.tertiary) {
  padding-top: 16px !important;
}

/* Checkbox list container spacing */
.mktoForm .mktoCheckboxList {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
}

/* Checkbox list row layout */
.mktoForm .mktoCheckboxList > .checkbox-flex-row {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  margin: 0 !important;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 8px;
}

/* Hover/checked background for checkbox rows */
.mktoForm .mktoCheckboxList > .checkbox-flex-row:hover,
.mktoForm .mktoCheckboxList > .checkbox-flex-row:focus-within,
.mktoForm .mktoCheckboxList > .checkbox-flex-row:has(input[type="checkbox"]:checked) {
  background-color: #EEF6F7 !important;
}

/* Checkbox itself */
.mktoForm .mktoCheckboxList > .checkbox-flex-row > input[type="checkbox"] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  max-width: 20px !important;
  max-height: 20px !important;
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  border: 1px solid #ACC0C4;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 !important;
  position: relative;
}
.mktoForm .mktoCheckboxList > .checkbox-flex-row > input[type="checkbox"]::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 6px;
  height: 12px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}
.mktoForm .mktoCheckboxList > .checkbox-flex-row > input[type="checkbox"]:checked {
  background: #007585 !important;
  border-color: #007585 !important;
}
.mktoForm .mktoCheckboxList > .checkbox-flex-row > input[type="checkbox"]:checked::after {
  opacity: 1;
}

/* Checkbox label text */
.mktoForm .mktoCheckboxList > .checkbox-flex-row > label {
  display: block !important;
  font-family: "Helvetica Now Text", sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  color: #777 !important;
  letter-spacing: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  background: none !important;
  border: none !important;
  white-space: normal !important;
  word-break: break-word !important;
  max-width: 100% !important;
}
.mktoForm .mktoCheckboxList > .checkbox-flex-row > label > p {
  margin: 0 !important;
  padding: 0 !important;
  display: inline !important;
  font-size: 16px !important;
  font-family: "Helvetica Now Text", sans-serif !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  color: #777 !important;
  letter-spacing: 0 !important;
}

/* Heading spacing tweaks */
.mktoForm h6 {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
}
.mktoForm .mktoFormRow:has(.mktoHtmlText) {
  margin-bottom: 4px !important;  
}
.mktoForm .mktoFormRow:has(.mktoCheckboxList) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.mktoForm .mktoFormRow:has(.mktoCheckboxList) + .mktoFormRow {
  margin-top: 18px !important;
}
.mktoForm .mktoFormRow:has(.mktoHtmlText) {
  margin-bottom: 0 !important;
}