/**
 * Floating Labels - uniwersalne dla wszystkich pól formularzy
 * Działa na shipping + payment/billing forms
 * Obsługuje różne struktury HTML (html_format 0, 1, 2)
 */

/* Wrapper - WSZYSTKIE form-group (bez :has() dla lepszej kompatybilności) */
.opc_shipping_address .form-group,
.opc_payment_address .form-group,
.opc_billing_address .form-group {
    position: relative;
}

/* UKRYJ główny label address1 który zawiera sub-pola (Ulica, Nr bud., Nr lok.) */
.opc_shipping_address .col-sm-6 > .form-group:has(> .row) > label.control-label,
.opc_billing_address .col-sm-6 > .form-group:has(> .row) > label.control-label {
    display: none !important;
}

/* Label - początkowo w środku pola (jak placeholder) */
.opc_shipping_address .form-group > label.control-label,
.opc_payment_address .form-group > label.control-label,
.opc_billing_address .form-group > label.control-label {
    position: absolute !important;
    left: 12px;
    top: 12px; /* W środku pola */
    font-size: 14px !important;
    color: #6c757d;
    pointer-events: none;
    transition: all 0.2s ease;
    z-index: 1;
    padding: 0;
    margin: 0;
    line-height: 1.2;
    background: transparent; /* Bez tła w stanie ukrytym */
    opacity: 0; /* Niewidoczny - nie zakrywa placeholdera */
    visibility: hidden;
    transform: translateY(0);
    width: auto !important; /* Auto width */
    max-width: calc(100% - 24px);
    display: block;
}

/* Asterisk - normalny rozmiar, ale przezroczysty */
.opc_shipping_address .form-group > label.control-label .supercheckout-required,
.opc_shipping_address .form-group > label.control-label .supercheckout-optional,
.opc_payment_address .form-group > label.control-label .supercheckout-required,
.opc_billing_address .form-group > label.control-label .supercheckout-required {
    font-size: 12px !important;
    opacity: 0;
    transition: opacity 0.2s ease;
}

/* WAŻNE: Zachowaj display:none dla asterisk w polach niewymaganych */
.opc_shipping_address .form-group > label.control-label .supercheckout-required[style*="display:none"],
.opc_shipping_address .form-group > label.control-label .supercheckout-required[style*="display: none"],
.opc_payment_address .form-group > label.control-label .supercheckout-required[style*="display:none"],
.opc_payment_address .form-group > label.control-label .supercheckout-required[style*="display: none"],
.opc_billing_address .form-group > label.control-label .supercheckout-required[style*="display:none"],
.opc_billing_address .form-group > label.control-label .supercheckout-required[style*="display: none"] {
    display: none !important;
}

/* Label AKTYWNY - przesuwa się na górę i staje się widoczny */
.opc_shipping_address .form-group.has-focus > label.control-label,
.opc_shipping_address .form-group.has-value > label.control-label,
.opc_payment_address .form-group.has-focus > label.control-label,
.opc_payment_address .form-group.has-value > label.control-label,
.opc_billing_address .form-group.has-focus > label.control-label,
.opc_billing_address .form-group.has-value > label.control-label {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(-20px); /* Przesuwa się w górę */
    font-size: 11px !important; /* Mniejszy rozmiar */
    color: #495057;
    background: #fff !important; /* Tło tylko gdy aktywny */
    padding: 0 6px !important; /* Padding tylko gdy aktywny */
    border-radius: 2px;
    width: auto !important;
    display: inline-block !important; /* INLINE-BLOCK - tło pod tekstem */
    white-space: nowrap !important;
    max-width: calc(100% - 24px) !important;
}

/* Asterisk AKTYWNY - widoczny */
.opc_shipping_address .form-group.has-focus > label.control-label .supercheckout-required,
.opc_shipping_address .form-group.has-value > label.control-label .supercheckout-required,
.opc_shipping_address .form-group.has-focus > label.control-label .supercheckout-optional,
.opc_shipping_address .form-group.has-value > label.control-label .supercheckout-optional,
.opc_payment_address .form-group.has-focus > label.control-label .supercheckout-required,
.opc_payment_address .form-group.has-value > label.control-label .supercheckout-required,
.opc_billing_address .form-group.has-focus > label.control-label .supercheckout-required,
.opc_billing_address .form-group.has-value > label.control-label .supercheckout-required {
    opacity: 1 !important;
    color: #dc3545;
}

/* Label po focusie - niebieski kolor */
.opc_shipping_address .form-group.has-focus > label.control-label,
.opc_payment_address .form-group.has-focus > label.control-label,
.opc_billing_address .form-group.has-focus > label.control-label {
    color: var(--primary) !important;
}

/* Input/textarea/select - padding top dla labela */
.opc_shipping_address .form-group input.form-control,
.opc_shipping_address .form-group textarea.form-control,
.opc_shipping_address .form-group select.form-control,
.opc_payment_address .form-group input.form-control,
.opc_payment_address .form-group textarea.form-control,
.opc_payment_address .form-group select.form-control,
.opc_billing_address .form-group input.form-control,
.opc_billing_address .form-group textarea.form-control,
.opc_billing_address .form-group select.form-control {
    padding-top: 8px;
    padding-bottom: 8px;
}

/* Placeholder - normalnie widoczny */
.opc_shipping_address .form-group input.form-control::placeholder,
.opc_shipping_address .form-group textarea.form-control::placeholder,
.opc_payment_address .form-group input.form-control::placeholder,
.opc_payment_address .form-group textarea.form-control::placeholder,
.opc_billing_address .form-group input.form-control::placeholder,
.opc_billing_address .form-group textarea.form-control::placeholder {
    color: #999;
    opacity: 1;
    transition: opacity 0.2s ease;
}

/* Placeholder znika gdy label się pokazuje */
.opc_shipping_address .form-group.has-focus input.form-control::placeholder,
.opc_shipping_address .form-group.has-value input.form-control::placeholder,
.opc_shipping_address .form-group.has-focus textarea.form-control::placeholder,
.opc_shipping_address .form-group.has-value textarea.form-control::placeholder,
.opc_payment_address .form-group.has-focus input.form-control::placeholder,
.opc_payment_address .form-group.has-value input.form-control::placeholder,
.opc_payment_address .form-group.has-focus textarea.form-control::placeholder,
.opc_payment_address .form-group.has-value textarea.form-control::placeholder,
.opc_billing_address .form-group.has-focus input.form-control::placeholder,
.opc_billing_address .form-group.has-value input.form-control::placeholder,
.opc_billing_address .form-group.has-focus textarea.form-control::placeholder,
.opc_billing_address .form-group.has-value textarea.form-control::placeholder {
    opacity: 0;
}
