/* LowBedO: formulare. Culorile și fonturile vin din temă; aici doar așezarea. */
.lb-form { max-width: 720px; margin: 0 auto; }
.lb-form *, .lb-form *::before, .lb-form *::after { box-sizing: border-box; }
.lb-form [hidden] { display: none !important; }
.lb-form form { display: grid; gap: 1rem; }
.lb-form label { display: grid; gap: .35rem; font-weight: 500; }
.lb-form input[type="text"], .lb-form input[type="tel"], .lb-form input[type="email"],
.lb-form input[type="number"], .lb-form input[type="date"], .lb-form select, .lb-form textarea {
    width: 100%; padding: .75rem; font: inherit; font-size: 1rem; border: 1px solid #c8c8c8; border-radius: 8px; background: #fff;
    height: auto; min-height: 3rem; line-height: 1.3;
}
/* Blocksy dă listelor o înălțime fixă; fără asta, textul ales iese tăiat. */
.lb-form select { padding-top: .6rem; padding-bottom: .6rem; padding-right: 2.25rem; }
.lb-form fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: .75rem; }
.lb-form legend { font-size: 1.25rem; font-weight: 600; margin-bottom: .5rem; }
.lb-optiuni legend { font-size: 1rem; }
/* Bife și butoane radio: căsuța în stânga, textul lângă ea. Specificitate mai mare decât .lb-form label. */
.lb-form .lb-optiuni { gap: .25rem; }
.lb-form .lb-optiuni label, .lb-form label.lb-acord {
    display: flex; align-items: flex-start; gap: .65rem; font-weight: 400; line-height: 1.45; padding: .35rem 0; cursor: pointer;
}
.lb-form .lb-optiuni label input, .lb-form label.lb-acord input {
    flex: 0 0 auto; width: 1.25rem; height: 1.25rem; min-height: 0; margin: .1rem 0 0; padding: 0;
}
.lb-form label.lb-acord span { flex: 1; font-size: .95rem; }
.lb-form label.lb-acord a { text-decoration: underline; }
.lb-rand { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.lb-categorii { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.lb-card { position: relative; border: 1px solid #c8c8c8; border-radius: 10px; padding: .9rem; cursor: pointer; font-weight: 500; }
.lb-card input { position: absolute; opacity: 0; }
.lb-card:has(input:checked) { border-color: currentColor; outline: 2px solid currentColor; }
.lb-card:has(input:focus-visible) { outline: 2px solid currentColor; outline-offset: 2px; }
.lb-progres { display: flex; gap: .4rem; list-style: none; padding: 0; margin: 0 0 1rem; font-size: .85rem; }
.lb-progres li { flex: 1; padding-top: .4rem; border-top: 4px solid #ddd; color: #777; }
.lb-progres li.activ, .lb-progres li.gata { border-top-color: currentColor; color: inherit; }
.lb-oblig { font-weight: 400; font-size: .8rem; color: #8a5a00; }
.lb-nota, .lb-sugestie, .lb-form small { font-size: .9rem; font-weight: 400; color: #555; }
.lb-sugestie { background: #f3f7ee; padding: .6rem .8rem; border-radius: 8px; }
.lb-eroare { color: #a32d2d; font-weight: 500; }
.lb-succes { color: #3b6d11; font-weight: 500; }
.lb-butoane { display: flex; gap: .75rem; justify-content: space-between; }
.lb-butoane button { padding: .85rem 1.4rem; font-size: 1rem; border-radius: 8px; cursor: pointer; }
.lb-inainte, .lb-trimite { margin-left: auto; }
.lb-judete { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.lb-capcana { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lb-form details summary { cursor: pointer; }
@media (max-width: 480px) {
    .lb-progres li { font-size: 0; }
    .lb-butoane button { flex: 1; }
}
