/* =========================
   09. REJESTRACJA
   ========================= */
#rejestracja{
  --formMax:860px;

  --r1:18px;
  --r2:14px;

  --msgPad:14px 16px 14px 18px;
  --msgRadius:16px;
  --msgMaxH:148px;

  --formPad:14px;
  --fieldPad:10px 12px;
  --chipPad:10px 14px;
  --radioPad:10px 12px;

  --optBg:var(--glassWhiteA);
  --optBorder:var(--coffeeLine3);
  --optHover:rgba(122,94,75,.06);

  --optOnBg:var(--latteC);
  --optOnBorder:rgba(122,94,75,.34);
  --optOnRing:var(--ringCoffee2);
  --optOnText:var(--coffeeInk);

  --segBg:var(--latteB);
  --segBorder:rgba(95,70,56,.22);
  --segShadow:inset 0 1px 0 rgba(255,255,255,.70),0 10px 22px rgba(0,0,0,.08);
  --segKnob:linear-gradient(90deg, rgba(122,94,75,.92), rgba(166,124,92,.92));
  --segKnobShadow:0 14px 26px rgba(95,70,56,.18), inset 0 2px 0 rgba(255,255,255,.22);

  --btnBg:linear-gradient(90deg, rgba(122,94,75,.95), rgba(166,124,92,.95), rgba(122,94,75,.95));
  --btnBgSize:220% 100%;
  --btnShadow:0 6px 16px rgba(95,70,56,.14);

  position:relative;
  z-index:2;
  min-height:100dvh;
  overflow:visible;
  background:var(--paper);
}

#rejestracja > .container{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:10px;
  min-height:100%;
}

.section-form .section-header{
  margin:0 auto 8px;
}

.section-form .section-header h2{
  font-size:clamp(1.75rem,2.4vw,3rem);
}

.section-form .section-header p{
  margin-top:6px;
  font-size:.98rem;
  line-height:1.45;
}

/* =========================
   09a. KOMUNIKAT
   ========================= */
.form_msg,
#registration-form{
  width:min(var(--formMax),100%);
  margin:0 auto;
}

.form_msg{
  position:relative;
  max-height:var(--msgMaxH);
  overflow:auto;
  margin-bottom:10px;
  padding:var(--msgPad);
  border:1px solid var(--coffeeLine2);
  border-radius:var(--msgRadius);
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadowSoft);
  color:var(--coffeeInk);
  font-weight:800;
  font-size:.96rem;
  line-height:1.45;
}

.form_msg::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  border-radius:var(--msgRadius) 0 0 var(--msgRadius);
  background:var(--coffeeLine3);
}

/* =========================
   09b. FORMULARZ
   ========================= */
#registration-form{
  height:auto;
  min-height:0;
  overflow:visible;
  padding:var(--formPad);
  border:1px solid var(--coffeeLine);
  border-radius:var(--r1);
  background:var(--glassWhiteB);
  box-shadow:var(--shadowSoft);
  color:var(--coffeeInk);
}

.form-steps{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 10px;
}

.form-steps li{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(122,94,75,.10);
  color:rgba(98,57,29,.90);
  font-weight:900;
  font-size:.86rem;
}

.form-steps li[aria-current="step"]{
  background:rgba(122,94,75,.18);
}

.form-step{
  margin:0;
  padding:0;
  border:0;
}

.form-step > legend{
  margin-bottom:8px;
  font-family:var(--fontB);
  font-weight:600;
  font-size:1.35rem;
  color:var(--coffeeInk);
}

.field,
.field-group{
  margin-top:10px;
}

.field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.field-group{
  border:0;
  padding:0;
}

.field label,
.field-group > legend{
  font-weight:900;
  color:var(--coffeeInk);
  font-size:.95rem;
}

.field-group > legend{
  margin-bottom:8px;
}

.hint{
  margin:0 0 8px;
  font-size:.95rem;
  line-height:1.45;
  color:var(--coffeeMuted);
}

.field-input-wrap{
  position:relative;
}

.field-input-wrap input,
.field-input-wrap textarea{
  width:100%;
  padding:var(--fieldPad);
  border:2px solid var(--coffeeLine2);
  border-radius:12px;
  background:var(--white);
  color:var(--coffeeInk);
  outline:none;
  transition:border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.field-input-wrap textarea{
  resize:vertical;
  min-height:120px;
}

.field-input-wrap #talk_abstract{
  min-height:170px;
}

.field-input-wrap input[data-char-limit],
.field-input-wrap textarea[data-char-limit]{
  padding-right:156px;
}

.field-input-wrap textarea[data-char-limit]{
  padding-bottom:36px;
}

.field-input-wrap input:focus,
.field-input-wrap textarea:focus{
  border-color:var(--ringCoffee6);
  box-shadow:0 0 0 4px var(--ringCoffee);
}

.field-note{
  margin:2px 2px 0 2px;
  font-size:.88rem;
  line-height:1.35;
  color:var(--coffeeMuted);
}

.field-counter{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:2;
  max-width:calc(100% - 24px);
  padding:4px 8px;
  border:1px solid rgba(98,57,29,.12);
  border-radius:999px;
  background:rgba(253,247,242,.96);
  box-shadow:0 4px 10px rgba(0,0,0,.05);
  color:rgba(98,57,29,.82);
  font-weight:900;
  font-size:.78rem;
  line-height:1.2;
  white-space:nowrap;
  pointer-events:none;
}

.field-counter.is-limit{
  color:#9f2d2d;
  border-color:rgba(159,45,45,.22);
  background:rgba(255,244,244,.98);
}

#registration-form [hidden]{
  display:none !important;
}

/* =========================
   09c. OPCJE
   ========================= */
.toggle[role="group"]{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.toggle[role="group"] .chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  position:relative;
  padding:var(--chipPad);
  border:2px solid var(--optBorder);
  border-radius:14px;
  background:var(--optBg);
  cursor:pointer;
  user-select:none;
  box-shadow:inset 0 1px 0 var(--glassWhiteE), 0 10px 18px rgba(0,0,0,.06);
  transition:transform 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.toggle[role="group"] .chip:hover{
  transform:translateY(-1px);
  border-color:rgba(122,94,75,.28);
  background:var(--optHover);
  box-shadow:inset 0 1px 0 var(--glassWhiteD), 0 14px 22px rgba(0,0,0,.08);
}

.toggle[role="group"] .chip input{
  width:18px;
  height:18px;
  margin:0;
  accent-color:var(--coffee);
}

.toggle[role="group"] .chip span{
  font-weight:900;
  color:rgba(98,57,29,.86);
}

.toggle[role="group"] .chip:has(input:checked){
  background:var(--optOnBg);
  border-color:var(--optOnBorder);
  box-shadow:0 0 0 4px var(--optOnRing), inset 0 1px 0 var(--glassWhiteD), 0 18px 34px rgba(0,0,0,.10);
}

.toggle[role="group"] .chip:has(input:checked) span{
  color:var(--optOnText);
}

.toggle[role="group"] .chip:has(input:focus-visible){
  outline:3px solid var(--ringCoffee3);
  outline-offset:3px;
}

.toggle[role="radiogroup"]{
  position:relative;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
  gap:0;
  padding:4px;
  overflow:hidden;
  border:2px solid var(--segBorder);
  border-radius:999px;
  background:var(--segBg);
  box-shadow:var(--segShadow);
}

.toggle[role="radiogroup"] .chip input[type="radio"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.toggle[role="radiogroup"] .chip{
  position:relative;
  z-index:2;
  justify-content:center;
  margin:0;
  padding:var(--radioPad);
  border:0;
  border-radius:999px;
  background:transparent;
  box-shadow:none;
  cursor:pointer;
  user-select:none;
  text-align:center;
  transition:transform 160ms ease;
}

.toggle[role="radiogroup"] .chip:hover{
  transform:translateY(-1px);
}

.toggle[role="radiogroup"] .chip span{
  font-weight:900;
  letter-spacing:.6px;
  color:rgba(98,57,29,.76);
  transition:color 180ms ease;
}

.toggle[role="radiogroup"] .chip:has(input:checked) span{
  color:rgba(255,255,255,.96);
  text-shadow:0 10px 24px rgba(0,0,0,.18);
}

.toggle[role="radiogroup"]::before{
  content:"";
  position:absolute;
  top:4px;
  bottom:4px;
  left:4px;
  width:calc((100% - 8px) / 2);
  border-radius:999px;
  background:var(--segKnob);
  box-shadow:var(--segKnobShadow);
  transform:translateX(0);
  transition:transform 280ms cubic-bezier(.2,.9,.2,1), width 180ms ease;
  z-index:1;
}

.toggle[role="radiogroup"]:has(.chip:nth-child(3))::before{
  width:calc((100% - 8px) / 3);
}

.toggle[role="radiogroup"]:has(.chip:nth-child(2) input:checked)::before{
  transform:translateX(100%);
}

.toggle[role="radiogroup"]:has(.chip:nth-child(3) input:checked)::before{
  transform:translateX(200%);
}

.toggle[role="radiogroup"]:has(input:focus-visible){
  outline:3px solid var(--ringCoffee3);
  outline-offset:3px;
}

.conditional{
  margin-top:10px;
  padding:10px;
  border:1px solid var(--coffeeLine);
  border-radius:var(--r2);
  background:var(--latteA);
}

/* =========================
   09d. AKCJE I ZGODY
   ========================= */
.step-actions{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.step-actions .btn-ghost{
  --btnGhostColor:var(--coffeeInk);
  --btnGhostBorder:rgba(98,57,29,.22);
  --btnGhostHover:rgba(122,94,75,.10);
}

#registration-form .btn.btn-primary{
  position:relative;
  overflow:hidden;
  background:var(--btnBg);
  background-size:var(--btnBgSize);
  box-shadow:var(--btnShadow);
  transition:transform 160ms ease, box-shadow 220ms ease, background-position 450ms ease;
}

#registration-form .btn.btn-primary:hover{
  transform:translateY(-1px);
  background-position:100% 0;
  box-shadow:0 8px 18px rgba(95,70,56,.16);
}

#registration-form .btn.btn-primary:active{
  transform:translateY(0);
}

#registration-form .btn.btn-primary:focus-visible{
  outline:3px solid var(--ringCoffee4);
  outline-offset:3px;
}

#registration-form .btn.btn-primary:disabled{
  opacity:.72;
  cursor:not-allowed;
  transform:none;
}

#registration-form .btn.btn-primary::after{
  content:"";
  position:absolute;
  top:-40%;
  left:-35%;
  width:40%;
  height:180%;
  opacity:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(255,255,255,0), var(--glassWhiteF), rgba(255,255,255,0));
  transform:skewX(-18deg);
}

#registration-form .btn.btn-primary:hover::after{
  opacity:.55;
  animation:btnshine 780ms ease;
}

@keyframes btnshine{
  from{left:-35%}
  to{left:120%}
}

.check{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid var(--coffeeLine);
  border-radius:14px;
  background:var(--latteA);
}

.check input{
  width:20px;
  height:20px;
  margin-top:2px;
  accent-color:var(--coffee);
}

.check span{
  font-weight:800;
  font-size:.95rem;
  line-height:1.35;
  color:var(--coffeeInk);
}

.hp-field{
  display:none;
}

.recaptcha-slot{
  min-height:54px;
  margin-top:10px;
}

.inline-link{
  margin-left:10px;
  font-weight:900;
  color:rgba(95,70,56,.92);
  text-decoration:underline;
  text-decoration-color:var(--ringCoffee5);
  text-underline-offset:2px;
}

.inline-link:hover{
  text-decoration-color:rgba(122,94,75,.75);
}

/* =========================
   09m. REJESTRACJA MOBILE
   ========================= */
@media (max-width:900px){
  #rejestracja{
    --msgPad:12px 14px 12px 16px;
    --msgRadius:14px;
    --msgMaxH:132px;
    --formPad:12px;
    min-height:auto;
  }

  #rejestracja > .container{
    gap:8px;
  }

  .section-form .section-header{
    margin:0 auto 6px;
  }

  .section-form .section-header h2{
    font-size:clamp(1.55rem,6.6vw,2.2rem);
  }

  .section-form .section-header p{
    font-size:.96rem;
  }

  .form_msg{
    margin-bottom:8px;
    font-size:.93rem;
  }

  .form-steps{
    margin-bottom:8px;
  }

  .form-steps li{
    font-size:.84rem;
  }

  .form-step > legend{
    font-size:1.22rem;
  }

  .field{
    margin-top:9px;
  }

  .field-group{
    margin-top:10px;
  }

  .hint{
    font-size:.93rem;
  }

  .field-input-wrap input[data-char-limit],
  .field-input-wrap textarea[data-char-limit]{
    padding-right:132px;
  }

  .field-counter{
    right:8px;
    bottom:8px;
    font-size:.72rem;
    padding:4px 7px;
  }

  .toggle[role="radiogroup"]{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:8px;
    border-radius:16px;
  }

  .toggle[role="radiogroup"]::before{
    display:none;
  }

  .toggle[role="radiogroup"] .chip{
    justify-content:flex-start;
    padding:10px 12px;
    border:2px solid var(--optBorder);
    border-radius:14px;
    background:var(--optBg);
    box-shadow:inset 0 1px 0 var(--glassWhiteE), 0 10px 18px rgba(0,0,0,.06);
  }

  .toggle[role="radiogroup"] .chip span{
    color:rgba(98,57,29,.86);
    text-shadow:none;
  }

  .toggle[role="radiogroup"] .chip:has(input:checked){
    background:var(--optOnBg);
    border-color:var(--optOnBorder);
    box-shadow:0 0 0 4px var(--optOnRing), inset 0 1px 0 var(--glassWhiteD), 0 18px 34px rgba(0,0,0,.10);
  }

  .toggle[role="radiogroup"] .chip:has(input:checked) span{
    color:var(--optOnText);
  }

  .step-actions{
    justify-content:center;
  }

  #registration-form .btn.btn-primary:hover{
    transform:none;
    background-position:0 0;
    box-shadow:var(--btnShadow);
  }

  #registration-form .btn.btn-primary:hover::after{
    animation:none;
    opacity:0;
  }

  .toggle[role="group"] .chip:hover{
    transform:none;
  }
}

@media (max-width:520px){
  #rejestracja{
    --msgPad:12px 12px 12px 14px;
    --formPad:10px;
  }

  .form_msg{
    font-size:.92rem;
  }

  .check{
    gap:10px;
  }

  .check span{
    font-size:.94rem;
  }

  .inline-link{
    margin-left:8px;
  }

  .field-note{
    font-size:.84rem;
  }

  .field-counter{
    font-size:.68rem;
  }
}