/* BrazilFest Voluntários — formulário público */
@font-face { font-family: "BFVOL Bebas"; src: url(fonts/bebas-neue-latin-400-normal.woff2) format("woff2"); font-display: swap; }
@font-face { font-family: "BFVOL Barlow"; font-weight: 500; src: url(fonts/barlow-condensed-latin-500-normal.woff2) format("woff2"); font-display: swap; }
@font-face { font-family: "BFVOL Barlow"; font-weight: 600; src: url(fonts/barlow-condensed-latin-600-normal.woff2) format("woff2"); font-display: swap; }
@font-face { font-family: "BFVOL Barlow"; font-weight: 700; src: url(fonts/barlow-condensed-latin-700-normal.woff2) format("woff2"); font-display: swap; }

.bfvol {
	--bf-green: #0B8F3C; --bf-yellow: #FFC72C; --bf-blue: #1F5FFF; --bf-navy: #0A1F44;
	--bf-line: #DCE1EA; --bf-muted: #5B6578; --bf-bg: #F6F7F9; --bf-red: #C0392B;
	--bf-display: "Bebas Neue", "BFVOL Bebas", Impact, sans-serif;
	--bf-cond: "Barlow Condensed", "BFVOL Barlow", "Arial Narrow", sans-serif;
	box-sizing: border-box; width: 100%; max-width: 960px; margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0; color: var(--bf-navy); font-size: 16px; line-height: 1.5; container-type: inline-size;
}
/* Mesma largura externa do Vendors, mesmo quando o tema limita a largura dos blocos. */
#bfvol.bfvol { box-sizing: border-box; width: 100%; max-width: 960px; margin-left: auto; margin-right: auto; }
.bfvol *, .bfvol *::before, .bfvol *::after { box-sizing: border-box; }
.bfvol[data-lang="pt"] [data-l="en"], .bfvol[data-lang="en"] [data-l="pt"] { display: none !important; }
.bfvol [hidden] { display: none !important; }

.bfvol-logo { text-align: center; margin: 0 0 12px; }
.bfvol-logo img { display: inline-block; width: auto; height: auto; max-width: 220px; }
.bfvol-band { background: var(--bf-yellow); color: var(--bf-navy); font-weight: 600; font-size: 14px; border-radius: 8px; padding: 10px 14px; margin: 0 0 16px; text-align: center; }
/* Cabeçalho no padrão do Vendors: título pequeno e verde, à esquerda, com o texto de abertura logo abaixo. */
.bfvol-header { margin: 0 0 18px; text-align: left; }
.bfvol .bfvol-form-title { font-family: var(--bf-cond); font-weight: 700; font-size: 22px; line-height: 1.2; letter-spacing: .3px; color: var(--bf-green); text-align: left; text-transform: none; margin: 0; padding: 0; border: 0; }
.bfvol .bfvol-intro { color: var(--bf-navy); font-size: 16px; line-height: 1.5; text-align: left; margin: 4px 0 0; max-width: none; }

.bfvol-card { background: #fff; border: 1px solid var(--bf-line); border-radius: 14px; box-shadow: 0 6px 24px rgba(10, 31, 68, .07); padding: 28px 36px 30px; margin: 0; }
.bfvol-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.bfvol-count { font-family: var(--bf-cond); font-weight: 600; font-size: 15px; letter-spacing: .6px; text-transform: uppercase; color: var(--bf-green); }
.bfvol-lang { display: flex; border: 1px solid var(--bf-line); border-radius: 999px; overflow: hidden; }
.bfvol-lang button { all: unset; cursor: pointer; font-family: var(--bf-cond); font-weight: 600; font-size: 14px; padding: 4px 12px; color: var(--bf-muted); }
.bfvol-lang button[aria-pressed="true"] { background: var(--bf-navy); color: #fff; }
.bfvol-lang button:focus-visible { outline: 2px solid var(--bf-blue); outline-offset: -2px; }

.bfvol-steps { display: flex; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }
.bfvol-steps li { flex: 1; margin: 0; padding: 0; }
.bfvol-steps li::before { display: none; }
.bfvol-bar { display: block; height: 6px; border-radius: 3px; background: var(--bf-line); }
.bfvol-steps li.is-done .bfvol-bar { background: var(--bf-green); }
.bfvol-steps li.is-now .bfvol-bar { background: var(--bf-yellow); }
.bfvol-lbl { display: block; font-family: var(--bf-cond); font-weight: 600; font-size: 14px; color: var(--bf-muted); margin-top: 6px; text-transform: uppercase; letter-spacing: .4px; }
.bfvol-steps li.is-done .bfvol-lbl, .bfvol-steps li.is-now .bfvol-lbl { color: var(--bf-navy); }

.bfvol fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.bfvol .bfvol-title { font-family: var(--bf-display); font-weight: 400; font-size: 34px; line-height: 1.1; letter-spacing: .4px; margin: 0 0 2px; color: var(--bf-navy); text-transform: uppercase; }
.bfvol .bfvol-title:focus { outline: none; }
.bfvol .bfvol-sub { color: var(--bf-muted); margin: 0 0 18px; }
.bfvol .bfvol-sec { font-family: var(--bf-cond); font-weight: 700; font-size: 18px; text-transform: uppercase; letter-spacing: .6px; color: var(--bf-navy); margin: 22px 0 10px; padding-top: 16px; border-top: 1px solid var(--bf-line); }

.bfvol-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.bfvol-full { grid-column: 1 / -1; }
.bfvol-field label, .bfvol-label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 5px; }
.bfvol-req { color: var(--bf-red); }
.bfvol-opt { color: var(--bf-muted); font-weight: 400; font-size: 13px; }
.bfvol input[type="text"], .bfvol input[type="email"], .bfvol input[type="tel"], .bfvol input[type="date"], .bfvol select, .bfvol textarea {
	width: 100%; border: 1px solid #C9D0DC; border-radius: 8px; padding: 10px 12px; background: #fff; min-height: 44px; font: inherit; font-size: 15px; color: var(--bf-navy); margin: 0; box-shadow: none;
}
.bfvol input:focus, .bfvol select:focus, .bfvol textarea:focus { outline: none; border-color: var(--bf-blue); box-shadow: 0 0 0 3px rgba(31, 95, 255, .15); }
.bfvol .bfvol-hint { font-size: 13px; color: var(--bf-muted); margin: 4px 0 0; }

.bfvol-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.bfvol-chip { position: relative; display: inline-flex !important; align-items: center; border: 1px solid #C9D0DC; border-radius: 999px; padding: 6px 14px; font-size: 14px !important; font-weight: 400 !important; cursor: pointer; margin: 0 !important; }
.bfvol-chip input { position: absolute; opacity: 0; pointer-events: none; }
.bfvol-chip:has(input:checked) { border-color: var(--bf-green); background: #E8F5ED; color: var(--bf-green); font-weight: 600 !important; }
.bfvol-chip:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(31, 95, 255, .25); }

.bfvol-teams { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bfvol-team { all: unset; box-sizing: border-box; display: block; cursor: pointer; border: 1.5px solid var(--bf-line); border-radius: 10px; padding: 10px 44px 10px 12px; position: relative; background: #fff; }
.bfvol-team:last-child:nth-child(odd) { grid-column: 1 / -1; }
.bfvol-team b { display: block; font-size: 15px; font-weight: 700; color: var(--bf-navy); }
.bfvol-team .bfvol-desc { display: block; font-size: 13px; color: var(--bf-muted); }
.bfvol-team[aria-pressed="true"] { border-color: var(--bf-green); background: #F3FAF6; }
.bfvol-team:focus-visible { box-shadow: 0 0 0 3px rgba(31, 95, 255, .25); }
.bfvol-team.is-blocked { opacity: .45; cursor: not-allowed; }
.bfvol-rank { position: absolute; top: 9px; right: 10px; width: 24px; height: 24px; border-radius: 50%; background: var(--bf-green); color: #fff; font-family: var(--bf-cond); font-weight: 700; text-align: center; line-height: 24px; }
.bfvol-rank:empty { display: none; }
.bfvol-tag { position: absolute; top: 9px; right: 10px; font-family: var(--bf-cond); font-weight: 700; font-size: 13px; background: #FFF2CC; color: #6B4E00; border-radius: 4px; padding: 0 6px; }
.bfvol-team[aria-pressed="true"] .bfvol-tag { display: none; }

.bfvol-days { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.bfvol-day { border: 1px solid var(--bf-line); border-radius: 10px; padding: 10px; }
.bfvol-dname { font-family: var(--bf-cond); font-weight: 700; font-size: 16px; text-transform: uppercase; }
.bfvol-ddate { font-size: 12px; color: var(--bf-muted); margin-bottom: 6px; }

.bfvol-check { display: flex !important; gap: 8px; align-items: flex-start; font-size: 14px !important; font-weight: 400 !important; margin: 6px 0 !important; cursor: pointer; }
.bfvol-check input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--bf-green); }

.bfvol .bfvol-note { background: #FFF7E0; border-left: 4px solid var(--bf-yellow); border-radius: 6px; padding: 10px 14px; font-size: 14px; margin: 14px 0 0; }
.bfvol .bfvol-consent-link { display: inline-block; margin-top: 6px; color: var(--bf-blue); font-weight: 600; }
.bfvol .bfvol-note-blue { background: #EEF3FF; border-color: var(--bf-blue); text-align: left; }

.bfvol-summary { border: 1px solid var(--bf-line); border-radius: 10px; overflow: hidden; }
.bfvol-sum-head { display: flex; justify-content: space-between; align-items: center; background: var(--bf-bg); font-family: var(--bf-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .5px; padding: 7px 14px; border-top: 1px solid var(--bf-line); }
.bfvol-summary > .bfvol-sum-head:first-child { border-top: 0; }
.bfvol-sum-row { display: grid; grid-template-columns: 160px 1fr; gap: 10px; padding: 9px 14px; border-top: 1px solid var(--bf-line); font-size: 14px; }
.bfvol-sum-row .k { color: var(--bf-muted); }
.bfvol-sum-row .v { overflow-wrap: anywhere; }
.bfvol-edit { all: unset; cursor: pointer; color: var(--bf-blue); font-family: var(--bf-cond); font-weight: 700; font-size: 15px; text-transform: none; letter-spacing: 0; }
.bfvol-edit:focus-visible { outline: 2px solid var(--bf-blue); }
.bfvol-accept { border: 1px solid var(--bf-line); border-radius: 10px; padding: 12px 14px; margin-top: 16px; }
.bfvol-accept a { color: var(--bf-blue); }
.bfvol-conduct { margin: -2px 0 8px 26px; font-size: 14px; }
.bfvol-conduct summary { cursor: pointer; color: var(--bf-blue); font-weight: 600; }
.bfvol-conduct ul { margin: 8px 0 4px 18px; padding: 0; }

.bfvol-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; }
.bfvol-actions [data-action="next"], .bfvol-actions [data-action="submit"] { margin-left: auto; }
.bfvol-btn { all: unset; box-sizing: border-box; cursor: pointer; font-family: var(--bf-cond); font-weight: 700; font-size: 18px; letter-spacing: .6px; text-transform: uppercase; border-radius: 8px; padding: 10px 26px; line-height: 1.3; text-align: center; }
.bfvol-btn-pri { background: var(--bf-green); color: #fff; }
.bfvol-btn-pri:hover { background: #097A33; }
.bfvol-btn-sec { border: 1.5px solid var(--bf-navy); color: var(--bf-navy); }
.bfvol-btn:focus-visible { outline: 3px solid var(--bf-yellow); outline-offset: 2px; }
.bfvol-btn .bfvol-busy { display: none; }
.bfvol-btn.is-busy { opacity: .7; cursor: wait; }
.bfvol-btn.is-busy .bfvol-idle { display: none; }
.bfvol-btn.is-busy .bfvol-busy { display: inline; }

.bfvol-alert { background: #FDECEA; color: #8E1B1B; border-radius: 8px; padding: 10px 14px; font-size: 14px; margin: 0 0 16px; }
.bfvol .has-error input, .bfvol .has-error select, .bfvol .has-error textarea { border-color: var(--bf-red); }
.bfvol .has-error .bfvol-chips, .bfvol .has-error.bfvol-teams, .bfvol .has-error.bfvol-days, .bfvol .has-error.bfvol-accept { outline: 2px solid rgba(192, 57, 43, .35); outline-offset: 4px; border-radius: 10px; }
.bfvol .bfvol-err { grid-column: 1 / -1; color: var(--bf-red); font-size: 13px; font-weight: 600; margin: 6px 0 0; }

.bfvol-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.bfvol-done { text-align: center; padding: 16px 10px 6px; }
.bfvol-done:focus { outline: none; }
.bfvol-okc { width: 72px; height: 72px; border-radius: 50%; background: var(--bf-green); margin: 0 auto 14px; position: relative; }
.bfvol-okc::after { content: ""; position: absolute; left: 26px; top: 14px; width: 16px; height: 32px; border: solid #fff; border-width: 0 6px 6px 0; transform: rotate(45deg); }
.bfvol-proto-wrap { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 10px; margin: 8px 0 6px; }
.bfvol-proto-wrap .bfvol-proto { margin: 0; }
.bfvol-copy-proto { font-size: 16px !important; padding: 8px 18px !important; }
.bfvol-casl { margin-top: 10px !important; padding-top: 10px; border-top: 1px dashed var(--bf-line); }
.bfvol-closed .bfvol-card { text-align: center; }
.bfvol-proto { display: inline-block; font-family: var(--bf-cond); font-weight: 700; font-size: 34px; letter-spacing: 2px; border: 2px dashed var(--bf-green); border-radius: 10px; padding: 4px 22px; margin: 8px 0 6px; user-select: all; }
.bfvol-next { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 22px 0 4px; text-align: left; }
.bfvol-next > div { background: var(--bf-bg); border-radius: 10px; padding: 12px 14px; font-size: 14px; }
.bfvol-next b { display: block; font-family: var(--bf-cond); font-size: 16px; text-transform: uppercase; color: var(--bf-green); letter-spacing: .4px; }

/* Quando o tema deixa a coluna de conteúdo estreita */
@container (max-width: 640px) {
	.bfvol-card { padding: 22px 18px 24px; }
	.bfvol-days { grid-template-columns: 1fr 1fr; }
	.bfvol-teams { grid-template-columns: 1fr; }
	.bfvol-next { grid-template-columns: 1fr; }
	.bfvol-sum-row { grid-template-columns: 1fr; gap: 2px; }
	.bfvol-sum-row .k { font-size: 12px; }
}

@media (max-width: 760px) {
	.bfvol .bfvol-proto { font-size: 26px; padding: 4px 14px; }
	.bfvol-card { padding: 20px 16px 22px; border-radius: 12px; }
	.bfvol-grid, .bfvol-teams, .bfvol-next { grid-template-columns: 1fr; }
	.bfvol-days { grid-template-columns: 1fr 1fr; }
	.bfvol-lbl { font-size: 12px; }
	.bfvol-sum-row { grid-template-columns: 1fr; gap: 2px; }
	.bfvol-sum-row .k { font-size: 12px; }
	.bfvol .bfvol-title { font-size: 30px; }
	.bfvol-btn { padding: 10px 18px; }
}

/* ===== Padrão visual BrazilFest (referência: Vendors) — igual nos 4 formulários ===== */
#bfvol.bfvol,.bfvol.bfvol{width:100%;max-width:960px;margin-left:auto;margin-right:auto;padding:0 16px 48px;font-family:inherit;font-size:16px;line-height:1.55;box-sizing:border-box}
.bfvol .bfvol-headrow{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:8px 0 20px}
.bfvol .bfvol-headrow .bfvol-header{margin:0;min-width:0}
.bfvol .bfvol-form-title{font-family:inherit;font-size:14px;font-weight:700;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px}
.bfvol .bfvol-intro{font-size:18px;margin:0}
.bfvol .bfvol-lang{display:inline-flex;flex:none;margin-left:auto;border:1px solid #D9DDE5;border-radius:999px;padding:2px;overflow:visible;background:#fff}
.bfvol .bfvol-lang button{font-family:inherit;font-size:12px;font-weight:700;line-height:1;letter-spacing:.05em;padding:8px 10px;border-radius:999px;min-height:28px;box-sizing:border-box}
.bfvol-card{border-color:#D9DDE5;border-radius:10px;box-shadow:none;padding:28px}
.bfvol .bfvol-steps{margin:0 0 6px}
.bfvol .bfvol-bar{height:3px;border-radius:0}
.bfvol .bfvol-lbl{font-family:inherit;font-size:14px;font-weight:600;text-transform:none;letter-spacing:0;margin-top:8px;line-height:1.2}
.bfvol .bfvol-count{font-family:inherit;font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;color:#5A6478;margin:0 0 16px}
.bfvol .bfvol-title{font-family:inherit;font-size:26px;font-weight:700;line-height:1.2;letter-spacing:0;text-transform:none;margin:0 0 4px}
.bfvol .bfvol-sub{font-size:16px;margin:0 0 18px}
.bfvol .bfvol-sec{font-family:inherit;font-size:18px;font-weight:700;text-transform:none;letter-spacing:0}
.bfvol-field label,.bfvol-label{font-size:15px;line-height:1.3;margin-bottom:6px}
.bfvol input[type="text"],.bfvol input[type="email"],.bfvol input[type="tel"],.bfvol input[type="date"],.bfvol select,.bfvol textarea{min-height:46px;font-size:16px;line-height:1.4;border-color:#BFC6D2;border-radius:6px}
.bfvol input:focus,.bfvol select:focus,.bfvol textarea:focus{box-shadow:0 0 0 3px rgba(31,95,255,.18)}
.bfvol-btn{font-family:inherit;font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;border-radius:6px;padding:10px 22px;min-height:46px;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.bfvol-btn-sec{border-width:1px;border-color:#D9DDE5}
.bfvol-btn-sec:hover{border-color:#0A1F44}
.bfvol-btn:focus-visible{outline:2px solid #1F5FFF}
.bfvol .bfvol-edit,.bfvol .bfvol-sum-head,.bfvol .bfvol-dname,.bfvol .bfvol-next b,.bfvol .bfvol-rank,.bfvol .bfvol-tag,.bfvol .bfvol-proto{font-family:inherit}
.bfvol .bfvol-sum-head,.bfvol .bfvol-dname,.bfvol .bfvol-next b{text-transform:none;letter-spacing:0}
@container (max-width: 640px){.bfvol-card{padding:20px 16px}}
@media (max-width:760px){.bfvol-card{padding:20px 16px}.bfvol .bfvol-title{font-size:22px}}
.bfvol .bfvol-form-title{line-height:1.55}
.bfvol select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,#0A1F44 50%),linear-gradient(135deg,#0A1F44 50%,transparent 50%);background-position:calc(100% - 20px) 20px,calc(100% - 14px) 20px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
