*{box-sizing:border-box}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#253b57;background:#edf2f9}body{margin:0;padding:38px 18px}body.is-embedded{padding:2px 0;background:#fff}html:has(body.is-embedded){background:#fff}.pfb-form,.pfb-confirmation{max-width:850px;margin:0 auto;background:#fff;border:1px solid #dce5f1;border-top:5px solid #5a7ecd;border-radius:14px;overflow:hidden;box-shadow:0 12px 36px #223d6010}.is-embedded .pfb-form,.is-embedded .pfb-confirmation{border:0;border-radius:0;box-shadow:none;max-width:none}.pfb-heading{padding:30px 34px 22px;background:linear-gradient(120deg,#f1f5fd,#fff)}.pfb-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#6987b5}.pfb-heading h1{font-size:29px;letter-spacing:-.8px;margin:15px 0;overflow-wrap:anywhere}.pfb-heading>p:last-child{font-size:12px;color:#788aa2;line-height:1.7}.pfb-fields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:23px 22px;padding:26px 34px}.pfb-field{grid-column:span 12;min-width:0;scroll-margin-top:20px}.width-half{grid-column:span 6}.width-third{grid-column:span 4}label,.pfb-label{display:block;font-size:13px;font-weight:600;line-height:1.6;color:#344f71;margin-bottom:8px}.pfb-label span{color:#9f384b}input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select{font:inherit;font-size:14px;padding:12px 13px;border:1px solid #ccd8e9;border-radius:7px;background:#fff;color:#263f60;display:block;width:100%;min-width:0}textarea{resize:vertical;min-height:110px}input[type=file]{padding:16px!important;border-style:dashed!important;background:#f8faff!important}input[type=checkbox],input[type=radio]{accent-color:#4a73bd;margin:0;flex:none;width:17px;height:17px}select[multiple]{min-height:130px}.pfb-help,.pfb-field>small{display:block;font-size:11px;line-height:1.7;color:#7b8ca3;margin-top:6px}.pfb-help:empty,.pfb-error:empty{display:none}.pfb-error{color:#aa354b!important}.has-error input,.has-error select,.has-error textarea,.pfb-signature.has-error canvas{border-color:#bd5264!important}.pfb-choices{display:flex;flex-direction:column;gap:7px}.pfb-choices>label{font-weight:400;display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid #e1e7f1;border-radius:6px;margin:0;cursor:pointer}.pfb-choices>label:has(input:checked){background:#edf3ff;border-color:#8caade}.pfb-rating{flex-direction:row;flex-wrap:wrap}.pfb-rating>label{flex:1;justify-content:center;min-width:45px}.pfb-other{margin-top:12px}.pfb-compound{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.pfb-subfield{min-width:0;grid-column:span 3}.pfb-subfield label,.pfb-date-range label{font-weight:450;color:#687e9b;font-size:11px}.pfb-compound-address .sub-line1,.pfb-compound-address .sub-line2{grid-column:span 6}.pfb-compound-address .sub-city,.pfb-compound-address .sub-state,.pfb-compound-address .sub-postal_code{grid-column:span 2}.pfb-compound-full_name .sub-title,.pfb-compound-full_name .sub-middle,.pfb-compound-full_name .sub-suffix{grid-column:span 2}.pfb-date-range>div{grid-column:span 3}.label-below>.pfb-label{margin:9px 0 0}.label-hidden>.pfb-label,.pfb-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.label-inline{display:grid;grid-template-columns:minmax(75px,28%) minmax(0,1fr);gap:8px 12px;align-items:start}.label-inline>.pfb-label{grid-column:1;grid-row:1}.label-inline>:not(.pfb-label){grid-column:2}.pfb-prose{font-size:14px;line-height:1.8;color:#58708d;overflow-wrap:anywhere}.pfb-prose p:first-child{margin-top:0}.pfb-image{display:block;max-width:100%;height:auto;border-radius:7px}.pfb-field hr{border:0;border-top:1px solid #e1e8f3}.pfb-field h1,.pfb-field h2,.pfb-field h3{margin:5px 0;color:#2a486d;overflow-wrap:anywhere}.pfb-signature canvas{display:block;max-width:100%;width:100%;height:150px;border:1px dashed #b7c9e3;border-radius:8px;background:#fbfcff;touch-action:none}.pfb-signature button{margin-top:8px;background:#fff;color:#4d6d99;border:1px solid #cfdaeb;border-radius:5px;padding:7px 11px;cursor:pointer}.pfb-signature p{font-size:11px;color:#7f91aa}.pfb-actions{padding:12px 34px 30px;border-top:1px solid #edf1f8}.pfb-actions>button{background:#426db8;border:1px solid #426db8;color:#fff;font:inherit;font-size:14px;font-weight:650;border-radius:7px;padding:13px 32px;margin-top:15px;cursor:pointer}.pfb-actions>button:hover{background:#315b9f}.pfb-actions>button:disabled{opacity:.6;cursor:wait}.pfb-submit-status{font-size:12px;color:#6e83a0;line-height:1.6}.pfb-trap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}.pfb-errors{background:#fff0f1;border:1px solid #efd0d6;color:#943e50;border-radius:7px;padding:16px;margin:20px 34px;font-size:13px;line-height:1.7}.pfb-errors a{color:inherit}.pfb-errors ul{margin-bottom:0}.pfb-confirmation{padding:40px 34px;font-size:15px;line-height:1.8}.pfb-confirmation h1{margin-top:0}.pfb-preview-banner{max-width:850px;margin:0 auto 15px;padding:12px 18px;background:#fff3da;border:1px solid #eddbad;color:#806527;border-radius:7px;font-size:12px}:focus-visible{outline:2px solid #658bcb;outline-offset:3px}[hidden]{display:none!important}a{color:#345f9f}@media(max-width:550px){body{padding:12px 8px}.pfb-heading{padding:24px 20px 18px}.pfb-heading h1{font-size:24px}.pfb-fields{padding:22px 20px;gap:20px}.width-half,.width-third{grid-column:span 12}.label-inline{display:block}.pfb-actions{padding:10px 20px 24px}.pfb-errors{margin:16px 20px}.pfb-compound-address .sub-city,.pfb-compound-address .sub-state,.pfb-compound-address .sub-postal_code{grid-column:span 6}.pfb-confirmation{padding:30px 22px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.pfb-computed input[readonly],.pfb-computed textarea[readonly],.pfb-computed select:disabled {background:#f3f6fb;color:#344f71;opacity:1;cursor:default;}

/* Time slots use native inputs: keyboard, touch, form reset and no-JS compatible. */
.pfb-form .pfb-time-slots {
  --slot-accent: #426db8;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 108px), 1fr)); gap: 10px;
}
.pfb-form .pfb-time-slots > label {
  position: relative; display: flex; align-items: center; justify-content: center;
  gap: 8px; min-height: 48px; margin: 0; padding: 10px 12px;
  border: 1px solid #bccbdf; border-radius: 8px; background: #fff;
  color: #263f60; font-size: 15px; font-weight: 600; line-height: 1.4;
  cursor: pointer; overflow-wrap: anywhere;
}
.pfb-form .pfb-time-slots > label:hover { border-color: var(--slot-accent); }
.pfb-form .pfb-time-slots > label:has(input:checked) {
  background: var(--slot-accent); border-color: var(--slot-accent); color: #fff;
}
.pfb-form .pfb-time-slots > label:focus-within { outline: 3px solid var(--slot-accent); outline-offset: 3px; }
.pfb-form .pfb-time-slots > label > input {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: 0;
  overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap;
}
.pfb-form .pfb-time-slots > label > span { color: inherit; }
.pfb-form .pfb-time-slots > label:has(input:disabled) { opacity: .55; cursor: default; }
@media (forced-colors: active) {
  .pfb-form .pfb-time-slots > label > input { position: static; width: auto; height: auto; clip: auto; clip-path: none; }
  .pfb-form .pfb-time-slots > label:has(input:checked) { outline: 2px solid Highlight; }
}

/* Center Submit consistently, including forms with older per-form margin rules. */
.pfb-form .pfb-actions { text-align:center; }
.pfb-form .pfb-actions > button[type=submit] { display:block; margin-inline:auto; }
.pfb-form .pfb-signature canvas { width:100%; height:auto; background:#fff; border:1px solid #aebed4; border-radius:8px; cursor:crosshair; }
.pfb-form .pfb-signature.has-error canvas { border-color:#943e50; outline:2px solid #943e50; }

.pfb-upload { padding:18px; border:1px dashed #aebed4; border-radius:9px; background:#f8faff; }
.pfb-upload small { display:block; margin-top:10px; color:#52647c; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.pfb-upload-list { padding-left:20px; margin:10px 0 0; font-size:13px; color:#344f71; overflow-wrap:anywhere; }
.pfb-upload-list:empty { display:none; }

.pfb-section { border:1px solid #cbd8e9; border-radius:9px; background:#fff; overflow:clip; }
.pfb-section > summary { padding:16px 20px; font-size:16px; font-weight:650; color:#253b57; cursor:pointer; background:#f1f5fb; }
.pfb-section > summary:focus-visible { outline:3px solid #426db8; outline-offset:-3px; }
.pfb-section-fields { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:23px 22px; padding:22px; }
@media(max-width:550px) { .pfb-section-fields { padding:18px 14px; gap:20px; } }

.pfb-calculated-value { display:flex; align-items:center; gap:8px; font-weight:700; }
.pfb-calculated-value > span { font-size:24px; }
.pfb-field .pfb-actions { border:0; padding:0; }
@media print { .pfb-actions,.pfb-preview-banner {display:none!important;} details.pfb-section:not([hidden]) > .pfb-section-fields {display:grid!important;} .pfb-form {box-shadow:none;border:0;} }

.pfb-date-list { display: grid; gap: 12px; }
.pfb-date-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: center; }
.pfb-date-row input { min-width: 0; }
.pfb-date-list button { padding: 9px 12px; border: 1px solid #9aa8b7; border-radius: 6px; background: #fff; color: #26384b; font: inherit; cursor: pointer; }
.pfb-date-list > button { justify-self: start; }
.pfb-date-list button:focus-visible { outline: 3px solid #4b7cad; outline-offset: 2px; }
.pfb-date-list button:disabled { opacity: .5; cursor: default; }
@media(max-width:400px) { .pfb-date-row { grid-template-columns: minmax(0,1fr) auto; } .pfb-date-row > label { grid-column: 1 / -1; } }
@media print { .pfb-date-list button { display: none; } }

.pfb-availability { overflow-x: auto; max-width: 100%; border: 1px solid #c4ccd4; border-radius: 8px; }
.pfb-availability table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pfb-availability th { padding: 9px 7px; color: inherit; background: #f0f3f6; white-space: nowrap; text-align: center; }
.pfb-availability td { padding: 0; border: 1px solid #d3dae1; min-width: 54px; }
.pfb-slot { display: flex; justify-content: center; align-items: center; min-height: 44px; cursor: pointer; margin: 0; }
.pfb-slot:has(input:checked) { background: #dcebd6; }
.pfb-slot:hover { background: #edf3e9; }
.pfb-slot:focus-within { outline: 3px solid #477aa7; outline-offset: -3px; }
.pfb-slot input { width: 18px; height: 18px; margin: 0; accent-color: #4f752e; }
@media print { .pfb-availability { overflow: visible; } }

.pfb-paypal { padding: 18px; border: 1px solid #b9ccdf; border-radius: 8px; background: #f4f8fc; }
.pfb-paypal output { font-size: 24px; font-weight: 700; }
.pfb-paypal p { margin: 8px 0 0; font-size: 14px; }
