/* PP Quote Form 2.6.45 front-end styles (formerly the inline get_css() output, content unchanged). */
.pp-form-container { max-width:400px; margin:2rem auto; font-family:sans-serif; }
.pp-form { background:#0b3cda; color:#fff; padding:1.5rem; border-radius:8px; }
.pp-contact-extra {
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
}
.pp-form legend { font-size:1.25rem; margin-bottom:.5rem; }
.pp-form label { display:block; margin-bottom:1rem; font-size:1.15em; }
.pp-form input, .pp-form select {
  width:100%; box-sizing:border-box; font-size:1.15em;
  padding:.575rem; margin-top:.25rem; border:none; border-radius:4px;
  color:#0b3cda; background:#fff;
}
.pp-form input[type=radio], .pp-form input[type=checkbox] {
  width:1.2em; height:1.2em; vertical-align:middle; margin-right:.5em;
  border-radius:4px; border:2px solid #0b3cda; background:#fff;
  accent-color:#0b3cda; /* Modern browsers */
}
/* For better cross-browser radio/checkbox styling */
.pp-form input[type=radio] {
  border-radius:50%;
}
.pp-form input[type=checkbox] {
  border-radius:4px;
}
.pp-progress { background:rgba(255,255,255,.2); height:6px; border-radius:3px; overflow:hidden; position:relative; margin-bottom:1rem; }
#pp-progress-bar { background:#ffc60d; width:0; height:100%; transition:width .3s; }
#pp-progress-label { position:absolute; top:-1.2rem; right:0; color:#fff; font-size:.75rem; }
.pp-nav { display:flex; justify-content:space-between; }
.pp-nav button {
  background:#ffc60d; color:#0b3cda; border:none; padding:.575rem 1.15rem; border-radius:4px; cursor:pointer; font-weight:bold; font-size:1.15em;
}
.pp-nav button:disabled { opacity:.5; cursor:default; }
.pp-step { display:none; }
.second-vehicle { display:none; margin-top:1rem; padding:1rem; background:rgba(255,255,255,.1); border-radius:4px; }
.pp-success { color:#000; margin-bottom:1rem; font-size:1.2em; background:#fff; padding:.5rem 1rem; border-radius:8px; }
.pp-error { color:#c00; margin-bottom:1rem; font-size:1.1em; }

#pp-messages { position: relative; z-index: 1; }
#pp-messages .pp-info {padding:14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#0047ab!important;}
/* Version: 2.6.21 — persistent post-submit output remains visible after #pp-form hides. */
#pp-submit-output { position: relative; z-index: 1; width: 100%; }
#pp-submit-output:empty { display: none; }
.pp-form-container.pp-submit-complete #pp-messages,
.pp-form-container.pp-submit-complete #pp-submit-output { display: block; }
#pp-offers { margin-top:1rem; font-style:italic; text-align:center; color:#000; }


.pp-offers-loading{font-style:italic;opacity:.8;margin:.5rem 0}
.pp-terms a { text-decoration: underline; pointer-events: auto; }
.u-link { text-decoration:underline; }
#pp-loading-modal {
  position:fixed; top:0; left:0; width:100%; height:100%;
  background:rgba(255,255,255,0.8); display:none;
  align-items:center; justify-content:center; z-index:9999;
}
.spinner { border:8px solid #f3f3f3; border-top:8px solid #0b3cda; border-radius:50%;
  width:60px; height:60px; animation:spin 1s linear infinite; }
@keyframes spin { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }

/* === v2.1.5 UI & Layout Fixes === */

/* Ensure label text sits above inputs to prevent 100%-width inputs from overflowing */
.pp-form label > input,
.pp-form label > select,
.pp-form label > textarea { display:block; width:100%; max-width:100%; box-sizing:border-box; margin-top:.35rem; }

/* Normalize rounded corners and sizing for text-like controls */
.pp-form input[type="text"],
.pp-form input[type="email"],
.pp-form input[type="tel"],
.pp-form input[type="number"],
.pp-form input[type="date"],
.pp-form select,
.pp-form textarea {
  border-radius:10px;
  max-width:100%;
  box-sizing:border-box;
}

/* Keep Contact Information fields inside their panel */
.pp-form .pp-step[data-step="9"] { overflow:hidden; }
.pp-form .pp-step[data-step="9"] input,
.pp-form .pp-step[data-step="9"] select,
.pp-form .pp-step[data-step="9"] textarea { max-width:100%; box-sizing:border-box; }

/* Radio/checkbox alignment: treat labels that contain them as inline-flex */
.pp-form label:has(> input[type="radio"]),
.pp-form label:has(> input[type="checkbox"]) {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-right:1rem;
  margin-bottom:.75rem;
}

/* Fallback for older browsers without :has(): at least space the control & text */
@supports not (selector(:has(*))) {
  .pp-form label > input[type="radio"],
  .pp-form label > input[type="checkbox"] { margin-right:.5rem; vertical-align:middle; }
}

/* Make radios ~20% larger while preserving alignment */
.pp-form input[type="radio"] { width:1.2em; height:1.2em; vertical-align:middle; }

/* Tiny loading spinner for Y/M/M next to the field label */
.pp-spin{ display:inline-block; width:1em; height:1em; margin-left:.5rem;
  border:.18em solid rgba(255,255,255,.4); border-top-color:#ffc60d; border-radius:50%;
  animation:ppspin .8s linear infinite; }
@keyframes ppspin { to{ transform:rotate(360deg);} }



/* === v2.1.7: Contact panel & control resets === */

/* Keep inputs within panel and prevent overflow on Step 9 */
.pp-form .pp-step[data-step="9"] { overflow:hidden; }
.pp-form .pp-step[data-step="9"] label { width:100%; max-width:100%; }
.pp-form .pp-step[data-step="9"] input,
.pp-form .pp-step[data-step="9"] select,
.pp-form .pp-step[data-step="9"] textarea { max-width:100%; box-sizing:border-box; }

/* Reset radios/checkboxes so generic input rule doesn't bloat them */
.pp-form input[type="radio"],
.pp-form input[type="checkbox"]{
  padding:0; border:none; background:transparent;
  width:auto; height:auto;
}

/* Radios/checkboxes alignment (general) */
.pp-form label:has(> input[type="radio"]),
.pp-form label:has(> input[type="checkbox"]){
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}

/* But the long TCPA label should take full width and wrap normally */
.pp-form label.pp-terms{ 
  display:block !important; 
  width:100%; 
  word-break:break-word; 
  white-space:normal; 
  margin-top:1rem;
  font-size: 0.8em;
  line-height: 1.45;
}
.pp-form label.pp-terms > input[type="checkbox"]{ 
  display:inline-block; 
  margin-right:.65rem; 
  vertical-align:top; 
}
.pp-form label.pp-terms strong{ display:inline; }

/* Error message appearance per request */
.pp-error { color:#fff; font-weight:700; }



/* v2.1.8: force white, bold error messages */
#pp-messages .pp-error,
.pp-form .pp-error { color:#fff !important; font-weight:700 !important; }
#pp-messages .pp-error strong,
.pp-form .pp-error strong { color:inherit; font-weight:700; }



/* v2.1.9: radio size tweak per request */
.pp-form input[type="radio"]{
  appearance:auto;
  width:1.2em !important;
  height:1.2em !important;
  min-width:1.2em;
  min-height:1.2em;
  line-height:1;
  vertical-align:middle;
  accent-color:#0b3cda;
}



/* === v2.2.0: Mobile touch targets & field sizing === */

/* Prevent iOS zoom on focus and improve touch comfort */
@media (max-width: 480px), (pointer:coarse) {
  .pp-form input[type="text"],
  .pp-form input[type="email"],
  .pp-form input[type="tel"],
  .pp-form input[type="number"],
  .pp-form input[type="date"],
  .pp-form select,
  .pp-form textarea {
    font-size: 16px;          /* iOS anti-zoom threshold */
    padding: .75rem .875rem;  /* larger tap area */
    border-radius: 12px;
  }
  /* Radios & checkboxes: slightly larger plus bigger tap zone */
  .pp-form input[type="radio"],
  .pp-form input[type="checkbox"]{
    width: 1.3em; height: 1.3em;
    min-width: 1.3em; min-height: 1.3em;
  }
  .pp-form label:has(> input[type="radio"]),
  .pp-form label:has(> input[type="checkbox"]){
    min-height: 44px;         /* recommended touch target */
    gap: .75rem;
  }
  /* Fallback when :has() is unsupported: still give labels breathing room */
  @supports not (selector(:has(*))) {
    .pp-form label { padding-top:.25rem; padding-bottom:.25rem; }
    .pp-form label > input[type="radio"],
    .pp-form label > input[type="checkbox"]{ margin-right:.75rem; }
  }
}



/* === v2.2.1: Uniform control styling across the entire form === */

/* Base: all text-like controls (do NOT catch radios/checkboxes/buttons) */
.pp-form input:not([type="radio"]):not([type="checkbox"]):not([type="range"]):not([type="button"]):not([type="submit"]),
.pp-form select,
.pp-form textarea {
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  padding:.625rem .75rem;
  border:0;
  border-radius:10px;
  background:#fff;
  color:#0b3cda;
  line-height:1.3;
  font-size:1.05em;
  transition: box-shadow .15s ease, background-color .15s ease, color .15s ease;
}

/* Focus ring for accessibility (brand gold glow) */
.pp-form input:not([type="radio"]):not([type="checkbox"]):not([type="range"]):not([type="button"]):not([type="submit"]):focus,
.pp-form select:focus,
.pp-form textarea:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255,198,13,.45);
}

/* Placeholder color */
.pp-form ::placeholder { color:#9bb3ff; opacity:1; }

/* Disabled state uniform */
.pp-form input:disabled,
.pp-form select:disabled,
.pp-form textarea:disabled {
  background: rgba(255,255,255,.65);
  color: rgba(11,60,218,.65);
  cursor: not-allowed;
}

/* Number inputs: remove inconsistent spinners for uniform height */
.pp-form input[type="number"]::-webkit-outer-spin-button,
.pp-form input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin:0; }
.pp-form input[type="number"] { -moz-appearance:textfield; }

/* Date inputs: ensure minimum height consistent with other controls */
.pp-form input[type="date"] { min-height: 2.625rem; }

/* Keep radios and checkboxes sized/aligned per previous versions */
.pp-form input[type="radio"]{ width:1.2em; height:1.2em; min-width:1.2em; min-height:1.2em; vertical-align:middle; }
.pp-form input[type="checkbox"]{ width:1.2em; height:1.2em; vertical-align:middle; }

/* Labels spacing */
.pp-form label { margin-bottom: 1rem; }
.pp-form label > input,
.pp-form label > select,
.pp-form label > textarea { margin-top:.35rem; }

/* Step 9 containment (contact + TCPA) */
.pp-form .pp-step[data-step="9"] { overflow:hidden; }
.pp-form .pp-step[data-step="9"] label { width:100%; max-width:100%; }
.pp-form label.pp-terms{ display:block !important; width:100%; word-break:break-word; white-space:normal; margin-top:1rem; font-size:0.8em; line-height:1.45; }
.pp-form label.pp-terms > input[type="checkbox"]{ display:inline-block; margin-right:.65rem; vertical-align:top; }



/* === v2.2.2: Mobile input clipping fix (iOS Safari & Android) === */
@media (max-width: 480px), (pointer:coarse) {
  /* All text-like controls (not radios/checkboxes/buttons) */
  .pp-form input:not([type="radio"]):not([type="checkbox"]):not([type="range"]):not([type="button"]):not([type="submit"]),
  .pp-form select,
  .pp-form textarea {
    font-size: 16px;              /* prevent iOS zoom */
    line-height: 1.45;            /* more breathing room to avoid top clipping */
    padding: .9rem 1rem .95rem;   /* slightly more top padding than bottom */
    border-radius: 14px;
    min-height: 48px;             /* consistent tap height */
    background-clip: padding-box; /* avoid rare radius clipping issues */
  }
  /* Keep native select arrow on iOS */
  .pp-form select { -webkit-appearance: menulist; }
}




/* === v2.2.11: iOS select text clipping fix (no UX change elsewhere) === */
@supports (-webkit-touch-callout: none) {
  /* iOS Safari can clip select text when padding/line-height combos are tight */
  #pp-form select,
  .pp-form select {
    font-size: 16px !important;
    height: 56px !important;
    line-height: 56px !important;
    padding: 0 1.05rem !important;
    -webkit-appearance: menulist-button !important;
    appearance: menulist-button !important;}
}


/* === v2.2.3: Mobile radios – consistent shape/alignment via progressive enhancement === */
@media (max-width: 480px), (pointer:coarse) {
  @supports (selector(:has(*))) {
    /* Wrap label becomes the visual host; input is visually hidden but still focusable/clickable */
    .pp-form label:has(> input[type="radio"]) {
      position: relative;
      padding-left: 2rem;      /* space for the custom bullet */
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      min-height: 44px;        /* comfortable touch target */
    }
    .pp-form label:has(> input[type="radio"]) > input[type="radio"]{
      position: absolute;
      left: .35rem;
      top: 50%;
      transform: translateY(-50%);
      opacity: 0;              /* visually hidden, still interactive */
      width: 1.3rem;
      height: 1.3rem;
      margin: 0;
    }
    /* Outer circle */
    .pp-form label:has(> input[type="radio"])::before{
      content: "";
      position: absolute;
      left: .35rem;
      top: 50%;
      transform: translateY(-50%);
      width: 1.3rem;
      height: 1.3rem;
      border-radius: 50%;
      background: #fff;
      border: 2px solid #cfd9ff;      /* light ring */
      box-shadow: 0 0 0 1px rgba(11,60,218,.35);
    }
    /* Inner dot */
    .pp-form label:has(> input[type="radio"])::after{
      content: "";
      position: absolute;
      left: calc(.35rem + .325rem);
      top: 50%;
      transform: translateY(-50%) scale(0);
      width: .65rem;
      height: .65rem;
      border-radius: 50%;
      background: #0b3cda;
      opacity: 0;
      transition: transform .15s ease, opacity .15s ease;
    }
    /* Checked state */
    .pp-form label:has(> input[type="radio"]:checked)::after{
      transform: translateY(-50%) scale(1);
      opacity: 1;
    }
    /* Focus ring for keyboard users */
    .pp-form label:has(> input[type="radio"]:focus-visible)::before{
      box-shadow: 0 0 0 3px rgba(255,198,13,.45);
    }
  }
}

/* v2.2.28/v2.6.15 iOS loading UI hardening + branded Policy Providers loader */
#pp-loading-modal{
  position:fixed !important;
  left:0 !important; top:0 !important; right:0 !important; bottom:0 !important;
  width:100vw !important; height:100vh !important;
  z-index:999999 !important;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0.55);
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  padding:24px;
  box-sizing:border-box;
}
#pp-loading-modal.pp-show{ display:flex !important; }
#pp-loading-modal .pp-loading-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:min(320px, calc(100vw - 48px));
  padding:28px 28px 30px;
  border-radius:22px;
  background:rgba(255,255,255,0.96);
  box-shadow:0 18px 48px rgba(0,0,0,0.28);
  text-align:center;
}
#pp-loading-modal .pp-loading-logo{
  display:block;
  width:120px;
  height:120px;
  object-fit:contain;
  margin:0 0 10px;
}
#pp-loading-modal .spinner{
  width:44px; height:44px;
  border-radius:50%;
  border:5px solid rgba(11,60,218,0.14);
  border-top-color:#0b3cda;
  animation:ppSpin 0.9s linear infinite;
  margin-top:2px;
}
@keyframes ppSpin{ to { transform: rotate(360deg); } }
#pp-loading-modal .pp-loading-text{
  margin-top:14px;
  font-size:18px;
  line-height:1.35;
  font-weight:700;
  color:#0b3cda;
  text-align:center;
}
#pp-loading-modal .pp-loading-bar{
  margin-top:14px;
  width:78%;
  max-width:240px;
  height:7px;
  border-radius:999px;
  background:rgba(11,60,218,0.14);
  overflow:hidden;
}
#pp-loading-modal .pp-loading-bar > span{
  display:block;
  height:100%;
  width:55%;
  background:#ffc60d;
  border-radius:999px;
  animation:ppBar 1.1s ease-in-out infinite;
}
@keyframes ppBar{
  0%{ transform:translateX(-60%); }
  50%{ transform:translateX(70%); }
  100%{ transform:translateX(-60%); }
}
@media (max-width:480px){
  #pp-loading-modal .pp-loading-card{ padding:24px 22px 26px; }
  #pp-loading-modal .pp-loading-logo{ width:104px; height:104px; }
  #pp-loading-modal .pp-loading-text{ font-size:16px; }
}

