/* Embassy of India, Brussels: forms (online appointment, registration, contact) — DBIM tokens from style.css */
.btn-lg{ padding:12px 24px; font-size:1rem; }
.req{ color:var(--error); font-weight:700; }
.appt-steps{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0!important; margin:0 0 24px!important; counter-reset:none; }
.appt-steps li{ display:flex; align-items:center; gap:8px; margin:0; padding:8px 14px 8px 8px; border:1px solid var(--key-200); background:#fff; font-size:.875rem; color:var(--grey3); }
.appt-steps .n{ width:26px; height:26px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--linen); color:var(--text); font-weight:700; font-size:.8125rem; }
.appt-steps li.done .n{ background:var(--success); color:#fff; }
.appt-steps li.current{ border-color:var(--key-700); color:var(--key-900); font-weight:700; background:var(--key-50); }
.appt-steps li.current .n{ background:var(--key-700); color:#fff; }
.appt-rules li{ margin-bottom:10px; }
.appt-confirm{ border:1px solid var(--key-200); background:var(--key-50); padding:20px; margin-top:20px; }
.appt-confirm p{ margin-bottom:16px; }
.eoi-form{ margin-top:12px; }
.f-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
.f-field{ display:flex; flex-direction:column; gap:6px; }
.f-field.f-wide{ grid-column:1 / -1; }
.f-field label{ font-weight:600; font-size:.9375rem; color:var(--text); }
.f-field input,.f-field select,.f-field textarea{ font:inherit; font-size:1rem; padding:10px 12px; border:1.5px solid var(--grey2); border-radius:0; background:#fff; color:var(--text); min-height:44px; width:100%; }
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{ outline:3px solid var(--key-700); outline-offset:1px; border-color:var(--key-700); }
.f-field [aria-invalid="true"]{ border-color:var(--error); }
.hint{ font-size:.8125rem; color:var(--grey3); }
.field-error{ font-size:.875rem; color:#B4232F; font-weight:600; }
.field-error::before{ content:"Error: "; }
.f-actions{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:24px; }
.form-status{ border-left:4px solid var(--error); background:#FDECEE; padding:12px 16px; margin:12px 0; font-weight:600; }
.form-status:focus{ outline:3px solid var(--key-700); }
.result-box{ padding:20px; margin:0 0 20px; border:1px solid; }
.result-box.success{ border-color:var(--success); background:#E8F5EE; }
.result-box.error{ border-color:var(--error); background:#FDECEE; }
.result-box:focus{ outline:3px solid var(--key-700); }
.captcha-row{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:end; }
.captcha-row > div:first-child{ display:flex; flex-direction:column; gap:6px; }
.captcha-img{ display:flex; gap:10px; align-items:center; }
.captcha-img img{ border:1px solid var(--grey1); }
/* slots */
.slot-legend{ list-style:none; display:flex; flex-wrap:wrap; gap:18px; padding:0!important; font-size:.875rem; }
.slot-legend li{ display:flex; align-items:center; gap:6px; margin:0; }
.slot-key{ width:18px; height:18px; border:1px solid var(--grey2); display:inline-block; }
.slot-key.free{ background:#E3F4E1; } .slot-key.booked{ background:#F3D6D8; } .slot-key.chosen{ background:var(--key-700); }
.slot-table{ max-height:520px; overflow:auto; }
.slot-table th[scope="row"]{ white-space:nowrap; width:140px; }
.slot-table .day{ display:block; font-weight:400; font-size:.8125rem; color:var(--grey3); }
.slot-table tr.closed td,.slot-table tr.closed th{ color:var(--grey3); background:#F4F4F4!important; }
.slots-row{ display:flex; flex-wrap:wrap; gap:6px; }
.slot{ min-width:72px; padding:6px 8px; font:inherit; font-size:.875rem; text-align:center; border:1px solid var(--grey2); background:#E3F4E1; color:var(--text); }
button.slot{ cursor:pointer; }
button.slot:hover{ border-color:var(--key-700); }
button.slot.active,button.slot[aria-pressed="true"]{ background:var(--key-700); color:#fff; border-color:var(--key-900); font-weight:700; }
.slot.booked{ background:#F3D6D8; color:#5C1219; text-decoration:line-through; }
.slot-choice{ font-weight:600; margin-top:12px; }
.appt-summary th{ width:45%; }
/* contact */
.contact-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; margin-bottom:24px; }
.c-card{ border:1px solid var(--key-200); background:#fff; padding:16px 18px; }
.c-card h2{ font-size:1rem!important; margin:0 0 8px!important; }
.c-card address{ font-style:normal; }
.c-card.c-em{ border-color:var(--error); border-top:4px solid var(--error); }
.contact-map{ height:auto; aspect-ratio:16/9; }
html.hc .slot.booked{ text-decoration:line-through; }
@media (max-width:760px){
  .f-grid{ grid-template-columns:1fr; }
  .captcha-row{ grid-template-columns:1fr; }
  .appt-steps li .t{ display:none; }
  .appt-steps li.current .t{ display:inline; }
}
