/* BC Forms — inherits the theme's fonts and colors; only layout and states are set here. */
.bcf { --bcf-accent: currentColor; --bcf-border: #c9ccd1; --bcf-error: #b3261e; --bcf-muted: #5f6368; --bcf-bg: #fff; max-width: 760px; }
.bcf *, .bcf *::before, .bcf *::after { box-sizing: border-box; }
.bcf-form { display: block; }
.bcf-page { display: flex; flex-wrap: wrap; gap: 0 16px; }
.bcf-page[hidden], .bcf [hidden] { display: none !important; }
.bcf-page-title { width: 100%; margin: 0 0 12px; }
.bcf-field { width: 100%; margin: 0 0 18px; }
.bcf-w-half { width: calc(50% - 8px); }
.bcf-w-third { width: calc(33.333% - 11px); }
/* Side-by-side fields: line the boxes up even when one label wraps to two lines. */
.bcf-w-half, .bcf-w-third { display: flex; flex-direction: column; }
.bcf-w-half > .bcf-label, .bcf-w-third > .bcf-label { flex: 1 0 auto; }
@media (max-width: 600px) { .bcf-w-half, .bcf-w-third { width: 100%; } }
.bcf-label { display: block; font-weight: 600; margin: 0 0 6px; }
.bcf-req { color: var(--bcf-error); }
.bcf-help { color: var(--bcf-muted); font-size: 0.9em; margin: 0 0 6px; }
.bcf input[type=text], .bcf input[type=email], .bcf input[type=tel], .bcf input[type=number], .bcf input[type=date], .bcf select, .bcf textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--bcf-border); border-radius: 6px; background: var(--bcf-bg); font: inherit; color: inherit; }
.bcf input:focus, .bcf select:focus, .bcf textarea:focus { outline: 2px solid #2b6cb0; outline-offset: 1px; }
.bcf-money { display: flex; align-items: center; gap: 6px; max-width: 240px; }
.bcf-choices { border: 0; padding: 0; margin: 0; }
.bcf-choices legend { padding: 0; }
.bcf-choice { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 6px; font-weight: 400; cursor: pointer; }
.bcf-choice input { margin-top: 0.3em; }
.bcf-type-section h4 { margin: 12px 0 4px; padding-bottom: 6px; border-bottom: 1px solid var(--bcf-border); }
.bcf-calc { display: block; font-weight: 600; font-size: 1.1em; }
.bcf-has-error input, .bcf-has-error select, .bcf-has-error textarea { border-color: var(--bcf-error); }
.bcf-field-error { color: var(--bcf-error); font-size: 0.9em; margin: 6px 0 0; }
.bcf-errors { color: var(--bcf-error); font-weight: 600; margin: 0 0 12px; }
.bcf-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.bcf-progress { height: 6px; background: #e6e8eb; border-radius: 3px; margin: 0 0 6px; overflow: hidden; }
.bcf-progress-bar { height: 100%; width: 0; background: #2b6cb0; transition: width .25s; }
.bcf-step-label { color: var(--bcf-muted); font-size: 0.9em; margin: 0 0 16px; }
.bcf-nav { display: flex; gap: 12px; justify-content: space-between; margin-top: 8px; }
.bcf-nav .bcf-next, .bcf-nav .bcf-submit { margin-left: auto; }
.bcf-btn { padding: 11px 22px; border-radius: 6px; border: 1px solid #2b6cb0; background: #2b6cb0; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.bcf-btn.bcf-back { background: transparent; color: #2b6cb0; }
.bcf-btn:disabled { opacity: .6; cursor: progress; }
.bcf-link { background: none; border: 0; padding: 0; color: #2b6cb0; text-decoration: underline; cursor: pointer; font: inherit; }
.bcf-save { margin-top: 12px; font-size: 0.95em; }
.bcf-type-payment { border: 1px solid var(--bcf-border); border-radius: 8px; padding: 16px; }
.bcf-amount-line { display: flex; justify-content: space-between; gap: 16px; padding: 4px 0; }
.bcf-amount-total { border-top: 1px solid var(--bcf-border); margin-top: 6px; padding-top: 8px; font-weight: 700; }
.bcf-card { margin-top: 12px; }
.bcf-secure { margin-top: 10px; }
.bcf-success { padding: 18px; border-radius: 8px; background: #edf7ed; border: 1px solid #b7dfb9; }
.bcf-closed, .bcf-admin-note { padding: 12px; background: #fff8e1; border: 1px solid #f0d58c; border-radius: 6px; }
.bcf-busy { opacity: .85; }

/* ---------- Display options for choice fields (any theme) ---------- */
.bcf-display-none { display: none !important; }
.bcf-display-tiles .bcf-choices, .bcf-display-buttons .bcf-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bcf-display-tiles .bcf-choices legend, .bcf-display-buttons .bcf-choices legend { grid-column: 1 / -1; }
.bcf-display-tiles .bcf-choice, .bcf-display-buttons .bcf-choice { position: relative; display: flex; align-items: center; justify-content: center; text-align: center; margin: 0; border: 2px solid #d3d3d3; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.bcf-display-tiles .bcf-choice { min-height: 96px; font-size: 28px; font-weight: 700; padding: 10px; }
.bcf-display-tiles .bcf-choice:last-child:nth-child(odd) { }
.bcf-display-buttons .bcf-choice { min-height: 44px; font-size: 16px; font-weight: 400; padding: 8px; }
.bcf-display-tiles .bcf-choice input, .bcf-display-buttons .bcf-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.bcf-display-tiles .bcf-choice:hover, .bcf-display-buttons .bcf-choice:hover { border-color: #9bbbf0; }
.bcf-display-tiles .bcf-choice:has(input:checked), .bcf-display-buttons .bcf-choice:has(input:checked) { border-color: #3675DF; background: #eef4fd; color: #3675DF; }
.bcf-display-tiles .bcf-choice:has(input:focus-visible), .bcf-display-buttons .bcf-choice:has(input:focus-visible) { outline: 2px solid #3675DF; outline-offset: 2px; }
/* Long text options (e.g. "Any Amount") stay readable. */
.bcf-display-tiles .bcf-choice span { line-height: 1.2; }

/* ---------- Theme "fa": looks like the FormAssembly forms ---------- */
.bcf-theme-fa { font-family: Montserrat, sans-serif; color: #222; max-width: 460px; margin-left: auto; margin-right: auto; --bcf-border: #d3d3d3; }
.bcf-theme-fa .bcf-form { font-size: 16px; }
.bcf-theme-fa .bcf-title { color: #3675DF; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 30px; line-height: 1.1; text-align: center; margin: 10px 0 24px; }
.bcf-theme-fa .bcf-center, .bcf-theme-fa .bcf-type-html { text-align: center; }
.bcf-theme-fa .bcf-label, .bcf-theme-fa .bcf-choices legend { font-weight: 600; color: #222; font-size: 15px; }
.bcf-theme-fa .bcf-display-tiles .bcf-choices legend, .bcf-theme-fa .bcf-display-buttons .bcf-choices legend { text-align: center; width: 100%; margin-bottom: 14px; }
.bcf-theme-fa input[type=text], .bcf-theme-fa input[type=email], .bcf-theme-fa input[type=tel], .bcf-theme-fa input[type=number], .bcf-theme-fa input[type=date], .bcf-theme-fa select, .bcf-theme-fa textarea {
	border: 2px solid #d3d3d3; border-radius: 10px; padding: 11px 14px; font-family: Montserrat, sans-serif; font-size: 16px; color: #222; }
.bcf-theme-fa input:focus, .bcf-theme-fa select:focus, .bcf-theme-fa textarea:focus { border-color: #3675DF; outline: none; }
.bcf-theme-fa .bcf-type-section h4 { font-family: Montserrat, sans-serif; font-size: 16px; font-weight: 700; border-bottom: 0; margin: 18px 0 2px; padding: 16px 0 0; border-top: 2px solid #d3d3d3; }
.bcf-theme-fa .bcf-calc { font-family: Montserrat, sans-serif; }
.bcf-theme-fa .bcf-type-payment > div, .bcf-theme-fa .bcf-pay { border-radius: 10px; }
.bcf-theme-fa .bcf-nav { justify-content: center; margin-top: 18px; }
.bcf-theme-fa .bcf-nav .bcf-next, .bcf-theme-fa .bcf-nav .bcf-submit { margin-left: 0; }
.bcf-theme-fa .bcf-btn { background: #3675DF; border-color: #3675DF; border-radius: 10px; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 18px; min-width: 300px; padding: 13px 22px; }
.bcf-theme-fa .bcf-btn.bcf-back { background: #fff; color: #3675DF; min-width: 0; }
.bcf-theme-fa .bcf-help { font-size: 13px; }
@media (max-width: 480px) { .bcf-theme-fa .bcf-btn { min-width: 0; width: 100%; } .bcf-display-tiles .bcf-choice { font-size: 22px; min-height: 76px; } }
.bcf-theme-fa .bcf-display-buttons .bcf-choices legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* Centered field (display: "center"), and money boxes in the FA look are centered too. */
.bcf-display-center, .bcf-theme-fa .bcf-type-money { text-align: center; }
.bcf-display-center .bcf-money, .bcf-theme-fa .bcf-type-money .bcf-money { margin-left: auto; margin-right: auto; justify-content: center; }
.bcf-display-center input, .bcf-display-center select { margin-left: auto; margin-right: auto; }
.bcf-theme-fa .bcf-type-money .bcf-money input { text-align: center; font-size: 22px; font-weight: 700; color: #3675DF; }

/* ---------- Theme "snorkel": matches snorkelandstudy.org (teal #006489, cyan #1BC3D6, Piazzolla headings, Open Sans text) ---------- */
.bcf-theme-snorkel { --sn-teal: #006489; --sn-cyan: #1BC3D6; --sn-ink: #2d3a40; --sn-line: #c9d6dc; --bcf-border: #c9d6dc;
	font-family: "Open Sans", sans-serif; color: var(--sn-ink); max-width: 780px; margin: 0 auto; background: #fff;
	border-top: 6px solid var(--sn-teal); border-radius: 14px; box-shadow: 0 10px 30px rgba(0, 60, 85, .12); padding: 34px 40px 30px; }
.bcf-theme-snorkel .bcf-intro { font-size: 15px; color: #4b4f58; margin-bottom: 18px; }
.bcf-theme-snorkel .bcf-progress { height: 8px; background: #e3eef2; border-radius: 99px; margin-bottom: 10px; }
.bcf-theme-snorkel .bcf-progress-bar { background: linear-gradient(90deg, var(--sn-teal), var(--sn-cyan)); border-radius: 99px; }
.bcf-theme-snorkel .bcf-step-label { font-family: Poppins, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sn-teal); margin: 0 0 6px; }
.bcf-theme-snorkel .bcf-page-title { font-family: Piazzolla, Georgia, serif; font-weight: 700; font-size: 32px; line-height: 1.15; color: var(--sn-teal); margin: 6px 0 22px; }
.bcf-theme-snorkel .bcf-type-section h4 { font-family: Piazzolla, Georgia, serif; font-weight: 700; font-size: 22px; color: var(--sn-teal); border-bottom: 0; margin: 22px 0 6px; padding: 0 0 8px; position: relative; }
.bcf-theme-snorkel .bcf-type-section h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 48px; height: 3px; border-radius: 3px; background: var(--sn-cyan); }
.bcf-theme-snorkel .bcf-label, .bcf-theme-snorkel .bcf-choices legend { font-weight: 600; font-size: 15px; color: var(--sn-ink); }
.bcf-theme-snorkel .bcf-req { color: #d14b3c; }
.bcf-theme-snorkel .bcf-help { color: #6b7780; }
.bcf-theme-snorkel input[type=text], .bcf-theme-snorkel input[type=email], .bcf-theme-snorkel input[type=tel], .bcf-theme-snorkel input[type=number], .bcf-theme-snorkel input[type=date], .bcf-theme-snorkel select, .bcf-theme-snorkel textarea {
	border: 1.5px solid var(--sn-line); border-radius: 8px; background: #fbfdfe; padding: 11px 13px; font-family: "Open Sans", sans-serif; font-size: 15px; color: var(--sn-ink); transition: border-color .15s, box-shadow .15s; }
.bcf-theme-snorkel input:focus, .bcf-theme-snorkel select:focus, .bcf-theme-snorkel textarea:focus { outline: none; border-color: var(--sn-cyan); box-shadow: 0 0 0 3px rgba(27, 195, 214, .22); background: #fff; }
.bcf-theme-snorkel .bcf-choice { padding: 3px 0; }
.bcf-theme-snorkel .bcf-choice input { accent-color: var(--sn-teal); width: 17px; height: 17px; }
.bcf-theme-snorkel .bcf-type-calc .bcf-calc, .bcf-theme-snorkel .bcf-type-calc { color: var(--sn-teal); }
.bcf-theme-snorkel .bcf-type-html { color: #4b4f58; }
.bcf-theme-snorkel .bcf-type-payment > * { border-radius: 10px; }
.bcf-theme-snorkel .bcf-amounts { background: #f1f8fa; border: 1px solid #d6e8ee; border-radius: 10px; padding: 12px 16px; }
.bcf-theme-snorkel .bcf-nav { margin-top: 22px; padding-top: 18px; border-top: 1px solid #e3eef2; }
.bcf-theme-snorkel .bcf-btn { font-family: Poppins, sans-serif; font-weight: 600; font-size: 16px; border-radius: 8px; padding: 12px 30px; background: var(--sn-teal); border-color: var(--sn-teal); transition: background .15s, transform .1s; }
.bcf-theme-snorkel .bcf-btn:hover { background: #00506e; }
.bcf-theme-snorkel .bcf-btn.bcf-submit { background: var(--sn-cyan); border-color: var(--sn-cyan); }
.bcf-theme-snorkel .bcf-btn.bcf-submit:hover { background: #12a9ba; }
.bcf-theme-snorkel .bcf-btn.bcf-back { background: #fff; color: var(--sn-teal); border: 1.5px solid var(--sn-teal); }
.bcf-theme-snorkel .bcf-save, .bcf-theme-snorkel .bcf-link { color: #0294C9; }
.bcf-theme-snorkel .bcf-success { border-left: 5px solid var(--sn-cyan); background: #f1f8fa; padding: 18px 20px; border-radius: 8px; }
@media (max-width: 640px) { .bcf-theme-snorkel { padding: 24px 18px; border-radius: 10px; } .bcf-theme-snorkel .bcf-page-title { font-size: 26px; } }

/* Applicant checklist ([bc_checklist]) */
.bcf-checklist { max-width: 720px; margin: 0 auto; }
.bcf-ck-title { margin: 0 0 8px; }
.bcf-ck-list { list-style: none; margin: 16px 0; padding: 0; }
.bcf-ck-item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; margin: 0 0 10px; border: 1px solid #d9e2e8; border-radius: 10px; background: #fff; }
.bcf-ck-mark { flex: 0 0 28px; height: 28px; border-radius: 50%; border: 2px solid #9fb3c0; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; }
.bcf-ck-done .bcf-ck-mark { background: #1a9b5b; border-color: #1a9b5b; }
.bcf-ck-text { flex: 1 1 auto; }
.bcf-ck-amount { color: #555; }
.bcf-ck-status { color: #1a9b5b; font-weight: 600; }
.bcf-ck-go { text-decoration: none; white-space: nowrap; }
.bcf-ck-back { margin: 0 0 12px; }
.bcf-theme-snorkel .bcf-ck-item { border-color: #cfe6ee; }
.bcf-theme-snorkel .bcf-ck-title { color: #006489; }
.bcf input[readonly] { background: #f3f6f8; }

/* Page titles on one line (wider than the form) on screens big enough for it. */
@media (min-width: 640px) { .bcf-theme-fa .bcf-page-title { white-space: nowrap; width: max-content; max-width: 94vw; position: relative; left: 50%; transform: translateX(-50%); } }
/* Question label hidden on screen (still read by screen readers and used in emails). */
.bcf-hide-label > .bcf-label, .bcf-hide-label .bcf-choices > legend { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Tiles: an odd last choice (e.g. "Any Amount") spans the full row; a smaller second line under the amount. */
.bcf-display-tiles .bcf-choice:last-of-type:nth-of-type(odd) { grid-column: 1 / -1; justify-self: center; min-width: 50%; }
.bcf-display-tiles .bcf-choice .bcf-sub { display: block; font-size: 15px; font-weight: 400; color: #555; margin-top: 4px; }
