/* ═══════════════════════════════════════════════════════════
   WooFlowerShop — Frontend Styles
   Design: clean, modern, inspired by Magnolia.ro checkout
═══════════════════════════════════════════════════════════ */

:root {
    --wfs-green:      #1a3a2a;
    --wfs-green-mid:  #2d6a4f;
    --wfs-green-lt:   #eef5f0;
    --wfs-accent:     #d4af37;
    --wfs-border:     #e8e0e3;
    --wfs-bg:         #f9f6f7;
    --wfs-white:      #ffffff;
    --wfs-text:       #1a1a1a;
    --wfs-muted:      #6b7280;
    --wfs-error:      #dc2626;
    --wfs-shadow:     0 1px 8px rgba(0,0,0,.07);
    --wfs-shadow-md:  0 4px 20px rgba(0,0,0,.10);
    --wfs-radius:     12px;
    --wfs-radius-sm:  8px;
}

/* ── Reset scope ── */
.wfs-layout, .wfs-layout * { box-sizing: border-box; }

/* ════════════════════════════════════════════════════════
   LAYOUT
════════════════════════════════════════════════════════ */
.wfs-layout {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 16px 60px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--wfs-text);
    font-size: 15px;
    line-height: 1.5;
}

.wfs-layout__body {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 28px;
    align-items: start;   /* REQUIRED for sticky to work in grid */
    margin-top: 28px;
}

/* Sidebar sticky */
.wfs-sidebar,
#wfs-sidebar-wrap {
    position: -webkit-sticky;
    position: sticky;
    top: 30px;
    align-self: start; /* REQUIRED in CSS Grid */
}
/* Remove overflow from all ancestors that could break sticky (desktop only — sticky is disabled on mobile) */
@media (min-width: 861px) {
    .wfs-layout,
    .wfs-layout__body,
    .wfs-main {
        overflow: visible !important;
    }
}
@media (max-width: 860px) {
    .wfs-sidebar,
    #wfs-sidebar-wrap {
        position: static !important;
        top: auto !important;
    }
    .wfs-layout,
    .wfs-layout__body,
    .wfs-main {
        overflow-x: hidden;
        max-width: 100%;
        min-width: 0;
    }
    /* Grid items refuse to shrink below min-content unless min-width: 0 */
    .wfs-layout__body > * { min-width: 0; }
}
@media (max-width: 860px) {
    .wfs-layout__body { grid-template-columns: 1fr; }
    .wfs-sidebar { order: -1; }
}

/* ════════════════════════════════════════════════════════
   STEP BAR  (matching screenshot style)
════════════════════════════════════════════════════════ */
.wfs-step-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px 0 8px;
    gap: 0;
}
.wfs-step-bar__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: var(--wfs-muted);
}
.wfs-step-bar__item.active  { color: var(--wfs-text); }
.wfs-step-bar__item.done    { color: var(--wfs-green-mid); }

.wfs-step-bar__bubble {
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 2px solid var(--wfs-border);
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 700;
    background: var(--wfs-white);
    transition: all .25s;
}
.wfs-step-bar__item.active .wfs-step-bar__bubble {
    background: var(--wfs-green);
    border-color: var(--wfs-green);
    color: #fff;
}
.wfs-step-bar__item.done .wfs-step-bar__bubble {
    background: var(--wfs-green-mid);
    border-color: var(--wfs-green-mid);
    color: #fff;
}
.wfs-step-bar__label {
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}
.wfs-step-bar__item.active .wfs-step-bar__label { font-weight: 700; }

.wfs-step-bar__line {
    flex: 1;
    height: 2px;
    background: var(--wfs-border);
    margin: 0 8px;
    margin-bottom: 20px;
    max-width: 120px;
    transition: background .3s;
}
.wfs-step-bar__line.done { background: var(--wfs-green-mid); }

/* ════════════════════════════════════════════════════════
   MAIN CONTENT
════════════════════════════════════════════════════════ */
.wfs-main { min-width: 0; }

.wfs-section {
    background: var(--wfs-white);
    border: 1px solid var(--wfs-border);
    border-radius: var(--wfs-radius);
    padding: 28px;
    margin-bottom: 20px;
    box-shadow: var(--wfs-shadow);
}
.wfs-section__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--wfs-green);
    margin: 0 0 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--wfs-border);
}

/* ════════════════════════════════════════════════════════
   FORM FIELDS
════════════════════════════════════════════════════════ */
.wfs-row { margin-bottom: 16px; }
.wfs-row--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.wfs-row--3col { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
@media (max-width: 640px) {
    .wfs-row--2col, .wfs-row--3col { grid-template-columns: 1fr; }
}

.wfs-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}
.wfs-field:last-child { margin-bottom: 0; }

.wfs-field label {
    font-size: 13px;
    font-weight: 600;
    color: var(--wfs-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.wfs-field--req label::after { content: ' *'; color: var(--wfs-error); }

.wfs-field input[type="text"],
.wfs-field input[type="tel"],
.wfs-field input[type="email"],
.wfs-field select,
.wfs-field textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
    font-size: 15px;
    color: var(--wfs-text);
    background: var(--wfs-bg);
    font-family: inherit;
    transition: border-color .2s, box-shadow .2s, background .2s;
}
.wfs-field input:focus,
.wfs-field select:focus,
.wfs-field textarea:focus {
    outline: none;
    border-color: var(--wfs-green-mid);
    background: var(--wfs-white);
    box-shadow: 0 0 0 3px rgba(45,106,79,.10);
}
.wfs-field input::placeholder,
.wfs-field textarea::placeholder { color: #aaa; font-size: 14px; }
.wfs-field select:disabled,
.wfs-field input[readonly] { opacity: .65; cursor: not-allowed; }
.wfs-field textarea { resize: vertical; min-height: 90px; }

.wfs-field__hint { font-size: 13px; color: var(--wfs-muted); margin: -8px 0 14px; }
.wfs-opt { font-weight: 400; font-size: 12px; color: #aaa; text-transform: none; letter-spacing: 0; }
.req { color: var(--wfs-error); }

/* WC validation errors inline */
.wfs-field .woocommerce-error,
.wfs-field .woocommerce-invalid input { border-color: var(--wfs-error) !important; }
.woocommerce-notices-wrapper .woocommerce-error {
    background: #fff0f0; border-left: 4px solid var(--wfs-error);
    padding: 12px 16px; border-radius: var(--wfs-radius-sm); margin-bottom: 20px; list-style: none;
}
.woocommerce-notices-wrapper .woocommerce-message {
    background: var(--wfs-green-lt); border-left: 4px solid var(--wfs-green-mid);
    padding: 12px 16px; border-radius: var(--wfs-radius-sm); margin-bottom: 20px; list-style: none;
}

/* ════════════════════════════════════════════════════════
   UNIFIED LOCALITY + SHIPPING INFO BOX
════════════════════════════════════════════════════════ */
.wfs-loc-info-box {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    background: var(--wfs-green-lt);
    border: 1px solid #b7d9c5;
    border-radius: var(--wfs-radius-sm);
    padding: 10px 16px;
    margin-bottom: 18px;
    font-size: 14px;
    color: var(--wfs-green);
}
.wfs-loc-info-box__pin { font-size: 18px; flex-shrink: 0; }
.wfs-loc-info-box__locality { font-weight: 700; }
.wfs-loc-info-box__sep { color: var(--wfs-muted); opacity: .5; }
.wfs-loc-info-box__ship { font-weight: 600; }
.wfs-ship-free { color: var(--wfs-green-mid); font-weight: 700; }
.wfs-ship-hint { color: var(--wfs-muted); font-size: 12px; font-weight: 400; }

/* ════════════════════════════════════════════════════════
   FLATPICKR OVERRIDES
════════════════════════════════════════════════════════ */
.flatpickr-calendar {
    border-radius: var(--wfs-radius) !important;
    box-shadow: var(--wfs-shadow-md) !important;
    font-family: inherit !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
    background: var(--wfs-green) !important;
    border-color: var(--wfs-green) !important;
}
.flatpickr-day:hover:not(.disabled):not(.selected) {
    background: var(--wfs-green-lt) !important;
}
.flatpickr-months .flatpickr-month { background: var(--wfs-green) !important; color: #fff !important; border-radius: var(--wfs-radius) var(--wfs-radius) 0 0 !important; }
.flatpickr-current-month, .flatpickr-monthDropdown-months { color: #fff !important; }
.flatpickr-weekday { color: var(--wfs-green) !important; font-weight: 700; }

/* ════════════════════════════════════════════════════════
   BUTTONS
════════════════════════════════════════════════════════ */
.wfs-form__footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}
.wfs-form__footer--split { justify-content: space-between; align-items: center; }

.wfs-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    border: none;
    text-decoration: none;
    transition: transform .15s, box-shadow .15s, background .2s;
    font-family: inherit;
}
.wfs-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.wfs-btn:active { transform: none; }

.wfs-btn--primary {
    background: var(--wfs-green);
    color: #fff;
}
.wfs-btn--primary:hover { background: var(--wfs-green-mid); color: #fff; }

.wfs-btn--lg { padding: 16px 36px; font-size: 16px; }

.wfs-btn--ghost {
    background: transparent;
    color: var(--wfs-muted);
    border: 1.5px solid var(--wfs-border);
}
.wfs-btn--ghost:hover { background: var(--wfs-bg); color: var(--wfs-text); }

.wfs-btn__arrow { font-size: 18px; }

/* Copy delivery button */
.wfs-copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--wfs-green-lt);
    border: 1.5px dashed var(--wfs-green-mid);
    color: var(--wfs-green-mid);
    border-radius: var(--wfs-radius-sm);
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    margin-bottom: 22px;
    transition: all .2s;
    font-family: inherit;
}
.wfs-copy-btn:hover, .wfs-copy-btn.done {
    background: var(--wfs-green-mid);
    color: #fff;
    border-style: solid;
}

/* ════════════════════════════════════════════════════════
   GIFTS GRID  (circular images like screenshot)
════════════════════════════════════════════════════════ */
.wfs-gifts__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
@media (max-width: 600px) { .wfs-gifts__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 380px) { .wfs-gifts__grid { grid-template-columns: 1fr 1fr; } }

.wfs-gift-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
    position: relative;
}

.wfs-gift-card__img-wrap {
    width: 120px; height: 120px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--wfs-bg);
    border: 2px solid var(--wfs-border);
    transition: border-color .2s;
    flex-shrink: 0;
}
.wfs-gift-card.in-cart .wfs-gift-card__img-wrap {
    border-color: var(--wfs-green-mid);
    box-shadow: 0 0 0 3px rgba(45,106,79,.15);
}
.wfs-gift-card__img-wrap img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .3s;
}
.wfs-gift-card:hover .wfs-gift-card__img-wrap img { transform: scale(1.05); }

.wfs-gift-card__name {
    font-size: 14px;
    font-weight: 600;
    color: var(--wfs-text);
    margin: 0;
    line-height: 1.3;
}
.wfs-gift-card__price {
    font-size: 13px;
    color: var(--wfs-muted);
    margin: 0;
}

.wfs-gift-card__btn {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 2px solid var(--wfs-green-mid);
    background: var(--wfs-white);
    color: var(--wfs-green-mid);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all .2s;
}
.wfs-gift-card__btn:hover,
.wfs-gift-card.in-cart .wfs-gift-card__btn {
    background: var(--wfs-green-mid);
    color: #fff;
}

/* ════════════════════════════════════════════════════════
   SUMMARY CARDS (step 3)
════════════════════════════════════════════════════════ */
.wfs-summary-card { padding: 0; overflow: hidden; }
.wfs-summary-card__head {
    display: flex; justify-content: space-between; align-items: center;
    background: var(--wfs-green-lt);
    padding: 14px 22px;
    font-weight: 700;
    font-size: 15px;
    color: var(--wfs-green);
}
.wfs-summary-card__edit {
    font-size: 13px;
    font-weight: 600;
    color: var(--wfs-green-mid);
    text-decoration: none;
    border: 1px solid var(--wfs-green-mid);
    border-radius: 4px;
    padding: 3px 10px;
    transition: background .2s;
}
.wfs-summary-card__edit:hover { background: var(--wfs-green-mid); color: #fff; }
.wfs-summary-card__body { padding: 18px 22px; }

.wfs-dl {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 6px 12px;
    margin: 0;
    font-size: 14px;
}
.wfs-dl dt { color: var(--wfs-muted); font-weight: 600; }
.wfs-dl dd { margin: 0; color: var(--wfs-text); }
@media (max-width: 480px) {
    .wfs-dl { grid-template-columns: 1fr; }
    .wfs-dl dt { margin-top: 4px; }
}

/* WC payment section */
.wfs-payment .woocommerce-checkout-review-order { margin-top: 0; }
.wfs-wc-form .woocommerce-checkout-payment { margin-top: 20px; }
.wfs-wc-form .woocommerce-checkout-payment .payment_methods { list-style: none; padding: 0; margin: 0 0 16px; }
.wfs-wc-form .woocommerce-checkout-payment .payment_methods li {
    border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
    padding: 14px 18px;
    margin-bottom: 10px;
    background: var(--wfs-bg);
    transition: border-color .2s;
}
.wfs-wc-form .woocommerce-checkout-payment .payment_methods li:has(input:checked) {
    border-color: var(--wfs-green-mid);
    background: var(--wfs-green-lt);
}
.wfs-wc-form #place_order {
    background: var(--wfs-green) !important;
    color: #fff !important;
    border-radius: 50px !important;
    padding: 16px 40px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    border: none !important;
    width: 100%;
    cursor: pointer;
    transition: background .2s, transform .15s !important;
}
.wfs-wc-form #place_order:hover {
    background: var(--wfs-green-mid) !important;
    transform: translateY(-1px);
}

/* ════════════════════════════════════════════════════════
   SIDEBAR
════════════════════════════════════════════════════════ */
/* sticky offset handled dynamically via inline style */
.wfs-sidebar__inner {
    background: var(--wfs-white);
    border: 1px solid var(--wfs-border);
    border-radius: var(--wfs-radius);
    overflow: hidden;
    box-shadow: var(--wfs-shadow);
}
.wfs-sidebar__title {
    font-size: 18px;
    font-weight: 700;
    padding: 20px 22px 14px;
    margin: 0;
    border-bottom: 1px solid var(--wfs-border);
    color: var(--wfs-text);
}

/* Delivery badge inside sidebar */
.wfs-delivery-badge {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--wfs-bg);
    padding: 14px 18px;
    border-bottom: 1px solid var(--wfs-border);
    font-size: 14px;
}
.wfs-delivery-badge__pin { font-size: 20px; margin-top: 1px; }
.wfs-delivery-badge__meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: var(--wfs-muted);
    font-size: 13px;
    margin-top: 4px;
}
.wfs-delivery-badge__meta span { display: flex; align-items: center; gap: 4px; }

/* Cart items */
.wfs-sidebar__items {
    padding: 14px 18px;
    border-bottom: 1px solid var(--wfs-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.wfs-sidebar__item {
    display: flex;
    align-items: center;
    gap: 12px;
}
.wfs-sidebar__item-img {
    width: 52px; height: 52px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
    border: 1px solid var(--wfs-border);
}
.wfs-sidebar__item-info {
    flex: 1;
    min-width: 0;
}
.wfs-sidebar__item-name {
    font-size: 13px;
    font-weight: 600;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wfs-sidebar__item-qty { font-size: 12px; color: var(--wfs-muted); }
.wfs-sidebar__item-price { font-size: 14px; font-weight: 700; white-space: nowrap; }

/* Totals */
.wfs-sidebar__totals {
    padding: 14px 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.wfs-sidebar__total-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: var(--wfs-muted);
}
.wfs-sidebar__total-row strong { color: var(--wfs-text); font-weight: 600; }
.wfs-free { color: #16a34a !important; font-weight: 700 !important; }
.wfs-sidebar__total-row--grand {
    border-top: 1px solid var(--wfs-border);
    padding-top: 10px;
    margin-top: 4px;
    font-size: 16px;
    color: var(--wfs-text);
    font-weight: 700;
}
.wfs-sidebar__total-row--grand strong { font-size: 18px; }
.wfs-sidebar__total-row--discount strong { color: #16a34a; font-weight: 700; }
.wfs-discount { color: #16a34a !important; }

/* ════════════════════════════════════════════════════════
   COUPON FORM (sidebar)
════════════════════════════════════════════════════════ */
.wfs-coupon { padding: 12px 18px; border-top: 1px dashed var(--wfs-border); }
.wfs-coupon__toggle {
    background: none; border: 0; padding: 0; cursor: pointer;
    color: var(--wfs-green-mid); font-weight: 600; font-size: 14px;
    text-align: left; width: 100%; font-family: inherit;
}
.wfs-coupon__toggle:hover { color: var(--wfs-green); text-decoration: underline; }
.wfs-coupon__form { display: flex; gap: 8px; margin-top: 10px; }
.wfs-coupon__form input {
    flex: 1; padding: 10px 12px; border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm); font-size: 14px; font-family: inherit;
    text-transform: uppercase; letter-spacing: .04em;
}
.wfs-coupon__form input:focus {
    outline: none; border-color: var(--wfs-green-mid);
    box-shadow: 0 0 0 3px rgba(45,106,79,.10);
}
.wfs-coupon__apply {
    padding: 10px 16px; background: var(--wfs-green); color: #fff;
    border: 0; border-radius: var(--wfs-radius-sm); font-weight: 600;
    cursor: pointer; font-family: inherit; font-size: 14px;
}
.wfs-coupon__apply:hover:not(:disabled) { background: var(--wfs-green-mid); }
.wfs-coupon__apply:disabled { opacity: .6; cursor: wait; }
.wfs-coupon__msg {
    margin-top: 8px; padding: 8px 12px; border-radius: 6px;
    font-size: 13px; line-height: 1.4;
}
.wfs-coupon__msg.err { background: #fee; color: #b00020; border: 1px solid #f5c2c7; }
.wfs-coupon__msg.ok  { background: #e8f5e9; color: #1b5e20; border: 1px solid #a5d6a7; }
.wfs-coupon__applied {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 12px; background: #f0f8f4; border: 1px solid #cce5d5;
    border-radius: 6px; margin-bottom: 6px; font-size: 14px;
}
.wfs-coupon__applied:last-child { margin-bottom: 0; }
.wfs-coupon__badge {
    display: inline-block; margin-left: 6px;
    background: #16a34a; color: #fff;
    padding: 2px 8px; border-radius: 12px; font-size: 11px; font-weight: 600;
}
.wfs-coupon__remove {
    background: none; border: 0; color: #888; font-size: 22px;
    line-height: 1; cursor: pointer; padding: 0 4px; width: 28px; height: 28px;
    border-radius: 50%; transition: background .2s, color .2s;
}
.wfs-coupon__remove:hover { background: #fee; color: #b00020; }

/* ════════════════════════════════════════════════════════
   FIELD ERROR HIGHLIGHT (toate step-urile)
════════════════════════════════════════════════════════ */
.wfs-field-error,
input.wfs-field-error,
select.wfs-field-error,
textarea.wfs-field-error {
    border-color: #d32f2f !important;
    box-shadow: 0 0 0 3px rgba(211, 47, 47, 0.12) !important;
}
.wfs-field-error:focus { outline: none; }

/* ════════════════════════════════════════════════════════
   BACS — Beneficiar (injectat prin JS ca <li> uniform cu Banca/IBAN/BIC)
════════════════════════════════════════════════════════ */
/* Convenție WC: label-ul (text plain) e DARK, valoarea (în <strong>) e MUTED.
   Structura noastră injectată e invers (label-ul în <strong>, valoarea text plain),
   așa că INVERSAM culorile cu override specific — vizual să match-uiască WC native:
   „Beneficiar:" DARK, „Gloriosa Boutique SRL" MUTED. */
.wfs-bacs-card li.wfs_beneficiar {
    color: var(--wfs-muted);
}
.wfs-bacs-card li.wfs_beneficiar strong {
    display: inline !important;
    min-width: 0 !important;
    padding: 0;
    color: var(--wfs-text) !important;
    font-weight: 600;
    margin-right: 4px;
}

/* Fallback block — apare DOAR dacă markup-ul WC s-a schimbat și injecția în <ul> a eșuat.
   Stilizat ca un BACS list item — același padding + border-left + culori. */
.wfs-bacs-beneficiar-fallback {
    padding: 10px 14px;
    background: var(--wfs-bg);
    border-left: 3px solid var(--wfs-green);
    border-radius: var(--wfs-radius-sm);
    margin-bottom: 12px;
    font-size: 14px;
    color: var(--wfs-text);
}
.wfs-bacs-beneficiar-fallback__label {
    display: inline-block;
    min-width: 80px;
    color: var(--wfs-muted);
    font-weight: 500;
    margin-right: 4px;
}
.wfs-bacs-beneficiar-fallback strong { font-weight: 500; color: var(--wfs-text); }

/* ════════════════════════════════════════════════════════
   BACS — total + detalii transfer (în cardul „Detalii plată") — uniform cu Banca/IBAN/BIC
════════════════════════════════════════════════════════ */
.wfs-bacs-total {
    margin: 12px 0 0;
    padding: 10px 14px;
    background: var(--wfs-bg);
    border-radius: var(--wfs-radius-sm);
    border-left: 3px solid var(--wfs-green);
    font-size: 14px;
    color: var(--wfs-text);
}
/* Reset explicit pe strong — anulează inline-block + min-width din regula generală
   .wfs-bacs-card .wc-bacs-bank-details strong (care prinde și `.wfs-bacs-card` părinte,
   chiar dacă suntem în afara listei BACS). Culori match cu BACS native: label DARK,
   valoare LIGHT (muted) — convenția de pe pagina de mulțumire BACS.  */
.wfs-bacs-card .wfs-bacs-total strong,
.wfs-bacs-total strong {
    display: inline !important;
    min-width: 0 !important;
    padding: 0;
    color: var(--wfs-text);
    font-weight: 600;
    margin-right: 6px;
}
.wfs-bacs-total {
    color: var(--wfs-muted);
}
.wfs-bacs-total .woocommerce-Price-amount {
    display: inline;
    color: var(--wfs-muted);
    font-weight: 500;
}

/* Step4 — spațiere consistentă între carduri */
.wfs-layout__body--thankyou .wfs-main > .wfs-summary-card {
    margin-bottom: 22px;
}
.wfs-layout__body--thankyou .wfs-main > .wfs-summary-card:last-of-type {
    margin-bottom: 0;
}

/* ════════════════════════════════════════════════════════
   BACS bank details — în cardul „Detalii plată" pe step4
════════════════════════════════════════════════════════ */
.wfs-bacs-card .wc-bacs-bank-details-heading,
.wfs-bacs-card h2 {
    margin: 0 0 12px;
    padding-bottom: 8px;
    font-size: 15px;
    font-weight: 600;
    color: var(--wfs-green);
    border-bottom: 1px solid var(--wfs-border);
}
.wfs-bacs-card .wc-bacs-bank-details,
.wfs-bacs-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.wfs-bacs-card .wc-bacs-bank-details > li {
    margin: 0 0 12px;
    padding: 10px 14px;
    background: var(--wfs-bg);
    border-radius: var(--wfs-radius-sm);
    border-left: 3px solid var(--wfs-green);
}
.wfs-bacs-card .wc-bacs-bank-details > li:last-child { margin-bottom: 0; }
.wfs-bacs-card .wc-bacs-bank-details > li > ul {
    margin: 6px 0 0;
}
.wfs-bacs-card .wc-bacs-bank-details > li > ul > li {
    padding: 2px 0;
    font-size: 14px;
    color: var(--wfs-text);
}
.wfs-bacs-card .wc-bacs-bank-details strong {
    display: inline-block;
    min-width: 80px;
    color: var(--wfs-muted);
    font-weight: 500;
}
/* .wfs-bacs-note eliminat în v1.15.16 — înlocuit cu un al doilea .wfs-bacs-total
   pentru „Detalii transfer: Comanda <id>" (uniform cu rândul Suma). */

/* ════════════════════════════════════════════════════════
   PAYMENT METHOD CARDS (step3) — desktop 16:9 cards, mobile full-width row
════════════════════════════════════════════════════════ */
.wfs-payment .wc_payment_methods,
.wfs-payment ul.payment_methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 18px !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
    gap: 14px !important;
}
.wfs-payment .wc_payment_methods > li,
.wfs-payment ul.payment_methods > li {
    margin: 0 !important;
    padding: 18px 14px !important;
    background: var(--wfs-white) !important;
    border: 2px solid var(--wfs-border) !important;
    border-radius: 14px !important;
    cursor: pointer;
    transition: border-color .18s, background .18s, box-shadow .18s, transform .18s;
    position: relative;
    aspect-ratio: 16 / 9;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 120px;
    /* Brand color propagat în iconul ::before — vezi mask-image mai jos */
    color: var(--wfs-muted);
}
.wfs-payment .wc_payment_methods > li:hover,
.wfs-payment ul.payment_methods > li:hover {
    border-color: var(--wfs-green-mid);
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
}
.wfs-payment .wc_payment_methods > li.payment-method-selected,
.wfs-payment ul.payment_methods > li.payment-method-selected {
    border-color: var(--wfs-green) !important;
    background: var(--wfs-bg) !important;
    box-shadow: 0 0 0 3px rgba(45, 106, 79, .10) !important;
    color: var(--wfs-green);
}
/* Hide radio inputs visually — keep functional */
.wfs-payment .wc_payment_methods > li > input[type="radio"],
.wfs-payment ul.payment_methods > li > input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
}
/* Main label per card */
.wfs-payment .wc_payment_methods > li > label,
.wfs-payment ul.payment_methods > li > label {
    display: block !important;
    text-align: center !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    color: var(--wfs-text) !important;
    cursor: pointer;
    line-height: 1.25;
    padding: 0 !important;
    margin: 0 !important;
}
/* Description below label — populated by JS from .payment_box first <p> */
.wfs-payment-desc {
    font-size: 12px;
    color: var(--wfs-muted);
    line-height: 1.35;
    text-align: center;
    margin-top: 2px;
    max-width: 100%;
    /* Limit to 2 lines on desktop */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* Hide gateway logo images AND description boxes (we copy text via JS) */
.wfs-payment .wc_payment_methods > li img,
.wfs-payment ul.payment_methods > li img,
.wfs-payment .wc_payment_methods .payment_box {
    display: none !important;
}
/* Icons via mask-image — colored via background-color (inherits via currentColor on color prop) */
.wfs-payment .wc_payment_methods > li::before {
    content: '';
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    transition: background-color .18s;
}
/* COD / Ramburs — wallet/banknote icon (mai clar bani decât receipt) */
.wfs-payment .wc_payment_methods > li.payment_method_cod::before,
.wfs-payment .wc_payment_methods > li[class*="cod_"]::before,
.wfs-payment .wc_payment_methods > li[class*="cash"]::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/><path d='M3 5v14a2 2 0 0 0 2 2h16v-5'/><path d='M18 12a2 2 0 0 0 0 4h4v-4z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/><path d='M3 5v14a2 2 0 0 0 2 2h16v-5'/><path d='M18 12a2 2 0 0 0 0 4h4v-4z'/></svg>");
}
/* BACS / OP / Transfer bancar — bank/columns icon */
.wfs-payment .wc_payment_methods > li.payment_method_bacs::before,
.wfs-payment .wc_payment_methods > li[class*="bacs"]::before,
.wfs-payment .wc_payment_methods > li[class*="bank_transfer"]::before,
.wfs-payment .wc_payment_methods > li[class*="op_"]::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10l9-6 9 6'/><path d='M5 10v8M9 10v8M15 10v8M19 10v8'/><path d='M3 21h18'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10l9-6 9 6'/><path d='M5 10v8M9 10v8M15 10v8M19 10v8'/><path d='M3 21h18'/></svg>");
}
/* Card payments — credit card icon */
.wfs-payment .wc_payment_methods > li[class*="stripe"]::before,
.wfs-payment .wc_payment_methods > li[class*="netopia"]::before,
.wfs-payment .wc_payment_methods > li[class*="mobilpay"]::before,
.wfs-payment .wc_payment_methods > li[class*="card"]::before,
.wfs-payment .wc_payment_methods > li[class*="euplatesc"]::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='5' width='20' height='14' rx='2'/><path d='M2 10h20'/><path d='M6 15h4'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='5' width='20' height='14' rx='2'/><path d='M2 10h20'/><path d='M6 15h4'/></svg>");
}
/* PayPal — wallet round icon */
.wfs-payment .wc_payment_methods > li[class*="paypal"]::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3'/><path d='M21 12h-4a2 2 0 0 0 0 4h4z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3'/><path d='M21 12h-4a2 2 0 0 0 0 4h4z'/></svg>");
}
/* Cheque — doc icon */
.wfs-payment .wc_payment_methods > li.payment_method_cheque::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><path d='M8 13h8M8 17h6'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><path d='M8 13h8M8 17h6'/></svg>");
}
/* Mobile — 100% width, row layout (icon stânga, title+desc dreapta) */
@media (max-width: 640px) {
    .wfs-payment .wc_payment_methods,
    .wfs-payment ul.payment_methods {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    .wfs-payment .wc_payment_methods > li,
    .wfs-payment ul.payment_methods > li {
        aspect-ratio: auto !important;
        min-height: 0 !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 14px !important;
        padding: 14px 16px !important;
        text-align: left !important;
    }
    .wfs-payment .wc_payment_methods > li::before {
        width: 32px;
        height: 32px;
    }
    .wfs-payment .wc_payment_methods > li > label {
        text-align: left !important;
        flex: 1;
    }
    .wfs-payment-desc {
        text-align: left;
        margin-top: 3px;
    }
}

/* ════════════════════════════════════════════════════════
   PICKUP AT SHOP — toggle + card (step1)
════════════════════════════════════════════════════════ */
.wfs-pickup-toggle-section { padding: 18px 22px; }
.wfs-pickup-toggle {
    display: flex; gap: 12px; align-items: flex-start;
    cursor: pointer; padding: 0;
}
.wfs-pickup-toggle input[type="checkbox"] {
    margin-top: 4px; width: 20px; height: 20px;
    min-width: 20px; flex-shrink: 0; cursor: pointer;
    accent-color: var(--wfs-green);
}
.wfs-pickup-toggle__text { display: flex; flex-direction: column; gap: 4px; line-height: 1.4; }
.wfs-pickup-toggle__text strong { font-size: 16px; color: var(--wfs-text); font-weight: 600; }
.wfs-pickup-toggle__text small { font-size: 13px; color: var(--wfs-muted); }

.wfs-pickup-card { display: flex; flex-direction: column; gap: 16px; }
.wfs-pickup-card__addr {
    display: flex; gap: 10px; align-items: center;
    font-size: 16px; padding: 12px 16px;
    background: var(--wfs-bg); border-radius: var(--wfs-radius-sm);
    border-left: 4px solid var(--wfs-green);
}
.wfs-pickup-card__pin { font-size: 22px; }
.wfs-pickup-card__map iframe { border: 1px solid var(--wfs-border); }
.wfs-pickup-card__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.wfs-pickup-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 18px;
    background: #fff;
    border: 1.5px solid #e0e0e0;
    border-radius: 10px;
    color: #1f1f1f;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
    transition: border-color .18s, box-shadow .18s, transform .18s, background .18s;
}
.wfs-pickup-card__btn:hover,
.wfs-pickup-card__btn:focus-visible {
    background: #fafafa;
    border-color: #c0c0c0;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
    transform: translateY(-1px);
    text-decoration: none !important;
}
.wfs-pickup-card__btn:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(0,0,0,.06); }
.wfs-pickup-card__btn--gmaps:hover { border-color: #4285F4; }
.wfs-pickup-card__btn--waze:hover  { border-color: #33CCFF; }
.wfs-pickup-card__icon { flex-shrink: 0; }
@media (max-width: 480px) {
    .wfs-pickup-card__actions { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════
   AGE GATE — checkbox la checkout (step3)
════════════════════════════════════════════════════════ */
.wfs-age-checkout { margin: 16px 0; padding: 14px 16px; background: #fff8e6; border: 1.5px solid #f0c674; border-radius: 10px; }
.wfs-age-checkout__label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; font-size: 14px; line-height: 1.5; color: #333; }
.wfs-age-checkout__label input[type="checkbox"] { margin-top: 2px; width: 18px; height: 18px; min-width: 18px; flex-shrink: 0; cursor: pointer; }
.wfs-age-checkout .required { color: #d32f2f; }

/* ════════════════════════════════════════════════════════
   FACTURĂ PE FIRMĂ (step2) — inline între Prenume/Nume și Telefon/Email
════════════════════════════════════════════════════════ */
.wfs-invoice-toggle {
    display: flex; gap: 10px; align-items: center;
    cursor: pointer; margin: 4px 0 16px; padding: 0;
}
.wfs-invoice-toggle input[type="checkbox"] {
    width: 18px; height: 18px; min-width: 18px;
    flex-shrink: 0; cursor: pointer; margin: 0;
}
.wfs-invoice-toggle__text { line-height: 1.3; }
.wfs-invoice-toggle__text strong { font-size: 15px; color: var(--wfs-text); font-weight: 600; }

.wfs-invoice-fields { margin-bottom: 16px; }

.wfs-anaf-input-row { display: flex; gap: 8px; }
.wfs-anaf-input-row input { flex: 1; }
.wfs-anaf-btn {
    padding: 12px 16px !important;
    white-space: nowrap; flex-shrink: 0;
    background: var(--wfs-green-mid); color: #fff !important;
    border-color: var(--wfs-green-mid) !important;
}
.wfs-anaf-btn:hover:not(:disabled) { background: var(--wfs-green) !important; }
.wfs-anaf-btn:disabled { opacity: .6; cursor: wait; }

.wfs-anaf-status { margin-top: 6px; font-size: 13px; line-height: 1.4; min-height: 18px; }
.wfs-anaf-status--ok { color: #16a34a; font-weight: 600; }
.wfs-anaf-status--err { color: #d32f2f; font-weight: 600; }
.wfs-anaf-status--loading { color: var(--wfs-muted); font-style: italic; }

@media (max-width: 640px) {
    .wfs-anaf-input-row { flex-direction: column; }
    .wfs-anaf-btn { width: 100%; }
}

/* empty cart */
.wfs-empty-cart {
    background: var(--wfs-white);
    border: 1px solid var(--wfs-border);
    border-radius: var(--wfs-radius);
    padding: 40px;
    text-align: center;
    font-size: 16px;
}
.wfs-empty-cart a { color: var(--wfs-green-mid); text-decoration: underline; }

/* ════════════════════════════════════════════════════════
   PATCH v1.1 — Error notices, step bar links, date format
════════════════════════════════════════════════════════ */

/* Error notices — dark red bg, white text, proper padding */
.woocommerce-notices-wrapper .woocommerce-error,
.wfs-layout .woocommerce-error {
    background: #8b1a1a !important;
    border-left: none !important;
    color: #fff !important;
    padding: 12px 16px 12px 44px !important;
    border-radius: var(--wfs-radius-sm) !important;
    margin-bottom: 20px !important;
    list-style: none !important;
    position: relative;
}
.woocommerce-notices-wrapper .woocommerce-error::before,
.wfs-layout .woocommerce-error::before {
    content: '⚠';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
}
.woocommerce-notices-wrapper .woocommerce-error li,
.wfs-layout .woocommerce-error li {
    color: #fff !important;
    padding-left: 0 !important;
    list-style: none !important;
}
.woocommerce-notices-wrapper .woocommerce-error a,
.wfs-layout .woocommerce-error a { color: #ffd0d0; text-decoration: underline; }

/* Step bar — link styling for completed steps */
a.wfs-step-bar__item.wfs-step-bar__link {
    text-decoration: none;
    cursor: pointer;
    transition: opacity .2s;
}
a.wfs-step-bar__item.wfs-step-bar__link:hover { opacity: .75; }
a.wfs-step-bar__item.wfs-step-bar__link:hover .wfs-step-bar__bubble {
    box-shadow: 0 0 0 3px rgba(45,106,79,.2);
}

/* Gift add spinner feedback */
.wfs-gift-card__btn.loading {
    opacity: .5;
    pointer-events: none;
}

/* ════════════════════════════════════════════════════════
   PATCH v1.0.4 — Billing header, copy btn, field rows
════════════════════════════════════════════════════════ */

/* Billing header with copy btn inline */
.wfs-billing-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}
.wfs-billing-header .wfs-section__title {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}
.wfs-divider {
    border: none;
    border-top: 1px solid var(--wfs-border);
    margin: 0 0 20px !important;
}

/* Copy btn — refined, no layout overlap */
.wfs-copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--wfs-green-lt);
    border: 1.5px dashed var(--wfs-green-mid);
    color: var(--wfs-green-mid);
    border-radius: var(--wfs-radius-sm);
    padding: 9px 16px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all .2s;
    font-family: inherit;
    flex-shrink: 0;
}
.wfs-copy-btn__icon { font-size: 15px; line-height: 1; }
.wfs-copy-btn:hover, .wfs-copy-btn.done {
    background: var(--wfs-green-mid);
    color: #fff;
    border-style: solid;
}

/* WC fields rendered inside .wfs-row--2col — make them full width inside their cell */
.wfs-row--2col .form-row,
.wfs-row--2col p.form-row {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
}
.wfs-row--2col .form-row label {
    font-size: 13px;
    font-weight: 600;
    color: var(--wfs-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    display: block;
    margin-bottom: 6px;
}
.wfs-row--2col .form-row input,
.wfs-row--2col .form-row select {
    width: 100% !important;
    padding: 12px 14px !important;
    border: 1.5px solid var(--wfs-border) !important;
    border-radius: var(--wfs-radius-sm) !important;
    font-size: 15px !important;
    background: var(--wfs-bg) !important;
    box-sizing: border-box !important;
}
.wfs-row--2col .form-row input:focus,
.wfs-row--2col .form-row select:focus {
    border-color: var(--wfs-green-mid) !important;
    box-shadow: 0 0 0 3px rgba(45,106,79,.10) !important;
    outline: none !important;
    background: var(--wfs-white) !important;
}

/* WC fields outside .wfs-row--2col — also style nicely */
.wfs-section .form-row,
.wfs-section p.form-row {
    margin-bottom: 16px !important;
    padding: 0 !important;
    float: none !important;
    width: 100% !important;
    clear: both;
}
.wfs-section .form-row label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--wfs-muted) !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    display: block !important;
    margin-bottom: 6px !important;
}
.wfs-section .form-row input[type="text"],
.wfs-section .form-row input[type="email"],
.wfs-section .form-row input[type="tel"],
.wfs-section .form-row select {
    width: 100% !important;
    padding: 12px 14px !important;
    border: 1.5px solid var(--wfs-border) !important;
    border-radius: var(--wfs-radius-sm) !important;
    font-size: 15px !important;
    color: var(--wfs-text) !important;
    background: var(--wfs-bg) !important;
    font-family: inherit !important;
    box-sizing: border-box !important;
    transition: border-color .2s, box-shadow .2s !important;
}
.wfs-section .form-row input:focus,
.wfs-section .form-row select:focus {
    border-color: var(--wfs-green-mid) !important;
    box-shadow: 0 0 0 3px rgba(45,106,79,.10) !important;
    outline: none !important;
    background: var(--wfs-white) !important;
}
.wfs-section .form-row.woocommerce-invalid input,
.wfs-section .form-row.woocommerce-invalid select {
    border-color: var(--wfs-error) !important;
}
/* Required star */
.wfs-section .form-row label abbr {
    color: var(--wfs-error);
    text-decoration: none;
    margin-left: 2px;
}

/* #wfs-sidebar-wrap sticky handled dynamically */

/* ════════════════════════════════════════════════════════
   PATCH v1.0.7 — Step 3: hide WC billing/shipping form,
   keep payment methods fully visible
════════════════════════════════════════════════════════ */

/* Hide WC billing fields section (we show our own summary) */
.wfs-wc-checkout-wrap .woocommerce-billing-fields,
.wfs-wc-checkout-wrap .woocommerce-shipping-fields,
.wfs-wc-checkout-wrap .woocommerce-account-fields,
.wfs-wc-checkout-wrap #customer_details,
.wfs-wc-checkout-wrap .col-1,
.wfs-wc-checkout-wrap .col-2 {
    display: none !important;
}

/* Show ONLY the order review + payment section */
.wfs-wc-checkout-wrap #order_review,
.wfs-wc-checkout-wrap #order_review_heading,
.wfs-wc-checkout-wrap .woocommerce-checkout-review-order,
.wfs-wc-checkout-wrap .woocommerce-checkout-payment {
    display: block !important;
}

/* Style the WC payment section nicely */
.wfs-wc-checkout-wrap .woocommerce-checkout-review-order-table {
    display: none; /* Already shown in our sidebar */
}

.wfs-wc-checkout-wrap .woocommerce-checkout-payment {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.wfs-wc-checkout-wrap .woocommerce-checkout-payment .payment_methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 20px !important;
    border: none !important;
}

.wfs-wc-checkout-wrap .woocommerce-checkout-payment .payment_methods li {
    border: 1.5px solid var(--wfs-border) !important;
    border-radius: var(--wfs-radius-sm) !important;
    padding: 14px 18px !important;
    margin-bottom: 10px !important;
    background: var(--wfs-bg) !important;
    transition: border-color .2s, background .2s !important;
    list-style: none !important;
}

.wfs-wc-checkout-wrap .woocommerce-checkout-payment .payment_methods li.payment_method_selected,
.wfs-wc-checkout-wrap .woocommerce-checkout-payment .payment_methods li:has(input:checked) {
    border-color: var(--wfs-green-mid) !important;
    background: var(--wfs-green-lt) !important;
}

.wfs-wc-checkout-wrap .woocommerce-checkout-payment .payment_methods label {
    font-weight: 600 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 15px !important;
    color: var(--wfs-text) !important;
}

.wfs-wc-checkout-wrap .payment_box {
    background: transparent !important;
    padding: 10px 0 0 28px !important;
    font-size: 14px !important;
    color: var(--wfs-muted) !important;
    border: none !important;
}
.wfs-wc-checkout-wrap .payment_box::before { display: none !important; }

/* Place order button */
.wfs-wc-checkout-wrap #place_order {
    background: var(--wfs-green) !important;
    color: #fff !important;
    border-radius: 50px !important;
    padding: 16px 40px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    border: none !important;
    width: 100% !important;
    cursor: pointer !important;
    transition: background .2s, transform .15s !important;
    font-family: inherit !important;
    margin-top: 10px !important;
}
.wfs-wc-checkout-wrap #place_order:hover {
    background: var(--wfs-green-mid) !important;
    transform: translateY(-1px) !important;
}

/* WC notices inside checkout wrap */
.wfs-wc-checkout-wrap .woocommerce-error {
    background: #8b1a1a !important;
    color: #fff !important;
    padding: 12px 16px 12px 44px !important;
    border-radius: var(--wfs-radius-sm) !important;
    margin-bottom: 20px !important;
    list-style: none !important;
    position: relative !important;
    border-left: none !important;
}
.wfs-wc-checkout-wrap .woocommerce-error::before {
    content: '⚠';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
}

/* ════════════════════════════════════════════════════════
   PATCH v1.1.1
════════════════════════════════════════════════════════ */

/* ── Universal checkbox fix for ALL checkboxes in plugin scope ──
 * Handles: T&C, "Ține-mă minte", "Creează cont", create-account
 * Root cause: themes use opacity:0 + ::before pseudo on label to fake checkbox
 * Fix: force native checkbox visible + clickable, kill pseudo-elements
 */
.wfs-layout input[type="checkbox"],
.wfs-wc-login-section input[type="checkbox"],
.wfs-wc-checkout-wrap input[type="checkbox"],
.wfs-create-account-wrap input[type="checkbox"] {
    /* Force visibility — override ALL theme hiding patterns */
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 10 !important;
    /* Size */
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    /* Reset positioning */
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    clip: auto !important;
    clip-path: none !important;
    /* Appearance */
    -webkit-appearance: checkbox !important;
    appearance: checkbox !important;
    accent-color: var(--wfs-green) !important;
    margin: 2px 6px 0 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    float: none !important;
}

/* Kill any pseudo-elements on labels that overlay/replace the checkbox */
.wfs-layout label::before,
.wfs-layout label::after,
.wfs-wc-login-section label::before,
.wfs-wc-login-section label::after,
.wfs-wc-checkout-wrap .woocommerce-form__label-for-checkbox::before,
.wfs-wc-checkout-wrap .woocommerce-form__label-for-checkbox::after,
.wfs-wc-checkout-wrap .woocommerce-terms-and-conditions-wrapper label::before,
.wfs-wc-checkout-wrap .woocommerce-terms-and-conditions-wrapper label::after {
    display: none !important;
    content: none !important;
}

/* Labels with checkboxes — make entire label clickable */
.wfs-wc-checkout-wrap .woocommerce-form__label-for-checkbox,
.wfs-wc-login-section .woocommerce-form__label-for-checkbox,
.wfs-wc-checkout-wrap .woocommerce-terms-and-conditions-wrapper label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    cursor: pointer !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    user-select: none !important;
}

/* ── Theme-aware styling: use theme styles by default, fallback to ours ── */

/*
 * THEME DETECTION STRATEGY:
 * We wrap our checkout in .wfs-wc-checkout-wrap but intentionally do NOT
 * override the theme's payment method styles when a theme is active,
 * so the checkout looks native to the theme.
 * We only apply our own styles when the theme doesn't provide them.
 */

/* Only apply our payment styling if the theme hasn't already styled it */
.wfs-wc-checkout-wrap .woocommerce-checkout-payment .payment_methods:not([class*="theme-"]) li {
    border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
    padding: 14px 18px;
    margin-bottom: 10px;
    background: var(--wfs-bg);
    list-style: none;
    transition: border-color .2s, background .2s;
}

/* ── Custom styled checkbox (only when theme doesn't provide custom checkboxes) ── */
/*
 * Strategy: use a custom checkbox that inherits the theme's accent color via
 * CSS custom property --theme-primary (set by most themes).
 * Falls back to our green if the theme doesn't define it.
 */
:root {
    --wfs-checkbox-color: var(--theme-primary, var(--wfs-green));
}

/* Wrapper approach: hide native + show custom visual */
.wfs-wc-checkout-wrap .woocommerce-form__label-for-checkbox {
    position: relative !important;
}

/* Keep native checkbox functional but visually replaced */
.wfs-terms-checkbox-wrap {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    padding: 14px 16px;
    background: var(--wfs-bg);
    border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
    margin-bottom: 16px;
    transition: border-color .2s, background .2s;
}
.wfs-terms-checkbox-wrap:has(input:checked) {
    border-color: var(--wfs-checkbox-color);
    background: var(--wfs-green-lt);
}
.wfs-terms-checkbox-wrap input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    margin: 1px 0 0 !important;
    accent-color: var(--wfs-checkbox-color) !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}
.wfs-terms-checkbox-wrap .wfs-terms-text {
    font-size: 14px;
    color: var(--wfs-muted);
    line-height: 1.5;
}
.wfs-terms-checkbox-wrap .wfs-terms-text a {
    color: var(--wfs-green-mid);
    text-decoration: underline;
}

/* ════════════════════════════════════════════════════════
   PATCH v1.1.2 — Fix T&C checkbox click (theme override)
════════════════════════════════════════════════════════ */

/*
 * Many themes (Astra, OceanWP, Flatsome etc.) hide the native checkbox
 * with opacity:0 / visibility:hidden / pointer-events:none and replace it
 * with a ::before pseudo-element on the label. This breaks our click fix.
 * We force the native checkbox to be on top and fully interactive.
 */
.wfs-wc-checkout-wrap .woocommerce-terms-and-conditions-wrapper input[type="checkbox"],
.wfs-wc-checkout-wrap #terms,
.wfs-terms-checkbox-wrap input[type="checkbox"] {
    /* Override ALL theme attempts to hide/disable the checkbox */
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 99 !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    clip: auto !important;
    clip-path: none !important;
    margin: 2px 8px 0 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    accent-color: var(--wfs-green) !important;
    /* Remove any theme ::before/::after that might cover it */
    -webkit-appearance: checkbox !important;
    appearance: checkbox !important;
}

/* Also ensure the label itself doesn't have a pseudo-element blocking the checkbox area */
.wfs-terms-checkbox-wrap label::before,
.wfs-terms-checkbox-wrap label::after,
.wfs-wc-checkout-wrap .woocommerce-form__label-for-checkbox::before,
.wfs-wc-checkout-wrap .woocommerce-form__label-for-checkbox::after {
    display: none !important;
}

/* ════════════════════════════════════════════════════════
   v1.2.0 — Thank you page, auth section, gifts grid fix
════════════════════════════════════════════════════════ */

/* ── Thank you hero ── */
.wfs-ty-hero {
    text-align: center;
    padding: 48px 20px 32px;
}
.wfs-ty-hero__icon { font-size: 3.5rem; margin-bottom: 12px; }
.wfs-ty-hero__title {
    font-size: 2rem;
    font-weight: 800;
    color: var(--wfs-green);
    margin: 0 0 10px;
}
.wfs-ty-hero__sub {
    font-size: 1.05rem;
    color: var(--wfs-muted);
    margin: 0 0 16px;
}
.wfs-ty-hero__order-num {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--wfs-green-lt);
    border: 1px solid #b7d9c5;
    border-radius: 50px;
    padding: 8px 20px;
    font-size: 15px;
    color: var(--wfs-green);
}
.wfs-ty-status {
    background: var(--wfs-green-mid);
    color: #fff;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* Thank you layout — wider, no sidebar */
.wfs-layout__body--thankyou {
    grid-template-columns: 1fr !important;
    max-width: 680px;
    margin: 0 auto;
}

/* Order items in thank-you */
.wfs-ty-items { padding: 0 !important; }
.wfs-ty-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 22px;
    border-bottom: 1px solid var(--wfs-border);
}
.wfs-ty-item:last-of-type { border-bottom: none; }
.wfs-ty-item__img {
    width: 56px; height: 56px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid var(--wfs-border);
    flex-shrink: 0;
}
.wfs-ty-item__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
}
.wfs-ty-item__info span { color: var(--wfs-muted); font-size: 13px; }
.wfs-ty-item__price { font-weight: 700; font-size: 15px; white-space: nowrap; }

.wfs-ty-totals {
    padding: 14px 22px;
    background: var(--wfs-bg);
    border-top: 2px solid var(--wfs-border);
}
.wfs-ty-total-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: var(--wfs-muted);
    padding: 4px 0;
}
.wfs-ty-total-row--grand {
    font-size: 17px;
    font-weight: 800;
    color: var(--wfs-text);
    border-top: 1px solid var(--wfs-border);
    margin-top: 8px;
    padding-top: 10px;
}

.wfs-ty-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.wfs-ty-no-order { text-align: center; padding: 40px; color: var(--wfs-muted); }

/* ── Gifts grid — max 6, responsive ── */
.wfs-gifts__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);  /* desktop: 3 per row = max 6 in 2 rows */
    gap: 20px;
}
@media (max-width: 768px) {
    .wfs-gifts__grid { grid-template-columns: repeat(2, 1fr); } /* tablet: 2 */
}
@media (max-width: 480px) {
    .wfs-gifts__grid { grid-template-columns: repeat(2, 1fr); } /* mobile: 2 */
}

/* ── Auth section ── */
.wfs-auth-section { padding: 20px 28px; }
.wfs-auth-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 2px solid var(--wfs-border);
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.wfs-auth-tab {
    background: transparent;
    border: none;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--wfs-muted);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color .2s, border-color .2s;
    font-family: inherit;
}
.wfs-auth-tab.active, .wfs-auth-tab:hover {
    color: var(--wfs-green);
    border-bottom-color: var(--wfs-green);
}
.wfs-auth-panel { display: none; }
.wfs-auth-panel.active { display: block; }
.wfs-auth-hint { font-size: 13px; color: var(--wfs-muted); margin: 0; }
.wfs-auth-ok { color: var(--wfs-green-mid); font-weight: 600; font-size: 14px; margin-bottom: 12px; }
.wfs-auth-err { color: var(--wfs-error); font-size: 14px; margin-bottom: 12px; }

.wfs-auth-logged {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 22px;
    font-size: 14px;
    color: var(--wfs-muted);
}
.wfs-auth-logged__logout {
    margin-left: auto;
    color: var(--wfs-error);
    font-size: 13px;
    text-decoration: underline;
}

/* ── Create account checkbox ── */
.wfs-create-account-wrap {
    margin-bottom: 20px;
    padding: 14px 16px;
    background: var(--wfs-bg);
    border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
}
.wfs-create-account-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: var(--wfs-text);
}
.wfs-create-account-label input[type="checkbox"] {
    width: 18px; height: 18px;
    accent-color: var(--wfs-green);
    cursor: pointer;
    flex-shrink: 0;
}

/* ════════════════════════════════════════════════════════
   v1.2.2 — Preia din ultima comandă
════════════════════════════════════════════════════════ */

/* Delivery header row */
.wfs-delivery-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}
.wfs-delivery-header .wfs-section__title {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

/* Button */
.wfs-last-order-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: transparent;
    border: 1.5px dashed var(--wfs-green-mid);
    color: var(--wfs-green-mid);
    border-radius: var(--wfs-radius-sm);
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all .2s;
    font-family: inherit;
    flex-shrink: 0;
}
.wfs-last-order-btn:hover {
    background: var(--wfs-green-mid);
    color: #fff;
    border-style: solid;
}
.wfs-last-order-btn:disabled {
    opacity: .6;
    cursor: not-allowed;
}
.wfs-last-order-btn__icon { font-size: 14px; }

/* Info bar */
.wfs-last-order-bar {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border-radius: var(--wfs-radius-sm);
    padding: 12px 14px;
    font-size: 13px;
    margin-bottom: 18px;
    line-height: 1.5;
}
.wfs-last-order-bar[data-type="success"] {
    background: var(--wfs-green-lt);
    border: 1px solid #b7d9c5;
    color: var(--wfs-green);
}
.wfs-last-order-bar[data-type="error"] {
    background: #fff0f0;
    border: 1px solid #f5c0c0;
    color: #a33;
}
.wfs-last-order-bar__icon { font-size: 16px; flex-shrink: 0; margin-top: 1px; }
.wfs-last-order-bar__close {
    margin-left: auto;
    background: transparent;
    border: none;
    font-size: 14px;
    cursor: pointer;
    color: inherit;
    opacity: .6;
    padding: 0 4px;
    flex-shrink: 0;
    line-height: 1;
}
.wfs-last-order-bar__close:hover { opacity: 1; }

/* ════════════════════════════════════════════════════════
   v1.2.3 — Login section step1, create account step2
════════════════════════════════════════════════════════ */

/* WC login section in step1 */
.wfs-wc-login-section {
    padding: 16px 22px;
    background: var(--wfs-bg);
    border: 1px solid var(--wfs-border);
    border-radius: var(--wfs-radius);
    margin-bottom: 20px;
    font-size: 14px;
    color: var(--wfs-muted);
}
.wfs-wc-login-section .showlogin {
    color: var(--wfs-green-mid);
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}
.wfs-wc-login-section .showlogin:hover { text-decoration: underline; }
/* Style the WC login form inside our wrapper */
.wfs-wc-login-wrap .woocommerce-form-login { background: transparent !important; border: none !important; padding: 0 !important; }
.wfs-wc-login-wrap p { margin-bottom: 12px !important; }
.wfs-wc-login-wrap label { font-size: 13px; font-weight: 600; color: var(--wfs-muted); text-transform: uppercase; letter-spacing: .04em; display: block; margin-bottom: 5px; }
.wfs-wc-login-wrap input[type="text"],
.wfs-wc-login-wrap input[type="password"],
.wfs-wc-login-wrap input[type="email"] {
    width: 100%; padding: 11px 14px;
    border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
    font-size: 15px; background: var(--wfs-white);
    font-family: inherit;
}
.wfs-wc-login-wrap input:focus { border-color: var(--wfs-green-mid) !important; outline: none; }
.wfs-wc-login-wrap .woocommerce-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media(max-width:600px) { .wfs-wc-login-wrap .woocommerce-form-row { grid-template-columns: 1fr; } }
.wfs-wc-login-wrap .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 8px; font-size: 13px; text-transform: none; letter-spacing: 0; }
.wfs-wc-login-wrap button[type="submit"],
.wfs-wc-login-wrap input[type="submit"] {
    background: var(--wfs-green) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 12px 28px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    font-family: inherit !important;
    transition: background .2s !important;
}
.wfs-wc-login-wrap button[type="submit"]:hover { background: var(--wfs-green-mid) !important; }
.wfs-wc-login-wrap .lost_password { font-size: 13px; margin-top: 8px !important; }
.wfs-wc-login-wrap .lost_password a { color: var(--wfs-green-mid); }

/* Create account hint */
.wfs-create-account-hint {
    display: block;
    font-size: 12px;
    font-weight: 400;
    color: var(--wfs-muted);
    margin-top: 2px;
}

/* ════════════════════════════════════════════════════════
   v1.2.5 — Mobile overflow fix
════════════════════════════════════════════════════════ */
.wfs-layout {
    overflow-x: hidden;
    width: 100%;
    max-width: 100vw;
}

@media (max-width: 480px) {
    .wfs-layout { padding: 0 12px 40px; }
    .wfs-layout__body { gap: 16px; margin-top: 16px; }
    .wfs-section { padding: 18px 14px; }
    .wfs-step-bar { padding: 16px 0 6px; }
    .wfs-step-bar__line { max-width: 40px; }
    .wfs-step-bar__label { font-size: 10px; }
    .wfs-step-bar__bubble { width: 30px; height: 30px; font-size: 12px; }
    .wfs-delivery-header,
    .wfs-billing-header { flex-direction: column; align-items: flex-start; gap: 8px; }
    .wfs-last-order-btn,
    .wfs-copy-btn { width: 100%; justify-content: center; }
    .wfs-form__footer--split { flex-direction: column-reverse; gap: 10px; }
    .wfs-form__footer--split .wfs-btn { width: 100%; justify-content: center; }
    .wfs-btn--lg { padding: 14px 24px; font-size: 15px; }
    /* Gifts */
    .wfs-gifts__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .wfs-gift-card__img-wrap { width: 90px; height: 90px; }
    /* Summary */
    .wfs-summary-card__head { padding: 12px 14px; }
    .wfs-summary-card__body { padding: 14px; }
    /* WC payment */
    .wfs-wc-checkout-wrap .woocommerce-checkout-payment .payment_methods li { padding: 12px 14px !important; }
}

@media (max-width: 360px) {
    .wfs-layout { padding: 0 8px 40px; }
    .wfs-section { padding: 14px 10px; }
    .wfs-step-bar__label { display: none; }
    .wfs-step-bar__line { max-width: 24px; }
}

/* Loading state for locality select (replaces disabled) */
.wfs-field select.wfs-loading {
    opacity: .7;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' stroke='%232d6a4f' stroke-width='2' fill='none' stroke-dasharray='31.4' stroke-dashoffset='10'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='.8s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/svg%3E") !important;
    background-repeat: no-repeat;
    background-position: right 12px center;
    cursor: wait;
}

/* ════════════════════════════════════════════════════════
   v1.3.0 — Adrese salvate
════════════════════════════════════════════════════════ */

/* Button in delivery header */
.wfs-saved-addr-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: transparent;
    border: 1.5px dashed var(--wfs-green-mid);
    color: var(--wfs-green-mid);
    border-radius: var(--wfs-radius-sm);
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all .2s;
    font-family: inherit;
    position: relative;
}
.wfs-saved-addr-btn:hover { background: var(--wfs-green-mid); color: #fff; border-style: solid; }
.wfs-saved-addr-btn__count {
    background: var(--wfs-green);
    color: #fff;
    border-radius: 50%;
    width: 18px; height: 18px;
    font-size: 11px;
    font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}

/* Dropdown panel */
.wfs-saved-addr-panel {
    background: var(--wfs-white);
    border: 1px solid var(--wfs-border);
    border-radius: var(--wfs-radius);
    box-shadow: var(--wfs-shadow-md);
    margin-bottom: 16px;
    overflow: hidden;
}
.wfs-saved-addr-loading,
.wfs-saved-addr-empty {
    padding: 16px 18px;
    color: var(--wfs-muted);
    font-size: 14px;
    margin: 0;
}
.wfs-saved-addr-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.wfs-saved-addr-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--wfs-border);
    transition: background .15s;
}
.wfs-saved-addr-item:last-child { border-bottom: none; }
.wfs-saved-addr-item:hover { background: var(--wfs-green-lt); }
.wfs-saved-addr-item__nick {
    font-weight: 700;
    font-size: 14px;
    color: var(--wfs-green);
    min-width: 100px;
    flex-shrink: 0;
}
.wfs-saved-addr-item__meta {
    flex: 1;
    font-size: 13px;
    color: var(--wfs-muted);
    line-height: 1.4;
}
.wfs-saved-addr-use {
    background: var(--wfs-green) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 6px 14px !important;
    font-size: 13px !important;
    cursor: pointer !important;
    white-space: nowrap;
    flex-shrink: 0;
}
.wfs-saved-addr-use:hover { background: var(--wfs-green-mid) !important; }

/* Save address checkbox */
.wfs-save-addr-wrap {
    background: var(--wfs-bg);
    border: 1.5px dashed var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
    padding: 12px 16px;
    margin-bottom: 16px;
    transition: border-color .2s;
}
.wfs-save-addr-wrap:has(input:checked) { border-color: var(--wfs-green-mid); }
.wfs-save-addr-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: var(--wfs-text);
}
.wfs-save-addr-label input[type="checkbox"] {
    width: 18px !important; height: 18px !important;
    accent-color: var(--wfs-green) !important;
    cursor: pointer; flex-shrink: 0;
    accent-color: var(--wfs-green) !important;
    -webkit-appearance: checkbox !important;
    appearance: checkbox !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: relative !important;
}
.wfs-save-addr-nickname {
    margin-top: 8px;
    width: 100%;
    padding: 8px 12px;
    border: 1.5px solid var(--wfs-border);
    border-radius: var(--wfs-radius-sm);
    font-size: 14px;
    font-family: inherit;
}
.wfs-save-addr-nickname:focus { border-color: var(--wfs-green-mid); outline: none; }

/* My Account addresses */
.wfs-myaccount-header h3 { color: var(--wfs-green); margin-bottom: 6px; }
.wfs-myaccount-sub { color: var(--wfs-muted); font-size: 14px; margin-bottom: 20px; }

.wfs-addr-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-bottom: 8px;
}
.wfs-addr-empty { color: var(--wfs-muted); font-size: 14px; }
.wfs-addr-card {
    border: 1px solid var(--wfs-border);
    border-radius: var(--wfs-radius);
    padding: 16px 18px;
    background: var(--wfs-white);
    box-shadow: var(--wfs-shadow);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.wfs-addr-card__nick {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    font-size: 15px;
    color: var(--wfs-green);
}
.wfs-addr-card__details {
    font-size: 13px;
    color: var(--wfs-muted);
    line-height: 1.6;
}
.wfs-addr-card__actions {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}
.wfs-addr-modal__box {
    max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
}
.wfs-addr-modal__box h3 { margin: 0 0 20px; }

/* ════════════════════════════════════════════════════════
   v1.3.1 — Hide WC shipping address from My Account
════════════════════════════════════════════════════════ */

/* Hide WC shipping address card on my-account/addresses overview */
.woocommerce-MyAccount-content .woocommerce-Address:has(a[href*="shipping"]),
.woocommerce-MyAccount-content .woocommerce-Address + .woocommerce-Address,
.u-column2.woocommerce-Address {
    display: none !important;
}

/* Hide WC shipping section header on edit-address/shipping page */
.woocommerce-MyAccount-content .woocommerce-EditAccountForm .shipping_address,
.woocommerce-address-fields__field-wrapper:empty {
    display: none !important;
}

/* Hide "Save address" button on WC shipping edit page (we have our own) */
body.woocommerce-edit-address .woocommerce-MyAccount-content p.woocommerce-Button-wrapper:last-child {
    display: none !important;
}

/* ════════════════════════════════════════════════════════
   v1.4.5 — WC billing fields: country/state/city layout
════════════════════════════════════════════════════════ */

/* State+City row — 50/50 on desktop, 100% each on mobile */
.wfs-billing-state-city {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
}
.wfs-billing-state-city .form-row {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
@media (max-width: 600px) {
    .wfs-billing-state-city {
        grid-template-columns: 1fr !important;
    }
}

/* Country select — full width */
#billing_country_field,
.wfs-section p.form-row.form-row-wide {
    width: 100% !important;
    clear: both !important;
}

/* Address field — full width */
#billing_address_1_field {
    width: 100% !important;
    clear: both !important;
}
#billing_address_1_field input {
    width: 100% !important;
}

/* WC select2 dropdowns in our form — match our styling */
.wfs-section .select2-container {
    width: 100% !important;
}
.wfs-section .select2-container .select2-selection--single {
    height: auto !important;
    padding: 11px 14px !important;
    border: 1.5px solid var(--wfs-border) !important;
    border-radius: var(--wfs-radius-sm) !important;
    font-size: 15px !important;
    background: var(--wfs-bg) !important;
}
.wfs-section .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.4 !important;
    padding: 0 !important;
    color: var(--wfs-text) !important;
}
.wfs-section .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
    right: 10px !important;
}
.wfs-section .select2-container--open .select2-selection--single,
.wfs-section .select2-container--focus .select2-selection--single {
    border-color: var(--wfs-green-mid) !important;
    box-shadow: 0 0 0 3px rgba(45,106,79,.10) !important;
    background: var(--wfs-white) !important;
}
/* Select2 dropdown options */
.select2-results__option--highlighted {
    background-color: var(--wfs-green) !important;
}

/* ════════════════════════════════════════════════════════
   v1.4.6 — Blocksy theme order review border fix
════════════════════════════════════════════════════════ */
.ct-order-review {
    border: none !important;
    box-shadow: none !important;
}
