/* Gemeinsame Styles fuer die Online-Formulare (Baukasten funnel.js).
   Genutzt von /voluntariado/candidatura/ und /apadrinhar/candidatura/. */
a { color: var(--color-accent); }
a:hover { color: var(--color-accent-700); }
.wrap { max-width: 1200px; margin: 0 auto; padding-inline: 24px; }
.navlink { color: var(--color-text); opacity: .78; text-decoration: none; font-size: 15px; }
.navlink:hover { opacity: 1; color: var(--color-accent); }
.burger { display:none; align-items:center; justify-content:center; width:42px; height:42px; border-radius:10px; border:1px solid var(--color-divider); background:transparent; color:var(--color-text); cursor:pointer; flex-shrink:0; }
.burger:hover { border-color: var(--color-accent); color: var(--color-accent); }
.mobilenav { display:none; flex-direction:column; padding-bottom: 12px; }
.mobilenav.open { display:flex; }
.mobilenav a { padding: 13px 4px; font-size: 16px; font-weight: 600; color: var(--color-text); text-decoration: none; border-bottom: 1px solid var(--color-divider); }
.mobilenav a:last-child { border-bottom: 0; }
@media (max-width: 1080px){ .desknav{ display:none !important } .burger{ display:flex; } }

.funnel { max-width: 720px; margin: 0 auto; }
.progress-label { display:flex; justify-content:space-between; align-items:baseline; font-size:13px; font-weight:700; margin-bottom:8px; color: color-mix(in srgb, var(--color-text) 62%, transparent); }
.progress-track { height: 8px; border-radius: 999px; background: color-mix(in srgb, var(--color-accent) 14%, var(--color-surface)); overflow:hidden; }
.progress-fill { height:100%; border-radius:999px; background: var(--color-accent); transition: width .35s cubic-bezier(.22,.61,.36,1); }
.funnelcard { background: var(--color-bg); border: 1px solid var(--color-divider); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: clamp(22px, 4vw, 40px); margin-top: 18px; }
.qtitle { font-size: clamp(22px, 3vw, 28px); margin: 0 0 6px; }
.qsub { font-size: 15px; line-height: 1.6; margin: 0 0 24px; color: color-mix(in srgb, var(--color-text) 70%, transparent); }
.field { margin-bottom: 20px; }
.field > label { display:block; font-size: 13.5px; font-weight: 600; line-height:1.5; margin-bottom: 7px; color: color-mix(in srgb, var(--color-text) 82%, transparent); }
.fhint { font-size: 12.5px; line-height:1.5; margin: -3px 0 8px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.req { color: var(--color-accent); }
.optionrow { display:flex; flex-wrap:wrap; gap:10px; }
.optbtn { cursor:pointer; border:1px solid var(--color-divider); background: var(--color-surface); color: var(--color-text); font-family: var(--font-body); font-weight:600; font-size:14px; padding: 10px 18px; border-radius: 999px; line-height:1.3; text-align:left; }
.optbtn:hover { border-color: var(--color-accent); color: var(--color-accent); }
.optbtn[data-on="1"] { background: var(--color-accent); border-color: var(--color-accent); color: #fff; }
.optbtn.multi[data-on="1"]::before { content:'✓ '; }
.navrow { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top: 30px; }
.errmsg { display:none; margin-top:14px; font-size:14px; font-weight:600; color: var(--color-accent-700); }
.errmsg.show { display:block; }
.summary-item { padding: 10px 0; border-bottom: 1px solid var(--color-divider); font-size: 14.5px; line-height: 1.5; }
.summary-item:last-child { border-bottom: 0; }
.summary-q { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; color: color-mix(in srgb, var(--color-text) 52%, transparent); margin-bottom: 2px; }
.summary-a { font-weight: 600; white-space: pre-line; }
.spinner { width:18px; height:18px; border:2.5px solid color-mix(in srgb,#fff 40%, transparent); border-top-color:#fff; border-radius:50%; animation: spin .7s linear infinite; display:none; }
@keyframes spin { to { transform: rotate(360deg); } }
.sending .spinner { display:inline-block; }
.donecard { padding: clamp(28px, 5vw, 52px) clamp(20px, 4vw, 44px); }
.step { display:none; }
.step.active { display:block; }
textarea.input { border-radius: var(--radius-md); padding: 12px 16px; min-height: 96px; line-height: 1.55; }

/* Infobox (Regeln, Termo) im Pruefschritt */
.rulebox { background: var(--color-accent-100); border-radius: var(--radius-md); padding: 16px 20px; margin: 0 0 20px; }
.rulebox h3 { font-size: 15px; margin: 0 0 8px; }
.rulebox ul { margin: 0; padding-left: 18px; font-size: 14px; line-height: 1.6; }
.rulebox li { margin: 3px 0; }
.consentrow { display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:14px; line-height:1.55; }
.consentrow input { width:18px; height:18px; margin-top:2px; accent-color: var(--color-accent); flex-shrink:0; }

/* Tierauswahl */
.animalsearch { margin-bottom: 12px; }
.animalgrid { display:grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px; max-height: 470px; overflow-y:auto; padding: 4px; margin: -4px; }
.animalcard { cursor:pointer; border: 2px solid transparent; background: var(--color-surface); border-radius: 14px; padding: 6px 6px 8px; text-align:center; font-family: var(--font-body); color: var(--color-text); }
.animalcard img { width:100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 10px; display:block; background: var(--color-divider); }
.animalcard .an { font-weight:700; font-size:14px; margin-top:6px; }
.animalcard .as { font-size:11.5px; opacity:.65; }
.animalcard:hover { border-color: var(--color-accent-300); }
.animalcard[data-on="1"] { border-color: var(--color-accent); background: var(--color-accent-100); }
.animalcard.any { grid-column: 1 / -1; display:flex; flex-direction:row; align-items:center; gap:14px; text-align:left; padding: 14px 18px; }
.animalcard.any .em { width:48px; height:48px; border-radius:50%; background: var(--color-bg); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.animalcard.any .em svg { width:26px; height:26px; }
.animalcard.any .an { margin-top:0; font-size:15px; }
.animalcard.any .as { font-size:13px; }
.animalcard .an, .animalcard .as, .qtitle, .qsub, .field > label { text-wrap: balance; }
.selbanner { display:flex; align-items:center; gap:14px; background: var(--color-accent-100); border-radius: var(--radius-md); padding: 12px 16px; margin-bottom: 16px; }
.selbanner img { width:56px; height:56px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.selbanner .sl { font-size:12px; text-transform:uppercase; letter-spacing:.07em; font-weight:700; opacity:.7; }
.selbanner .sn { font-family: var(--font-heading); font-size:21px; line-height:1.2; }
.selbanner button { margin-left:auto; background:none; border:0; color: var(--color-accent); font-weight:700; cursor:pointer; font-family: var(--font-body); font-size:13.5px; }

/* Danke-Seite: Zahlungsinfos und naechste Schritte */
.nextsteps { text-align:left; margin: 22px auto 0; max-width: 520px; }
.paybox { background: var(--color-surface); border-radius: var(--radius-md); padding: 16px 18px; margin: 10px 0; }
.paybox .pl { font-size:12px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; color: color-mix(in srgb, var(--color-text) 55%, transparent); margin-bottom:4px; }
.paybox .pv { display:flex; align-items:center; justify-content:space-between; gap:10px; font-weight:700; font-size:15.5px; word-break: break-word; }
.copybtn { flex-shrink:0; cursor:pointer; border:1px solid var(--color-divider); background: var(--color-bg); color: var(--color-accent); font-family: var(--font-body); font-weight:700; font-size:12.5px; padding: 6px 12px; border-radius: 999px; }
.copybtn:hover { border-color: var(--color-accent); }
.stepsol { margin: 0; padding-left: 20px; font-size: 15px; line-height: 1.65; }
.stepsol li { margin: 6px 0; }

/* Handy: Auswahl-Knoepfe mit ausreichend grosser Tippflaeche (mind. 44px) */
@media (max-width: 860px) {
  .optbtn { padding: 12px 18px; font-size: 15px; min-height: 44px; }
  .navrow .btn { min-height: 46px; }
  .copybtn { padding: 8px 14px; }
}
