/* PoolPro subscribe form — wizard (4b) */

form.pp,
form.pp *,
form.pp *::before,
form.pp *::after,
.pp-flash-wrap,
.pp-flash-wrap * {
  box-sizing: border-box;
}

/* ------------------------------------------------------------------ */
/* Theme reset — WordPress / block themes add margins, borders, etc.  */
/* ------------------------------------------------------------------ */

form.pp {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  float: none;
  width: 100%;
  max-width: 420px;
}

form.pp h1,
form.pp h2,
form.pp p,
form.pp ol,
form.pp ul,
form.pp li,
form.pp fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  float: none;
}

form.pp label {
  margin: 0;
  padding: 0;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: none;
  color: inherit;
}

form.pp input,
form.pp select,
form.pp button,
form.pp textarea {
  margin: 0;
  max-width: none;
  min-height: 0;
  box-shadow: none;
  text-shadow: none;
  letter-spacing: normal;
  text-transform: none;
  line-height: normal;
  vertical-align: baseline;
}

form.pp input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
form.pp select,
form.pp textarea {
  border-radius: 0;
}

form.pp button {
  width: auto;
  overflow: visible;
  -webkit-appearance: none;
  appearance: none;
}

form.pp input[type="checkbox"],
form.pp input[type="radio"] {
  padding: 0;
  border: 0;
  background: none;
  flex-shrink: 0;
}

form.pp ol,
form.pp ul {
  list-style: none;
}

form.pp strong,
form.pp em {
  font-weight: inherit;
  font-style: inherit;
}

/* ------------------------------------------------------------------ */
/* Layout                                                             */
/* ------------------------------------------------------------------ */

form.pp {
  --navy: #0F3557;
  --accent: #0A7EA4;
  --page: #F4F7F9;
  --border: #DDE4EA;
  --hair: #EAEFF3;
  --muted: #8A99A8;
  --label: #7A8B9B;
  --text: #12263A;
  --body: #33475C;
  --error: #C0392B;
  display: flex;
  flex-direction: column;
  min-height: 560px;
  margin-left: auto;
  margin-right: auto;
  background: var(--page);
  font-family: 'Source Sans 3', system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--text);
}

form.pp a { color: var(--navy); text-decoration: none; }
form.pp a:hover { color: var(--accent); }

/* Header + progress */
form.pp .pp-head {
  flex: none;
  background: #fff;
  padding: 22px 22px 18px;
  border-bottom: 1px solid #E2E8ED;
}

form.pp .pp-progress {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

form.pp .pp-progress li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
}

form.pp .pp-bar {
  display: block;
  height: 4px;
  border-radius: 2px;
  background: var(--border);
}

form.pp .pp-steplab {
  display: block;
  font: 400 10.5px/1.2 'Source Sans 3', sans-serif;
  letter-spacing: .04em;
  color: #9AA8B5;
}

form.pp .pp-progress li.is-on .pp-bar { background: var(--navy); }
form.pp .pp-progress li.is-on .pp-steplab { font-weight: 600; color: var(--navy); }

form.pp .pp-head h1 {
  margin: 0 0 6px;
  padding: 0;
  font: 700 23px/1.2 'Source Sans 3', sans-serif;
  letter-spacing: -.01em;
  color: var(--navy);
}

form.pp .pp-head p {
  margin: 0;
  padding: 0;
  font-size: 14.5px;
  line-height: 1.5;
  color: #5A6C7D;
}

/* Steps */
form.pp .pp-body {
  flex: 1;
  padding: 18px 22px 8px;
}

form.pp .pp-step[hidden] { display: none; }

form.pp .pp-seclab {
  margin: 0 0 9px;
  padding: 0;
  font: 700 11px/1.2 'Source Sans 3', sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--label);
}

form.pp .pp-seclab-gap { margin-top: 16px; }

form.pp .pp-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
}

form.pp .pp-pad { padding: 14px; }
form.pp .pp-pad-sm { padding: 12px 14px 10px; margin-top: 12px; }
form.pp .pp-list { padding: 2px 14px; }

/* Grouped fields */
form.pp .pp-group {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}

form.pp .pp-row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
  padding: 0;
}

form.pp .pp-row3 {
  display: grid;
  grid-template-columns: 1.6fr .78fr .78fr;
  margin: 0;
  padding: 0;
}

form.pp label.pp-cell {
  display: block;
  margin: 0;
  padding: 9px 13px 10px;
}

form.pp .pp-row3 label.pp-cell {
  padding-left: 12px;
  padding-right: 8px;
}

form.pp .pp-br { border-right: 1px solid var(--hair); }
form.pp .pp-bb { border-bottom: 1px solid var(--hair); }

form.pp .pp-lab {
  display: block;
  margin: 0 0 2px;
  padding: 0;
  font: 600 10.5px/1.2 'Source Sans 3', sans-serif;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
}

form.pp .pp-lab i {
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

form.pp label.pp-cell input,
form.pp label.pp-cell select {
  display: block;
  width: 100%;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  outline: none;
  font: 400 15.5px/1.2 'Source Sans 3', sans-serif;
  color: var(--text);
}

form.pp .pp-input {
  display: block;
  width: 100%;
  height: 44px;
  margin: 6px 0 0;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  outline: none;
  font: 400 15px/1.2 'Source Sans 3', sans-serif;
  color: var(--text);
}

form.pp .pp-input:focus { border-color: var(--navy); }
form.pp .pp-input[hidden] { display: none; }

/* Options */
form.pp label.pp-opt {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 40px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  font: 400 14px/1.25 'Source Sans 3', sans-serif;
  color: var(--body);
}

form.pp label.pp-opt input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--navy);
}

form.pp .pp-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 14px;
  row-gap: 0;
  margin: 0;
  padding: 0;
}

form.pp .pp-inline {
  display: flex;
  column-gap: 22px;
  row-gap: 0;
  margin: 0;
  padding: 0;
}

form.pp .pp-wrap-inline { flex-wrap: wrap; }

form.pp label.pp-check {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  margin: 0;
  padding: 0;
  cursor: pointer;
}

form.pp label.pp-check input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--navy);
}

form.pp label.pp-check strong {
  display: block;
  font: 600 14.5px/1.25 'Source Sans 3', sans-serif;
  color: #26405A;
}

form.pp label.pp-check em {
  display: block;
  font: 400 12px/1.25 'Source Sans 3', sans-serif;
  font-style: normal;
  color: var(--muted);
}

/* Copy */
form.pp .pp-q {
  margin: 0;
  padding: 0;
  font: 600 13.5px/1.4 'Source Sans 3', sans-serif;
  color: #26405A;
}

form.pp .pp-hint {
  margin: 3px 0 2px;
  padding: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--muted);
}

form.pp .pp-intro {
  margin: 0;
  padding: 0;
  font-size: 13px;
  line-height: 1.4;
  color: #5A6C7D;
}

form.pp .pp-grouplab {
  margin: 12px 0 0;
  padding: 0;
  font: 700 11px/1.2 'Source Sans 3', sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--navy);
}

form.pp .pp-bt-line {
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--hair);
}

form.pp .pp-divide {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--hair);
}

form.pp .pp-err {
  margin: 7px 0 0;
  padding: 0;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--error);
}

form.pp .pp-err-flat { margin: 4px 0 0; }
form.pp .pp-err[hidden] { display: none; }

/* Footer */
form.pp .pp-foot {
  flex: none;
  position: sticky;
  bottom: 0;
  background: var(--page);
  padding: 14px 22px 16px;
}

form.pp .pp-summary {
  margin: 0 0 10px;
  padding: 0;
  font: 600 12.5px/1.4 'Source Sans 3', sans-serif;
  color: var(--error);
}

form.pp .pp-summary[hidden] { display: none; }

form.pp .pp-nav {
  display: flex;
  gap: 10px;
  margin: 0;
  padding: 0;
}

form.pp button.pp-back {
  flex: none;
  width: 104px;
  height: 50px;
  margin: 0;
  padding: 0;
  background: #fff;
  border: 1px solid #CED8E0;
  border-radius: 8px;
  font: 600 14.5px/1 'Source Sans 3', sans-serif;
  color: var(--navy);
  cursor: pointer;
}

form.pp button.pp-back:hover { border-color: var(--navy); }
form.pp button.pp-back[hidden] { display: none; }

form.pp button.pp-next,
form.pp button.pp-submit {
  flex: 1;
  min-height: 50px;
  margin: 0;
  padding: 0;
  background: var(--navy);
  border: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
}

form.pp button.pp-next span {
  font: 700 15px/1.2 'Source Sans 3', sans-serif;
}

form.pp button.pp-submit {
  font: 700 15px/1.2 'Source Sans 3', sans-serif;
}

form.pp button.pp-next small {
  font: 400 11.5px/1.2 'Source Sans 3', sans-serif;
  color: rgba(255, 255, 255, .7);
}

form.pp button.pp-next:hover,
form.pp button.pp-submit:hover { background: var(--accent); }

form.pp button.pp-next[hidden],
form.pp button.pp-submit[hidden] { display: none; }

form.pp label.pp-cell.is-invalid { box-shadow: inset 0 -2px 0 var(--error); }

/* Honeypot */
form.pp .pp-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

/* Flash banners (outside the form — no min-height) */
.pp-flash-wrap {
  width: 100%;
  max-width: 420px;
  margin: 0 auto 10px;
  padding: 0;
}

.pp-flash-wrap .pp-flash {
  margin: 0;
  padding: 12px 14px;
  background: #E8F4EC;
  border: 1px solid #34A853;
  border-radius: 8px;
  font: 600 13px/1.4 'Source Sans 3', sans-serif;
  color: #1E5631;
}

.pp-flash-wrap .pp-flash-warn {
  background: #FDF3E2;
  border-color: #D9A441;
  color: #7A5A12;
}

/* Company autocomplete */
form.pp .ppm-co-wrap { position: relative; display: block; }

form.pp .ppm-co-list {
  position: absolute;
  z-index: 9999;
  left: 0;
  right: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--border);
  max-height: 240px;
  overflow-y: auto;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

form.pp .ppm-co-list li {
  margin: 0;
  padding: 8px 10px;
  cursor: pointer;
  font: 400 14px/1.25 'Source Sans 3', sans-serif;
}

form.pp .ppm-co-list li:hover,
form.pp .ppm-co-list li.active { background: #EEF4FF; }

/* Email preferences */
form.pp .pp-email-prefs .pp-intro {
  margin: 0 0 12px;
}

form.pp .pp-email-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 14px;
  row-gap: 0;
  margin: 0 0 14px;
  padding: 6px 14px;
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 10px;
}

form.pp .pp-email-other {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 14px;
  row-gap: 0;
  margin: 0;
  padding: 0;
  width: 100%;
}

form.pp .pp-email-main label.pp-opt strong {
  font: 600 14.5px/1.25 'Source Sans 3', sans-serif;
  color: #26405A;
}

form.pp .pp-email-divide {
  height: 0;
  margin: 0 0 12px;
  border: 0;
  border-top: 1px solid var(--hair);
}

form.pp .pp-email-main label.pp-opt,
form.pp .pp-email-other label.pp-opt {
  display: flex;
  align-items: center;
  width: auto;
  max-width: 100%;
  min-width: 0;
}

form.pp .pp-card .pp-email-prefs .pp-grouplab.pp-bt-line {
  margin-top: 16px;
}
