/* Fly By booking form, shared by every page. Dark card, lime accents. Version 1.0.0 */
.fbf{box-sizing:border-box;max-width:560px;margin:0 auto;padding:22px 20px 20px;background:#1b2a4a;border:1px solid #34476e;border-top:4px solid #8fc13f;border-radius:14px;color:#e6f0de;font-family:'Open Sans',system-ui,sans-serif;font-size:16px;line-height:1.45}
.fbf *{box-sizing:border-box}
.fbf-eyebrow{margin:0 0 4px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#8fc13f;font-weight:700}
.fbf-title{margin:0 0 6px;font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;font-size:34px;line-height:1.05;color:#fff;letter-spacing:.01em}
.fbf-prog{margin:0 0 16px}
.fbf-progtxt{margin:0 0 8px;font-size:15px;font-weight:700;color:#fff}
.fbf-steps{display:flex;gap:6px}
.fbf-steps span{flex:1;height:6px;border-radius:3px;background:#34476e}
.fbf-steps span.on{background:#8fc13f}
.fbf-sec{margin:20px 0 10px;padding-top:14px;border-top:1px solid #34476e;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8fc13f;font-weight:700}
.fbf-cols{display:grid;gap:10px;align-items:start}
.fbf-c2{grid-template-columns:1fr 1fr}
.fbf-addr1{grid-template-columns:130px 1fr}
.fbf-addr2{grid-template-columns:1fr 84px 104px}
.fbf-cols .fbf-field{min-width:0}
.fbf-field[hidden]{display:none}
.fbf-ref.fbf-hl{padding:12px;border:2px solid #8fc13f;border-radius:10px;background:#223559}
.fbf-next{min-height:58px;font-size:18px}
.fbf-step[hidden]{display:none}
.fbf-field{margin:0 0 14px}
.fbf-label{display:block;margin:0 0 6px;font-weight:600;font-size:15px;line-height:1.35;color:#fff;padding:0;white-space:normal}
.fbf-opt{font-weight:400;color:#b8c4dc;font-size:13px}
.fbf-in{display:block;width:100%;min-height:48px;padding:12px 14px;background:#121d36;color:#fff;border:1.5px solid #46608f;border-radius:10px;font:inherit;font-size:16px;appearance:none;-webkit-appearance:none}
select.fbf-in{background-image:linear-gradient(45deg,transparent 50%,#8fc13f 50%),linear-gradient(135deg,#8fc13f 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px}
textarea.fbf-in{min-height:84px;resize:vertical}
.fbf-in:focus,.fbf-file:focus+.fbf-drop,.fbf-btn:focus-visible,.fbf-chk input:focus-visible{outline:3px solid #8fc13f;outline-offset:2px}
.fbf-in[aria-invalid=true]{border-color:#ff9d8f}
.fbf-hint{margin:6px 0 0;font-size:13px;color:#b8c4dc}
.fbf-err{margin:6px 0 0;font-size:14px;color:#ffb4a8;font-weight:600}
.fbf-err:empty{display:none}
.fbf-chip{display:inline-block;margin:0 0 14px;padding:6px 12px;border:1px solid #8fc13f;border-radius:999px;color:#8fc13f;font-size:13px;font-weight:700}
.fbf-checks{border:0;margin:0 0 14px;padding:0;min-width:0}
.fbf-chk{display:inline-flex;align-items:center;gap:8px;margin:0 8px 8px 0;padding:9px 14px;min-height:44px;border:1.5px solid #46608f;border-radius:999px;cursor:pointer;font-size:15px;color:#e6f0de;background:#121d36}
.fbf-chk:has(input:checked){background:#8fc13f;border-color:#8fc13f;color:#0f1a30;font-weight:700}
.fbf-chk input{width:18px;height:18px;accent-color:#0f1a30;margin:0}
.fbf-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.fbf-drop{display:flex;align-items:center;justify-content:center;min-height:56px;padding:12px;border:2px dashed #8fc13f;border-radius:10px;color:#8fc13f;font-weight:700;cursor:pointer;text-align:center}
.fbf-thumbs{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.fbf-th{position:relative;width:72px;height:72px;border-radius:8px;overflow:hidden;background:#121d36;border:1px solid #46608f;display:flex;align-items:center;justify-content:center}
.fbf-th img{width:100%;height:100%;object-fit:cover;display:block}
.fbf-thn{font-size:11px;color:#b8c4dc;text-align:center}
.fbf-th button{position:absolute;top:2px;right:2px;width:26px;height:26px;border:0;border-radius:50%;background:#0f1a30;color:#fff;font-size:18px;line-height:1;cursor:pointer}
.fbf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 28px;border:2px solid #8fc13f;border-radius:999px;background:#8fc13f;color:#0f1a30;font:inherit;font-weight:700;font-size:16px;cursor:pointer;width:100%;transition:background .15s,border-color .15s}
.fbf-btn:hover{background:#fff;border-color:#fff}
.fbf-btn[disabled]{opacity:.6;cursor:wait}
.fbf-btn2{background:transparent;color:#fff;width:auto;flex:0 0 auto}
.fbf-btn2:hover{background:#8fc13f;color:#0f1a30;border-color:#8fc13f}
.fbf-row{display:flex;gap:10px}
.fbf-row .fbf-btn:last-child{flex:1}
.fbf-bar{height:6px;border-radius:3px;background:#121d36;margin:8px 0;overflow:hidden}
.fbf-bar span{display:block;height:100%;width:0;background:#8fc13f;transition:width .2s}
.fbf-status{margin:8px 0;font-size:14px;min-height:0}
.fbf-status:empty{display:none}
.fbf-bad{color:#ffb4a8;font-weight:700}
.fbf-good{color:#8fc13f;font-weight:700}
.fbf-fine{margin:12px 0 0;font-size:12px;color:#b8c4dc}
.fbf-call{margin:14px 0 0;text-align:center;font-size:14px;color:#b8c4dc}
.fbf-call a{color:#fff;font-weight:700}
.fbf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:520px){.fbf-addr2{grid-template-columns:1fr 78px 96px}.fbf-in{padding:12px 10px}.fbf{padding:18px 16px}.fbf-title{font-size:30px}.fbf-row{flex-direction:column-reverse}.fbf-btn2{width:100%}}
@media (prefers-reduced-motion:reduce){.fbf *{transition:none!important}}

.fbf-field{position:relative}
.fbf-sug{list-style:none;margin:4px 0 0;padding:0;position:absolute;left:0;right:0;z-index:20;background:#121d36;border:1.5px solid #8fc13f;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.fbf-sug[hidden]{display:none}
.fbf-sug button{display:block;width:100%;min-height:44px;padding:10px 14px;text-align:left;background:transparent;border:0;border-bottom:1px solid #34476e;color:#fff;font:inherit;font-size:15px;cursor:pointer}
.fbf-sug li:last-child button{border-bottom:0}
.fbf-sug button:hover,.fbf-sug button:focus{background:#8fc13f;color:#0f1a30;outline:none}
.fbf-sug button.on{background:#8fc13f;color:#0f1a30}
.fbf-credit{margin:6px 0 0;font-size:12px;color:#b8c4dc}.fbf-credit a{color:#cfe0c5}

/* Typed text must be white on the dark field, whatever the theme says (owner request, 9 October 2026) */
.fbf .fbf-in,.fbf input.fbf-in,.fbf textarea.fbf-in,.fbf select.fbf-in{color:#fff !important;-webkit-text-fill-color:#fff !important;caret-color:#fff;background-color:#121d36 !important}
.fbf .fbf-in::placeholder{color:#a9c19c !important;-webkit-text-fill-color:#a9c19c !important;opacity:1}
.fbf .fbf-in:-webkit-autofill,.fbf .fbf-in:-webkit-autofill:hover,.fbf .fbf-in:-webkit-autofill:focus{-webkit-text-fill-color:#fff !important;-webkit-box-shadow:0 0 0 1000px #121d36 inset !important;caret-color:#fff}
.fbf select.fbf-in option{color:#fff;background:#121d36}

/* Two-part form (added 12 October 2026): Part 1 and Part 2 on the thank-you page. Only used when a form has "flow":"two". */
.fbf-two .fbf-hint{font-size:14px}
.fbf-pills{margin:0 0 16px}
.fbf-pills legend{margin-bottom:8px}
.fbf-pills .fbf-chk{margin:0 8px 8px 0}
.fbf-consent{margin:0 0 12px}
.fbf-cons{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1.5px solid #46608f;border-radius:10px;background:#121d36;color:#e6f0de;font-size:14px;line-height:1.45;cursor:pointer}
.fbf-cons input{flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;accent-color:#8fc13f}
.fbf-cons:has(input:focus-visible){outline:3px solid #8fc13f;outline-offset:2px}
.fbf-cons:has(input:checked){border-color:#8fc13f}
.fbf-two .fbf-btn[type=submit]{min-height:56px;font-size:17px}
.fbf-p2wrap{box-sizing:border-box;max-width:560px;margin:24px auto;padding:0 16px}
.fbf-p2wrap .fbf{margin:0 auto}
.fbf-p2done{text-align:center}
.fbf-p2done .fbf-title{font-size:28px}
.fbf-cons span{line-height:1.4;margin:0;font-size:14px;font-weight:400}
.fbf-cons{margin:0}
.fbf-p2 .fbf-btn2{background:transparent !important;color:#fff !important;border-color:#8fc13f !important}
.fbf-p2 .fbf-btn2:hover{background:#8fc13f !important;color:#0f1a30 !important}
.fbf-p2 .fbf-label{display:block}

/* short form (13 October 2026) */
.fbf-manual[hidden]{display:none!important}
.fbf-link{display:block;background:none;border:0;padding:6px 0;margin:-4px 0 14px;color:#8fc13f;font:inherit;font-weight:600;font-size:14px;text-decoration:underline;cursor:pointer}
.fbf-note{margin:6px 0 0;font-size:14px;color:#8fc13f}
.fbf-fine{margin:10px 0 0;font-size:12px;line-height:1.4;color:#9fb594}
.fbf-more{margin:8px 0 16px;border-top:1px solid #34476e;padding-top:6px}
.fbf-more summary{cursor:pointer;color:#8fc13f;font-weight:700;font-size:15px;padding:10px 0}

/* timing buttons: two to a line (13 October 2026) */
.fbf-two .fbf-pills{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:0;padding:0;min-width:0}
.fbf-two .fbf-pills .fbf-label{grid-column:1/-1;margin:0 0 2px}
.fbf-two .fbf-pills .fbf-chk{margin:0;min-width:0;white-space:normal;line-height:1.25;border-radius:14px;justify-content:flex-start}
.fbf-two .fbf-pills .fbf-chk input{flex:none}

/* 14 October 2026: two columns when the form is wide enough (short form only) */
.fbf-short{container-type:inline-size;max-width:860px}
.fbf-team{display:none}
@container (min-width:640px){.fbf-short .fbf-cols2{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;align-items:stretch}
.fbf-short .fbf-cb{display:flex;flex-direction:column}
.fbf-short .fbf-team{display:block;position:relative;flex:1;min-height:170px;margin:4px 0 16px;border-radius:12px;overflow:hidden;border:1px solid #34476e}
.fbf-short .fbf-team img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}}

/* 15 October 2026: lock the form's small text so no page theme can restyle it. One look on every page; only the heading, button wording and qualifying questions change per page. Specific on purpose: the page themes set sizes with !important, so these must outrank them. */
html body .fbf.fbf .fbf-eyebrow{font-size:12px!important;line-height:1.45!important;letter-spacing:.3em!important;font-weight:700!important;text-transform:uppercase!important;color:#8fc13f!important}
html body .fbf.fbf .fbf-hint,html body .fbf.fbf .fbf-note,html body .fbf.fbf .fbf-status,html body .fbf.fbf .fbf-err,html body .fbf.fbf .fbf-call{font-size:14px!important;line-height:1.45!important;letter-spacing:normal!important}
html body .fbf.fbf .fbf-hint,html body .fbf.fbf .fbf-call{color:#b8c4dc!important;font-weight:400!important}
html body .fbf.fbf .fbf-note{color:#8fc13f!important;font-weight:400!important}
html body .fbf.fbf .fbf-status{color:#e6f0de!important}
html body .fbf.fbf .fbf-err{color:#ffb4a8!important;font-weight:600!important}
html body .fbf.fbf .fbf-fine{font-size:12px!important;line-height:1.4!important;letter-spacing:normal!important;color:#9fb594!important;font-weight:400!important}
html body .fbf.fbf .fbf-credit,html body .fbf.fbf .fbf-credit a{font-size:12px!important;line-height:1.4!important}
html body .fbf.fbf .fbf-call a{color:#fff!important;font-weight:700!important;font-size:14px!important;line-height:1.45!important;text-decoration:underline}

/* 15 October 2026 (2): lock the fields, labels, chips and button the same way. The page themes were making text boxes square with thin grey borders and 12px text, while the dropdown stayed rounded and green. */
html body .fbf.fbf .fbf-label,html body .fbf.fbf legend.fbf-label{font-size:15px!important;line-height:1.35!important;font-weight:600!important;color:#fff!important;letter-spacing:normal!important;text-transform:none!important}
html body .fbf.fbf .fbf-opt{font-size:13px!important;font-weight:400!important;color:#b8c4dc!important}
html body .fbf.fbf input.fbf-in,html body .fbf.fbf select.fbf-in,html body .fbf.fbf textarea.fbf-in{font-size:16px!important;line-height:1.4!important;font-weight:400!important;min-height:48px;padding:12px 14px!important;border:1.5px solid #46608f!important;border-radius:10px!important;background-color:#121d36!important;color:#fff!important;box-shadow:none!important}
html body .fbf.fbf textarea.fbf-in{min-height:84px}
html body .fbf.fbf input.fbf-in:focus,html body .fbf.fbf select.fbf-in:focus,html body .fbf.fbf textarea.fbf-in:focus{border-color:#8fc13f!important}
html body .fbf.fbf .fbf-chk{font-size:15px!important;font-weight:600!important;line-height:1.25!important;color:#e6f0de!important;border:1.5px solid #46608f!important;background:#121d36!important}
html body .fbf.fbf .fbf-chk:has(input:checked){background:#8fc13f!important;border-color:#8fc13f!important;color:#0f1a30!important;font-weight:700!important}
html body .fbf.fbf .fbf-drop{font-size:15px!important;font-weight:700!important;color:#8fc13f!important;border:2px dashed #8fc13f!important;border-radius:10px!important}
html body .fbf.fbf .fbf-btn{border-radius:999px!important;font-size:17px!important;font-weight:700!important;background:#8fc13f!important;border:2px solid #8fc13f!important;color:#0f1a30!important;letter-spacing:normal}
html body .fbf.fbf .fbf-btn:hover{background:#fff!important;border-color:#fff!important}
html body .fbf.fbf .fbf-btn2{background:transparent!important;color:#fff!important}
html body .fbf.fbf .fbf-btn2:hover{background:#8fc13f!important;color:#0f1a30!important}

.fbf-areanote{margin:0 0 16px;padding:12px 16px;border:1px solid #8fc13f;border-radius:10px;color:#8fc13f;font-size:15px;font-weight:600;line-height:1.4}
