/* Shared contact form, with a dedicated song-wishes mode on the repertoire page. */
.bf-form{width:100%;min-width:0;margin:0;color:var(--ink,#f5f0e7);scroll-margin-top:100px}
.bf-root,.bf-field{min-width:0}
.bf-root [hidden]{display:none!important}
.bf-heading{margin:0 0 1.3rem;font:normal clamp(1.5rem,2.1vw,2rem)/1.2 Georgia,serif;letter-spacing:-.02em}
.bf-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 1.15rem}
.bf-field label{display:block;margin:0 0 .45rem;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}
.bf-optional{color:var(--muted,#bdb6ab);font-size:.875em;white-space:normal}
.bf-field input,.bf-field select{display:block;width:100%;max-width:100%;min-width:0;min-height:48px;box-sizing:border-box;border:1px solid var(--line,#45413b);border-radius:3px;background:rgba(255,255,255,.035);color:var(--ink,#f5f0e7);padding:.78rem .85rem;font:inherit;font-size:1rem;line-height:1.4}
.bf-field input::placeholder{color:#b6b0a5;opacity:1}
.bf-field-date{max-width:100%}
.bf-field input[type=date]{appearance:none;-webkit-appearance:none;text-align:left}
.bf-field input[type=date]::-webkit-date-and-time-value{min-height:1.4em;text-align:left}
.bf-field input[type=date]::-webkit-datetime-edit{display:inline-flex;padding:0;max-width:100%}
.bf-field input[type=date]::-webkit-calendar-picker-indicator{opacity:.8;cursor:pointer}
.bf-field input:focus-visible,.bf-field select:focus-visible{outline:2px solid var(--gold,#cba878);outline-offset:-2px;border-color:var(--gold,#cba878)}
.bf-field [aria-invalid=true]{border-color:#ebb79e}
.bf-field-error{color:#ffc3a8;margin:.4rem 0 0;font-size:.875rem;line-height:1.5}
.bf-text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;padding:.45rem .15rem;background:transparent;color:var(--gold,#cba878);font:inherit;font-size:.875rem;line-height:1.5;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;cursor:pointer}
.bf-text-button:hover{color:var(--ink,#f5f0e7)}
.bf-attachment{margin-top:.8rem;padding-top:.35rem}
.bf-attachment-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.1rem .9rem}
.bf-check{display:flex;align-items:center;gap:.65rem;min-height:44px;cursor:pointer;font-size:.94rem;line-height:1.5;flex:1 1 16rem}
.bf-check input{flex:none;width:21px;height:21px;margin:0;accent-color:var(--gold,#cba878)}
.bf-check span{overflow-wrap:anywhere}
.bf-selection-counts{color:#c7c1b7;font-size:.875rem;line-height:1.5;margin:.1rem 0 .4rem;padding-left:calc(21px + .65rem)}
.bf-selection-preview{margin:.6rem 0;max-height:24rem;overflow:auto;overscroll-behavior:contain;border-top:1px solid var(--line,#45413b);padding:.8rem 0}
.bf-selection-preview>.bf-text-button{margin-right:1rem}
.bf-selection-text{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:.9rem;line-height:1.65;color:var(--ink,#f5f0e7);margin:0}
.bf-storage-warning{color:#ffc3a8;font-size:.875rem;line-height:1.6;margin:.5rem 0}
.bf-exclusion{margin-top:1rem;border-left:2px solid var(--gold,#cba878);padding:.3rem 0 .3rem 1rem}
.bf-exclusion h4{margin:0;font:inherit;font-weight:600;line-height:1.5}
.bf-exclusion p{font-size:.94rem;line-height:1.6;color:#c7c1b7;margin:.5rem 0}
.bf-status{margin:1rem 0 .5rem;font-size:.94rem;line-height:1.55;color:var(--gold,#cba878)}
.bf-status:empty{display:none}
.bf-primary,.bf-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;box-sizing:border-box;padding:.75rem 1.1rem;border:1px solid var(--line,#696050);border-radius:3px;background:transparent;color:var(--ink,#f5f0e7);font:inherit;font-size:1rem;line-height:1.4;cursor:pointer;text-align:center;text-decoration:none;overflow-wrap:anywhere;transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease}
.bf-primary{width:100%;margin-top:1.15rem;border-color:var(--gold,#cba878);background:var(--gold,#cba878);color:var(--bg,#101012);font-weight:600}
.bf-primary:disabled{opacity:.55;cursor:default}
.bf-primary:not(:disabled):hover{background:#ddbd91;border-color:#ddbd91}
.bf-secondary:hover{border-color:var(--gold,#cba878)}
.bf-primary:focus-visible,.bf-secondary:focus-visible,.bf-text-button:focus-visible,.bf-check input:focus-visible,.bf-confirmation:focus-visible,.bf-exclusion:focus-visible{outline:2px solid var(--gold,#cba878);outline-offset:3px}
.bf-recovery{display:flex;flex-wrap:wrap;gap:.6rem}
.bf-confirmation{padding:1.2rem 0;border-top:1px solid var(--gold,#cba878)}
.bf-confirmation h3{margin:0;font:normal 1.8rem/1.3 Georgia,serif}
.bf-confirmation p{margin:.65rem 0 0;font-size:1rem;line-height:1.6;color:#c7c1b7}
.bf-new{margin-top:1rem}
.bf-request-id{font-size:.875rem;line-height:1.5;overflow-wrap:anywhere;color:#c7c1b7}
.bf-form [disabled]{cursor:default}
.bf-field [disabled]{opacity:.75}
@media(max-width:640px){.bf-fields{grid-template-columns:minmax(0,1fr);gap:1rem}.bf-field-date{grid-column:auto;max-width:none}.bf-primary{padding-inline:.8rem}.bf-check{flex-basis:100%}.bf-selection-counts{padding-left:0}}
@media(prefers-reduced-motion:reduce){.bf-primary,.bf-secondary{transition:none}}

.bf-field select{color-scheme:dark;appearance:auto;cursor:pointer}
.bf-field select option{background:#191917;color:#f5f0e7}
.bf-consent{margin-top:1.15rem;padding-top:.9rem;border-top:1px solid var(--line,#45413b)}
.bf-consent .bf-check{align-items:flex-start;font-size:.8125rem;line-height:1.6;color:#c7c1b7}
.bf-consent input{margin-top:.12rem}
.bf-consent input[aria-invalid=true]{outline:2px solid #ebb79e;outline-offset:2px}
.bf-consent .bf-field-error{padding-left:calc(21px + .65rem)}
.bf-attachment-required .bf-selection-counts{padding-left:0}
.bf-attachment-required .bf-text-button{font-size:.94rem}

/* Form controls use the same quiet gold hierarchy as the repertoire. */
.bf-field label{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem .7rem;font-size:.9375rem}
.bf-optional{font-size:.8rem}
.bf-field input,.bf-field select{min-height:54px;border-radius:6px;padding:.9rem 1rem;background:#ffffff04;transition:border-color 160ms ease,background-color 160ms ease}
.bf-field input:hover,.bf-field select:hover{border-color:#d1b78666;background:#ffffff07}
.bf-primary,.bf-secondary{min-height:50px;border-radius:6px;padding:.85rem 1.15rem;font-size:.9375rem;font-weight:500;letter-spacing:.005em}
.bf-primary{min-height:56px;gap:1rem;padding:1rem 1.3rem;background:#d1b786;border-color:#d1b786;box-shadow:inset 0 1px 0 #fff3;color:#1b1a16}
.bf-primary::after{content:"";width:15px;height:15px;flex:none;background:currentColor;clip-path:polygon(0 44%,74% 44%,43% 13%,52% 4%,100% 50%,52% 96%,43% 87%,74% 56%,0 56%);transition:transform 180ms ease}
.bf-primary:not(:disabled):hover{background:#e3cea6;border-color:#e3cea6}
.bf-primary:not(:disabled):hover::after{transform:translateX(3px)}
.bf-primary:disabled::after{opacity:.45}
.bf-secondary{background:#ffffff04;border-color:#d1b78655;color:var(--ink,#f5f0e7)}
.bf-secondary:hover{background:#d1b78612;border-color:var(--gold,#cba878)}
.bf-text-button{padding:.5rem .1rem;font-size:.875rem;text-decoration:none;border-bottom:1px solid #d1b78655}
.bf-text-button:hover{border-bottom-color:var(--gold,#cba878)}
.bf-attachment{margin-top:1.4rem;padding:1rem 1.05rem;border:1px solid var(--line,#45413b);border-radius:6px;background:#ffffff03}
.bf-attachment-controls{justify-content:space-between;gap:.6rem}
.bf-attachment-label{font-size:.9375rem;color:var(--ink,#f5f0e7)}
.bf-preview-selection{min-height:42px;padding:.55rem .85rem;font-size:.8125rem}
.bf-selection-counts{margin:.5rem 0 0;line-height:1.6}
.bf-selection-preview{padding-top:1rem}
.bf-confirmation{padding:1.4rem 0 .5rem}
@media(prefers-reduced-motion:reduce){.bf-field input,.bf-field select,.bf-primary::after{transition:none}}

.bf-channel{grid-column:1/-1}
