/* IVO-NIMED-COURIER-CARDS-v1 — вертикален списък с карти за избор на доставка (nimed.bg, само Еконт).
 *
 * FAIL-SAFE: ВСИЧКИ скриващи правила са гейтнати зад .ivo-cc-active. Този клас се добавя
 * от JS САМО след като карти реално са построени (намерени са econt_shipping_to_buttons).
 * Затова ако нещо се счупи и картите не се построят → класът липсва → нищо не се скрива →
 * нативните Еконт полета ОСТАВАТ напълно видими и функционални. Махнато е опасното
 * body:not(.ivo-cc-ready) ... { visibility:hidden } от tuasolea версията, което скриваше
 * Еконт полетата по подразбиране.
 */

/* Скриваме оригиналните контроли (държим ги в DOM за да кликаме) — само когато картите СА активни.
   ul#shipping_method се крие визуално, но BoxNow сам инжектира locker-бутона СЛЕД label вътре в
   списъка — него го връщаме видим по-долу (за да може клиентът да избере шкаф). */
.ivo-cc-active label.label_shiping,
.ivo-cc-active [id="3213131313_field"],
.ivo-cc-active ul#shipping_method,
.ivo-cc-active table.wfacp_shipping_table .shipping ul#shipping_method,
.ivo-cc-active #econt_shipping_to_buttons_field {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
}

/* BoxNow locker-бутон + детайли — ВИНАГИ видими, дори да са инжектирани вътре в скрития
   shipping_method списък. JS-ът (ensureVisible) ги мести в зоната под картата, но това е
   подсигуряване ако BoxNow ги пресъздаде на оригиналното им място. */
.ivo-cc-active #box_now_delivery_button,
.ivo-cc-active #box_now_selected_locker_details {
    position: static !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    margin: 8px 0 0 !important;
    padding: revert !important;
}

/* Празната shipping таблица (методите вече са в нашите карти) */
.ivo-cc-active table.wfacp_shipping_table {
    margin: 0 !important;
    border: 0 !important;
}
.ivo-cc-active table.wfacp_shipping_table tr.shipping td,
.ivo-cc-active table.wfacp_shipping_table tr.shipping th {
    padding: 0 !important;
    border: 0 !important;
}

/* Заглавие над полетата (сменя се според избрания метод) */
.ivo-cc-fields-heading {
    margin: 0 0 10px;
    font-size: 14px;
    color: #1b1b1b;
    line-height: 1.4;
    padding-left: 2px;
}
.ivo-cc-fields-heading strong {
    color: #16a34a;
    font-weight: 700;
}

/* Куриер-полетата + заглавието се КРИЯТ докато няма избрана карта.
   Гейтнато зад .ivo-cc-active → ако картите не се построят, полетата остават видими.
   Списъкът обхваща контейнерите на всички познати куриери (Еконт + BoxNow за Етап 2). */
.ivo-cc-active:not(.ivo-cc-has-selection) #econt_custom_checkout_field,
.ivo-cc-active:not(.ivo-cc-has-selection) #box_now_selected_locker_details,
.ivo-cc-active:not(.ivo-cc-has-selection) #box_now_delivery_button,
.ivo-cc-active:not(.ivo-cc-has-selection) .ivo-cc-fields-heading {
    display: none !important;
}

/* Контейнер */
.ivo-cc-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 4px 0 16px;
    border: 1px solid #e2e5e9;
    border-radius: 12px;
    padding: 12px;
    background: #fff;
}

/* Ред (карта) */
.ivo-cc-row {
    display: flex;
    flex-direction: column;
}

.ivo-cc-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1.5px solid #e2e5e9;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    box-sizing: border-box;
    min-height: 56px;
}
.ivo-cc-card:hover { border-color: #c7ccd2; }
.ivo-cc-card.is-active {
    border-color: #16a34a;
    background: #f3fdf6;
    box-shadow: 0 1px 6px rgba(22,163,74,.10);
}

/* Радио кръг вляво */
.ivo-cc-radio {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #c7ccd2;
    position: relative;
    transition: border-color .15s ease;
}
.ivo-cc-card.is-active .ivo-cc-radio { border-color: #16a34a; }
.ivo-cc-card.is-active .ivo-cc-radio::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 10px; height: 10px;
    border-radius: 50%;
    background: #16a34a;
}

/* Заглавие (с лого/иконка) */
.ivo-cc-label {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.ivo-cc-logo {
    height: 18px;
    width: auto;
    max-width: 64px;
    object-fit: contain;
    flex: 0 0 auto;
}
.ivo-cc-icon { font-size: 18px; line-height: 1; flex: 0 0 auto; }
.ivo-cc-title {
    font-size: 14px;
    font-weight: 500;
    color: #1b1b1b;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Цена вдясно */
.ivo-cc-price {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 600;
    color: #1b1b1b;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
}
.ivo-cc-price .ivo-cc-bgn { color: #6b7280; font-weight: 500; }
.ivo-cc-price .ivo-cc-calc { font-weight: 500; color: #8a9099; font-size: 12px; }
.ivo-cc-price .ivo-cc-free { color: #16a34a; font-weight: 700; }

/* Полетата на избрания куриер (остават в оригиналния wrap, точно под списъка) */
.ivo-cc-active #econt_custom_checkout_field {
    margin-top: 4px;
}

/* Скриваме самотното title-лого на Еконт (нашите карти вече показват лого) */
.ivo-cc-active #econt-title-image,
.ivo-cc-active #econt_custom_checkout_field > .econt-logo {
    display: none !important;
}

/* ── DOOR (Еконт до адрес): скриваме 4 излишни/дублиращи полета (по искане на USER) ──
 *  1) „Име на улица" (#econt_door_street_intl_field) — дублира select-а „Улица"; стойността му
 *     се копира автоматично от sync-а (select→intl), затова остава ПОПЪЛНЕНО макар скрито.
 *  2) „Име на квартал (по избор)" (#econt_door_quarter_intl_field) — дублира select-а „Квартал".
 *  3) „ет. №" (#econt_door_street_et_field)  4) „ап. №" (#econt_door_street_ap_field).
 *  FAIL-SAFE: гейтнато зад .ivo-cc-active.ivo-cc-door → важи САМО в DOOR режим.
 *  В OFFICE/MACHINE Еконт сам крие всички DOOR полета (inline display:none) → не пипаме.
 *  Класът ivo-cc-door се добавя от JS само когато активната карта е „Еконт до адрес".
 *  Скриваме целия .form-row wrapper (не само input-а), за да не остане висящ label.
 *  JS-ът маха validate-required от скрития intl row (виж courier-cards.js). */
.ivo-cc-active.ivo-cc-door #econt_door_street_intl_field,
.ivo-cc-active.ivo-cc-door #econt_door_quarter_intl_field,
.ivo-cc-active.ivo-cc-door #econt_door_street_et_field,
.ivo-cc-active.ivo-cc-door #econt_door_street_ap_field {
    display: none !important;
}

/* ── DOOR: „Улица" (широко) + „№" (тясно) НА ЕДИН РЕД ──────────────────────────
 *  RECON (live nimed.bg): двата .form-row-а НЕ са съседни — между тях стои скритото
 *  #econt_door_street_intl_field (display:none зад gate-а). WFACP ги рендира вече като
 *  display:inline-block, затова просто им фиксираме ширини и ги подравняваме отгоре —
 *  inline-block игнорира display:none елемента помежду им → застават един до друг.
 *  Не пипаме другите редове (Квартал/бл./вх./свободен текст) — те остават пълна ширина.
 *  FAIL-SAFE: гейтнато зад .ivo-cc-active.ivo-cc-door → счупи ли се плъгинът, връщат се един под друг.
 *
 *  КРИТИЧНО (BUGFIX 2026-06-04): тези правила ТРЯБВА да са гейтнати и зад .ivo-cc-door,
 *  не само .ivo-cc-active! Иначе `display:inline-block !important` бие inline `display:none`,
 *  който Еконт слага на DOOR полетата при OFFICE/MACHINE → Улица+№ оставаха видими за
 *  „до офис" и „до автомат (АПС)". Класът .ivo-cc-door присъства САМО когато активната карта
 *  е „Еконт до адрес" → за офис/автомат правилата НЕ важат → Еконт си крие полетата нормално. */
/* margin-bottom:16px = стандартния WFACP gap между полета (всеки друг form-row го има).
 *  Без него (старо `margin:0`) следващото поле „Квартал" се залепяше плътно под реда.
 *  СЪЩАТА стойност на двата inline-block (Улица + №) → подравнени, нито един не увисва. */
.ivo-cc-active.ivo-cc-door #econt_door_street_field {
    display: inline-block !important;
    vertical-align: top !important;
    float: none !important;
    width: 79% !important;
    margin: 0 0 16px 0 !important;
    padding-right: 10px !important;
    box-sizing: border-box !important;
    clear: none !important;
}
.ivo-cc-active.ivo-cc-door #econt_door_street_num_field {
    display: inline-block !important;
    vertical-align: top !important;
    float: none !important;
    width: 21% !important;
    margin: 0 0 16px 0 !important;
    box-sizing: border-box !important;
    clear: none !important;
}
/* select2 рендира свой контейнер с inline width → форсираме 100% от лявата колона */
.ivo-cc-active.ivo-cc-door #econt_door_street_field .select2-container,
.ivo-cc-active.ivo-cc-door #econt_door_street_field .woocommerce-input-wrapper {
    width: 100% !important;
}

/* МОБИЛЕН (≤767px): WFACP има правило `body #wfacp-e-form .woocommerce .form-row...{width:100%!important}`
 *  (специфичност 0,1,4,1) което при ≤767px кара полетата 100% → stack. Затова mobile селекторът
 *  трябва да е по-специфичен: body.ivo-cc-active #wfacp-e-form #ID (2 ID-та → бие WFACP-то).
 *  Остават на ред (по предпочитание на USER); „№" с min-width за четимост на тесни екрани. */
@media (max-width: 767px) {
    body.ivo-cc-active.ivo-cc-door #wfacp-e-form #econt_door_street_field {
        display: inline-block !important;
        vertical-align: top !important;
        float: none !important;
        width: 73% !important;
        margin: 0 0 16px 0 !important;
        padding-right: 8px !important;
        box-sizing: border-box !important;
        clear: none !important;
    }
    body.ivo-cc-active.ivo-cc-door #wfacp-e-form #econt_door_street_num_field {
        display: inline-block !important;
        vertical-align: top !important;
        float: none !important;
        width: 27% !important;
        min-width: 64px !important;
        margin: 0 0 16px 0 !important;
        box-sizing: border-box !important;
        clear: none !important;
    }
}

/* ── МОБИЛЕН: заглавията да се ВИЖДАТ изцяло (не се отрязват) ── */
@media (max-width: 600px) {
    .ivo-cc-card {
        padding: 10px 12px;
        gap: 8px;
        min-height: 54px;
    }
    .ivo-cc-radio { flex: 0 0 18px; width: 18px; height: 18px; }
    .ivo-cc-icon { font-size: 18px; }
    /* лого ОТГОРЕ, заглавие ПОД него (вертикално) — по-чисто на мобилен */
    .ivo-cc-label {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
    .ivo-cc-logo { height: 16px; max-width: 56px; }
    .ivo-cc-title {
        font-size: 13px;
        line-height: 1.2;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
    .ivo-cc-price {
        font-size: 13px;
        line-height: 1.25;
        white-space: normal;
    }
    .ivo-cc-price .ivo-cc-bgn {
        display: block;
        font-size: 11px;
    }
}

@media (max-width: 360px) {
    .ivo-cc-logo { max-width: 42px; }
    .ivo-cc-title { font-size: 12px; }
    .ivo-cc-price { font-size: 12px; }
}
