/* -----------------------------------------------------------------------
   B2B Form & Status Styles
----------------------------------------------------------------------- */

/* Shop notice banner */
.b2b-shop-notice {
    background: #fef3c7;
    border: 1px solid #fcd34d;
    border-radius: 8px;
    padding: 12px 18px;
    margin-bottom: 24px;
    font-size: 14px;
    color: #78350f;
}
.b2b-shop-notice a {
    color: #d63e52;
    font-weight: 600;
    text-decoration: none;
}

/* Locked price in product listings */
.b2b-price-locked {
    font-size: 13px;
    color: #6b7280;
    font-style: italic;
}
.b2b-price-locked a {
    color: #d63e52;
    text-decoration: none;
    font-weight: 600;
}

/* -----------------------------------------------------------------------
   Status banners
----------------------------------------------------------------------- */
.b2b-status {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 20px;
    border-radius: 10px;
    margin-bottom: 24px;
    font-size: 15px;
    line-height: 1.5;
}
.b2b-status svg {
    flex-shrink: 0;
    margin-top: 2px;
}
.b2b-status strong {
    display: block;
    margin-bottom: 4px;
    font-size: 16px;
}
.b2b-status a {
    color: inherit;
    font-weight: 600;
}

.b2b-status--approved {
    background: #f0fdf4;
    border: 1px solid #86efac;
    color: #166534;
}
.b2b-status--approved svg {
    stroke: #16a34a;
}

.b2b-status--pending {
    background: #eff6ff;
    border: 1px solid #93c5fd;
    color: #1e3a5f;
}
.b2b-status--pending svg {
    stroke: #3b82f6;
}

/* -----------------------------------------------------------------------
   Notices
----------------------------------------------------------------------- */
.b2b-notice {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 16px;
}
.b2b-notice--success {
    background: #f0fdf4;
    border: 1px solid #86efac;
    color: #166534;
}
.b2b-notice--error {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #991b1b;
}
.b2b-notice--warn {
    background: #fefce8;
    border: 1px solid #fde047;
    color: #713f12;
}

/* -----------------------------------------------------------------------
   Registration form
----------------------------------------------------------------------- */
.b2b-form-wrap {
    max-width: 680px;
}

.b2b-form-intro {
    color: #4b5563;
    font-size: 15px;
    margin-bottom: 24px;
}

.b2b-fieldset {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 20px 24px;
    margin: 0 0 20px;
}

.b2b-fieldset legend {
    padding: 0 8px;
    font-size: 13px;
    font-weight: 700;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.b2b-row {
    margin-bottom: 16px;
}
.b2b-row:last-child {
    margin-bottom: 0;
}

.b2b-row--half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: stretch;
}
@media (max-width: 540px) {
    .b2b-row--half {
        grid-template-columns: 1fr;
    }
}

/* Keep the two inputs on a half-row aligned even when one label wraps to a
   second line: each cell is a flex column and the field is pushed to the
   bottom so both fields line up regardless of label height. */
.b2b-row--half > div {
    display: flex;
    flex-direction: column;
}
.b2b-row--half > div > input,
.b2b-row--half > div > select {
    margin-top: auto;
}

.b2b-row label,
.b2b-row--half > div > label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
}
.b2b-row label span,
.b2b-row--half > div > label span {
    color: #d63e52;
}
.b2b-row label small,
.b2b-row--half > div > label small {
    font-weight: 400;
    color: #9ca3af;
    font-size: 12px;
}

.b2b-row input,
.b2b-row textarea,
.b2b-row select,
.b2b-row--half input,
.b2b-row--half textarea,
.b2b-row--half select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    color: #111827;
    background: #fff;
    box-sizing: border-box;
    transition: border-color 0.15s;
    font-family: inherit;
}
.b2b-row input:focus,
.b2b-row textarea:focus,
.b2b-row select:focus,
.b2b-row--half input:focus,
.b2b-row--half textarea:focus,
.b2b-row--half select:focus {
    outline: none;
    border-color: #d63e52;
    box-shadow: 0 0 0 3px rgba(214,62,82,0.1);
}

.b2b-submit {
    display: inline-block;
    background-color: #238c2a !important;
    color: #ffffff !important;
    border: none;
    padding: 13px 32px;
    border-radius: 7px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    margin-top: 8px;
    transition: background-color 0.15s, box-shadow 0.15s;
    font-family: inherit;
    text-shadow: none;
}
.b2b-submit .b2b-btn-text,
.b2b-submit .b2b-btn-spinner {
    color: #ffffff !important;
}
.b2b-submit:hover {
    background-color: #1c7022 !important;
}
.b2b-submit:focus,
.b2b-submit:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(35,140,42,0.4);
}
.b2b-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

/* -----------------------------------------------------------------------
   Checkboxes (delivery-same toggle, terms agreement)
----------------------------------------------------------------------- */
.b2b-checkbox-row {
    margin-bottom: 16px;
}
.b2b-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    line-height: 1.5;
    cursor: pointer;
    margin: 0;
}
.b2b-checkbox input[type="checkbox"] {
    width: auto;
    margin: 2px 0 0;
    flex-shrink: 0;
}
.b2b-checkbox a {
    color: #d63e52;
    text-decoration: underline;
    font-weight: 600;
}
.b2b-checkbox .b2b-req {
    color: #d63e52;
}

/* -----------------------------------------------------------------------
   Delivery address fields (shown when "same as billing" is unchecked)
----------------------------------------------------------------------- */
.b2b-delivery-fields {
    margin-top: 4px;
}

.b2b-form-note {
    font-size: 12px;
    color: #9ca3af;
    margin-top: 12px;
}
.b2b-form-note a {
    color: #d63e52;
    text-decoration: none;
}

/* -----------------------------------------------------------------------
   Live VIES VAT-number feedback (under the VAT field)
----------------------------------------------------------------------- */
.b2b-vies-feedback {
    margin-top: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.45;
    border: 1px solid transparent;
}
.b2b-vies-feedback.is-checking {
    background: #f3f4f6;
    border-color: #e5e7eb;
    color: #6b7280;
}
.b2b-vies-feedback.is-valid {
    background: #f0fdf4;
    border-color: #86efac;
    color: #166534;
}
.b2b-vies-feedback.is-invalid {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}
.b2b-vies-feedback.is-info {
    background: #fefce8;
    border-color: #fde047;
    color: #713f12;
}

/* -----------------------------------------------------------------------
   My Account tab details table
----------------------------------------------------------------------- */
.b2b-details-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin-top: 16px;
}
.b2b-details-table th,
.b2b-details-table td {
    padding: 10px 14px;
    border: 1px solid #e5e7eb;
    text-align: left;
}
.b2b-details-table th {
    background: #f9fafb;
    font-weight: 600;
    color: #374151;
    width: 160px;
}
.b2b-details-table td {
    color: #111827;
}
