/*!
 * karacsonyfawebshop.hu – 2026-os frissítés (2026-11)
 * A meglévő Bootstrap 3 + layout.css FÖLÉ töltődik. Kikapcsolás: a layout.php-ból
 * a kfw-2026.css <link> sor törlése. Csak additív szabályok, a régi osztályokat nem írja át
 * a rendelési folyamaton kívül.
 */
:root {
    --kfw-green-900: #003d00;
    --kfw-green-800: #006600;
    --kfw-green-600: #3a9b02;
    --kfw-green-500: #3dbd04;
    --kfw-green-50:  #eef7ea;
    --kfw-red-600:   #c40000;
    --kfw-red-50:    #fdecec;
    --kfw-ink:       #1d2a17;
    --kfw-muted:     #5b6b52;
    --kfw-line:      #cfd8ca;
    --kfw-surface:   #ffffff;
    --kfw-radius:    10px;
    --kfw-focus:     0 0 0 3px rgba(61, 189, 4, .35);
}

/* ---------- Akadálymentesség ---------------------------------------- */
.kfw-skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 10000;
    background: var(--kfw-green-800); color: #fff; padding: 10px 16px;
}
.kfw-skip-link:focus { left: 8px; top: 8px; color: #fff; }
a:focus-visible, button:focus-visible, .btn:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--kfw-green-800);
    outline-offset: 2px;
}
[hidden] { display: none !important; }

/* ---------- Rendelési űrlap ---------------------------------------- */
.kfw-order-form .form-control {
    height: 48px;
    font-size: 16px;              /* iOS nem nagyít rá a mezőre */
    padding: 10px 14px;
    border: 1px solid var(--kfw-line);
    border-radius: var(--kfw-radius);
    background: var(--kfw-surface);
    color: var(--kfw-ink);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.kfw-order-form select.form-control { padding-right: 36px; }
.kfw-order-form textarea.form-control { height: auto; min-height: 110px; line-height: 1.5; }
.kfw-order-form .form-control::placeholder { color: #9aa894; }
.kfw-order-form .form-control:focus {
    border-color: var(--kfw-green-500);
    box-shadow: var(--kfw-focus);
    outline: 0;
}
.kfw-order-form .control-label { font-size: 15px; color: var(--kfw-ink); padding-top: 13px; }
.kfw-order-form .comment { color: var(--kfw-muted); font-size: 13px; line-height: 1.45; }
.kfw-order-form .kfw-field .comment { padding-top: 6px; }

/* hiba / rendben állapot */
.kfw-order-form .form-control.error,
.kfw-order-form .has-error .form-control {
    border-color: var(--kfw-red-600);
    background: var(--kfw-red-50);
}
.kfw-order-form .has-error .form-control:focus { box-shadow: 0 0 0 3px rgba(196, 0, 0, .2); }
.kfw-order-form .kfw-error {
    display: block;
    min-height: 0;
    margin-top: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--kfw-red-600);
}
.kfw-order-form .kfw-error:empty { display: none; }
.kfw-order-form .kfw-error .error_list { list-style: none; padding: 0; margin: 0; }
.kfw-order-form .is-valid .form-control:not(select) {
    border-color: var(--kfw-green-500);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%233a9b02' d='M6.2 11.6 2.9 8.3l1.1-1.1 2.2 2.2 5.8-5.8 1.1 1.1z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px 18px;
    padding-right: 40px;
}
.kfw-error-summary { border-radius: var(--kfw-radius); }

/* jelölőnégyzetek: nagyobb érintési felület */
.kfw-checkbox label {
    display: flex; align-items: flex-start; gap: 10px;
    min-height: 44px; padding: 10px 0 10px 0 !important;
    font-size: 15px; cursor: pointer;
}
.kfw-checkbox input[type="checkbox"] {
    position: static !important; margin: 2px 0 0 0 !important;
    width: 20px; height: 20px; flex: 0 0 20px;
    accent-color: var(--kfw-green-800);
}

/* bizalmi sor az űrlap tetején */
.kfw-reassure {
    display: flex; flex-wrap: wrap; gap: 8px 18px;
    margin: 0 0 18px; padding: 12px 16px;
    background: var(--kfw-green-50); border-radius: var(--kfw-radius);
    color: var(--kfw-green-900); font-size: 14px;
}
.kfw-reassure .fa { color: var(--kfw-green-600); margin-right: 4px; }

/* beküldés */
.kfw-submit-row { margin-top: 24px; }
.kfw-submit-note { display: block; margin-top: 10px; color: var(--kfw-muted); font-size: 13px; }
.checkout-page-content .next-step {
    border-radius: var(--kfw-radius);
    padding: 14px 28px;
    min-height: 52px;
    font-size: 17px;
    letter-spacing: .02em;
}
.next-step.is-loading { opacity: .7; pointer-events: none; cursor: progress; }
.next-step.is-loading::after {
    content: ""; display: inline-block; width: 16px; height: 16px; margin-left: 10px; vertical-align: -2px;
    border: 2px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%;
    animation: kfw-spin .8s linear infinite;
}
@keyframes kfw-spin { to { transform: rotate(360deg); } }

/* ÁSZF elfogadás (véglegesítés) */
.aszf.has-error .kfw-checkbox label { color: var(--kfw-red-600); }
.aszf .kfw-error:empty { display: none; }
.aszf .kfw-error { font-weight: 600; margin: 4px 0 0; }

/* ---------- Mobil (≤ 767px) ---------------------------------------- */
@media (max-width: 767px) {
    .kfw-order-form .control-label { text-align: left; padding-top: 0; margin-bottom: 6px; }
    .kfw-order-form .form-group { margin-bottom: 18px; }
    .kfw-order-form .kfw-field .comment { padding-top: 4px; }
    .checkout-page-content .next-step { display: block; width: 100%; white-space: normal; }
    .kfw-reassure { flex-direction: column; gap: 6px; }
}

/* ---------- Mobil bizalmi sáv ---------------------------------------- */
.kfw-usp {
    list-style: none; margin: 10px 0 14px; padding: 12px 14px;
    background: var(--kfw-surface); border: 1px solid var(--kfw-line); border-radius: var(--kfw-radius);
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px;
    font-size: 13px; line-height: 1.35; color: var(--kfw-ink);
}
.kfw-usp li { display: flex; gap: 8px; align-items: flex-start; }
.kfw-usp .fa { color: var(--kfw-green-600); font-size: 16px; margin-top: 1px; width: 18px; text-align: center; }
.kfw-usp strong { color: var(--kfw-green-800); }
@media (max-width: 359px) { .kfw-usp { grid-template-columns: 1fr; } }

/* ---------- Termékoldal ------------------------------------------------- */
.form-container input[type="number"].value { -moz-appearance: textfield; appearance: textfield; text-align: center; }
.form-container input[type="number"].value::-webkit-outer-spin-button,
.form-container input[type="number"].value::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.form-container .kfw-note { margin-top: 8px; color: var(--kfw-muted); font-size: 13px; }
.form-container a.btn-type-3 { white-space: normal; }

/* ---------- Süti-banner ------------------------------------------------- */
.kfw-consent {
    position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9999;
    max-width: 760px; margin: 0 auto;
    background: var(--kfw-surface); color: var(--kfw-ink);
    border: 1px solid var(--kfw-line); border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 40, 0, .22);
}
.kfw-consent__inner { padding: 18px 20px; }
.kfw-consent__title { margin: 0 0 6px; font-size: 16px; }
.kfw-consent__text { margin: 0 0 14px; font-size: 13px; line-height: 1.5; color: var(--kfw-muted); }
.kfw-consent__text a { color: var(--kfw-green-800); text-decoration: underline; }
.kfw-consent__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.kfw-consent .btn { min-height: 44px; padding: 10px 18px; border-radius: var(--kfw-radius); font-size: 15px; }
/* a két gomb azonos súlyú (GDPR: az elutasítás ne legyen nehezebb) */
.kfw-btn-primary, .kfw-btn-secondary { flex: 1 1 200px; }
.kfw-btn-primary { background: var(--kfw-green-800); border: 1px solid var(--kfw-green-800); color: #fff; }
.kfw-btn-primary:hover, .kfw-btn-primary:focus { background: var(--kfw-green-600); border-color: var(--kfw-green-600); color: #fff; }
.kfw-btn-secondary { background: #fff; border: 1px solid var(--kfw-green-800); color: var(--kfw-green-800); }
.kfw-btn-secondary:hover, .kfw-btn-secondary:focus { background: var(--kfw-green-50); color: var(--kfw-green-900); }

/* ---------- Értesítés (üres kosár) ------------------------------------ */
.kfw-toast {
    position: fixed; left: 50%; bottom: 24px; z-index: 10000;
    transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
    max-width: calc(100% - 32px);
    background: var(--kfw-green-900); color: #fff;
    padding: 12px 18px; border-radius: var(--kfw-radius);
    box-shadow: 0 8px 24px rgba(0,0,0,.25);
    font-size: 15px; text-align: center;
    transition: opacity .2s ease, transform .2s ease;
}
.kfw-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

@media (prefers-reduced-motion: reduce) {
    .kfw-toast, .kfw-order-form .form-control { transition: none; }
    .next-step.is-loading::after { animation: none; }
}

/* =====================================================================
 * TERMÉKOLDAL (2026-11) – mobil-first. Minden szabály .kfw-pdp / .kfw-page-product alatt.
 * ===================================================================== */
.kfw-page-product .kfw-usp { display: none !important; }
@media (max-width: 767px) {
    .kfw-page-product .steps-bar { display: none; }
    .kfw-page-product .phone.mobile { margin-bottom: 4px; }
}

.kfw-pdp { padding: 16px 16px 24px !important; color: var(--kfw-ink); }
.kfw-pdp li { margin-bottom: 0; }
.kfw-pdp .breadcrumb {
    text-align: left; margin: 0 0 8px; padding: 0; font-size: 13px; background: none;
}
.kfw-pdp .breadcrumb > li + li::before { padding: 0 6px; color: #b3bdae; }
.kfw-pdp .breadcrumb a { color: var(--kfw-muted); }
.kfw-pdp .breadcrumb .active { color: var(--kfw-green-800); }

.kfw-pdp__title {
    font-family: "GothamMedium", sans-serif;
    font-size: 22px !important; line-height: 1.25; margin: 0 0 14px !important;
}
.kfw-pdp__size {
    display: inline-block; margin-left: 4px; padding: 2px 10px; vertical-align: 3px;
    font-family: "GothamMedium", sans-serif; font-size: 14px; white-space: nowrap;
    color: var(--kfw-green-800); background: var(--kfw-green-50); border-radius: 999px;
}

.kfw-pdp__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }

/* kép */
.kfw-pdp__media { margin: 0; text-align: center; }
.kfw-pdp__media img {
    width: 100%; max-width: 420px; height: auto; margin: 0 auto;
    aspect-ratio: 1 / 1; object-fit: contain;
    background: #fff; border-radius: 14px;
}
.kfw-pdp__media figcaption { margin-top: 6px; font-size: 12px; color: var(--kfw-muted); font-style: italic; }

/* vásárlási doboz */
.kfw-pdp__buy {
    background: #f4f7f2; border: 1px solid #e1e8dc; border-radius: 16px; padding: 16px;
}
.kfw-price { padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid #dfe6da; }
.kfw-price__label { font-size: 13px; color: var(--kfw-muted); text-transform: uppercase; letter-spacing: .04em; }
.kfw-price__main { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 2px 0 4px; }
.kfw-price__value {
    font-family: "GothamBold", sans-serif; font-size: 32px; line-height: 1.1; color: var(--kfw-green-900);
    white-space: nowrap;
}
.kfw-price__badge {
    font-family: "GothamBold", sans-serif; font-size: 14px; color: #fff;
    background: var(--kfw-red-600); border-radius: 6px; padding: 3px 8px;
}
.kfw-price__base { font-size: 14px; color: var(--kfw-muted); }
.kfw-price__base s { color: var(--kfw-muted); }
.kfw-price__more { margin-left: 8px; color: var(--kfw-green-800); text-decoration: underline; }

/* mennyiség + gomb */
.kfw-buy { display: flex; gap: 10px; align-items: stretch; margin: 0; }
.kfw-qty {
    display: flex; align-items: stretch; flex: 0 0 auto;
    border: 1px solid var(--kfw-line); border-radius: 12px; background: #fff; overflow: hidden;
}
.kfw-qty__btn {
    width: 44px; border: 0; background: #fff; color: var(--kfw-green-800);
    font-size: 22px; line-height: 1; cursor: pointer;
}
.kfw-qty__btn:active { background: var(--kfw-green-50); }
.kfw-qty__input {
    width: 44px; border: 0; text-align: center; font-size: 18px; font-family: "GothamMedium", sans-serif;
    -moz-appearance: textfield; appearance: textfield; background: #fff; color: var(--kfw-ink);
}
.kfw-qty__input::-webkit-outer-spin-button, .kfw-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.kfw-buy__cta, .kfw-buy__cta:visited {
    flex: 1 1 auto; min-width: 0; min-height: 54px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: var(--kfw-green-500); border: 0; border-radius: 12px; color: #fff !important;
    font-family: "GothamMedium", sans-serif; font-size: 17px; text-transform: uppercase; letter-spacing: .03em;
    box-shadow: 0 6px 16px rgba(61, 189, 4, .28); white-space: nowrap;
}
@media (max-width: 400px) {
    .kfw-buy { gap: 8px; }
    .kfw-buy__cta { font-size: 15px; letter-spacing: 0; padding: 0 8px; }
    .kfw-pdp__buy .kfw-buy__cta .fa { display: none; }
    .kfw-qty__btn { width: 36px; }
    .kfw-qty__input { width: 34px; }
}
@media (max-width: 359px) {
    .kfw-buy { flex-wrap: wrap; }
    .kfw-qty { flex: 1 1 100%; justify-content: space-between; }
    .kfw-qty__btn { width: 56px; }
    .kfw-buy__cta { flex: 1 1 100%; }
}
.kfw-buy__cta:hover, .kfw-buy__cta:focus { background: var(--kfw-green-600); color: #fff; }
.kfw-buy__cta .fa { color: #fff !important; }
.kfw-buy--call { display: block; }
.kfw-buy--call .kfw-buy__cta { width: 100%; }
.kfw-buy__hint { margin: 10px 0 0; font-size: 13px; color: var(--kfw-muted); }
.kfw-buy__hint .fa { color: var(--kfw-green-600); }

/* előnyök */
.kfw-benefits {
    list-style: none; padding: 0; margin: 16px 0 0;
    display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px;
}
.kfw-benefits li { display: flex; gap: 8px; font-size: 15px; line-height: 1.35; color: var(--kfw-ink); }
.kfw-benefits .fa { color: var(--kfw-green-600); margin-top: 3px; flex: 0 0 14px; }
.kfw-benefits a { color: var(--kfw-green-800); text-decoration: underline; }

/* kedvezmények */
.kfw-discounts { margin-top: 18px; padding-top: 14px; border-top: 1px solid #dfe6da; scroll-margin-top: 80px; }
.kfw-pdp .kfw-discounts__title {
    font-family: "GothamMedium", sans-serif; font-size: 17px; margin: 0 0 10px; padding: 0; border: 0;
}
.kfw-discounts ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.kfw-discounts li {
    display: flex; gap: 10px; align-items: flex-start;
    background: #fff; border: 1px solid #e1e8dc; border-radius: 12px; padding: 10px 12px;
    font-size: 14px; line-height: 1.4;
}
.kfw-discounts__pill {
    flex: 0 0 auto; min-width: 48px; text-align: center;
    font-family: "GothamBold", sans-serif; font-size: 13px; color: var(--kfw-red-600);
    background: var(--kfw-red-50); border-radius: 999px; padding: 3px 8px;
}
.kfw-discounts__link { display: inline-block; margin-top: 10px; font-size: 14px; color: var(--kfw-green-800); text-decoration: underline; }

/* leírás (CMS tartalom) */
.kfw-pdp__desc { margin-top: 28px; }
.kfw-pdp .kfw-pdp__desc h2 { font-size: 22px; margin: 0 0 14px; padding-bottom: 10px; }
.kfw-richtext { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.kfw-richtext img { max-width: 100% !important; border-radius: 10px; }
.kfw-richtext table { max-width: 100%; }
.kfw-richtext iframe { max-width: 100%; }
.kfw-video { position: relative; padding-bottom: 56.25%; margin-top: 16px; border-radius: 12px; overflow: hidden; }
.kfw-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ragadós kosár-sáv (mobil) */
.kfw-sticky-buy { display: none; }
@media (max-width: 767px) {
    /* szövegbe úsztatott képek: teljes szélességű sáv */
    .kfw-richtext img[style*="float"] {
        float: none !important; display: block; width: 100% !important; height: 200px !important;
        object-fit: cover; margin: 12px 0 !important;
    }
    /* galéria bélyegképek: 3 hasáb */
    .kfw-richtext a > img:not([style*="float"]) {
        display: inline-block; width: calc(33.333% - 6px) !important; height: 120px !important;
        object-fit: cover; margin: 3px !important; vertical-align: top;
    }
    .kfw-pdp__media img { max-width: 300px; }
    .kfw-sticky-buy:not([hidden]) {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 9000;
        display: flex; align-items: center; gap: 12px;
        padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
        background: rgba(255, 255, 255, .97); border-top: 1px solid var(--kfw-line);
        box-shadow: 0 -6px 20px rgba(0, 40, 0, .12);
    }
    .kfw-sticky-buy__price { display: flex; flex-direction: column; line-height: 1.2; }
    .kfw-sticky-buy__price span { font-size: 11px; color: var(--kfw-muted); }
    .kfw-sticky-buy__price strong { font-family: "GothamBold", sans-serif; font-size: 18px; color: var(--kfw-green-900); white-space: nowrap; }
    .kfw-sticky-buy .kfw-buy__cta { min-height: 48px; font-size: 15px; box-shadow: none; }
    body.kfw-has-sticky-buy { padding-bottom: 76px; }
    body.kfw-has-sticky-buy .kfw-consent { bottom: 84px; }
}

/* tablet / asztali */
@media (min-width: 768px) {
    .kfw-pdp { padding: 24px 32px 32px !important; }
    .kfw-pdp__title { font-size: 28px !important; }
    .kfw-pdp__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
    .kfw-pdp__media img { max-width: 100%; }
    .kfw-pdp__buy { padding: 22px; }
    .kfw-price__value { font-size: 36px; }
    .kfw-benefits { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 16px; }
    .kfw-benefits li { font-size: 14px; }
}
@media (min-width: 1200px) {
    .kfw-pdp__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
}

/* =====================================================================
 * PÉNZTÁR (kosár / szállítási adatok / ellenőrzés) – 2026-11
 * Közös kártyás megjelenés: .kfw-funnel. A JS-kampók (.row, .value, .js-*) érintetlenek.
 * ===================================================================== */

/* --- Lépésjelző: mobilon kompakt, 3 oszlopos ---------------------------- */
@media (max-width: 767px) {
    .steps-bar { padding: 10px 8px !important; margin-bottom: 12px; border-radius: 14px; }
    .steps-bar ul { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; }
    .steps-bar ul li { width: auto !important; float: none !important; padding: 0 !important; margin: 0 !important; text-align: center; border: 0 !important; }
    .steps-bar ul .step-1, .steps-bar ul li .comment { display: none !important; }
    .steps-bar ul li p.title { margin: 0; font-size: 12px !important; line-height: 1.25; display: flex; flex-direction: column; align-items: center; gap: 4px; }
    .steps-bar ul li p.title span { font-size: 12px !important; }
    .steps-bar ul li .icon { margin: 0 !important; transform: scale(.85); }
}

/* --- Értesítések ----------------------------------------------------------- */
#flashes .alert { border-radius: 12px; border: 0; padding: 12px 16px; font-size: 14px; }
#flashes .alert-warning { background: var(--kfw-green-50); color: var(--kfw-green-900); }
#flashes .alert-danger { background: var(--kfw-red-50); color: var(--kfw-red-600); }

/* --- Oldalkeret ------------------------------------------------------------ */
.kfw-funnel { padding: 16px !important; color: var(--kfw-ink); background: transparent !important; }
.kfw-funnel h1 {
    font-family: "GothamMedium", sans-serif; font-size: 24px !important; line-height: 1.2;
    text-align: left !important; text-transform: none !important; margin: 0 0 16px !important; padding: 0 !important; border: 0 !important;
}
.kfw-funnel h1::after, .kfw-funnel h1 .fa, .kfw-funnel h1 .icon { display: none !important; }
.kfw-eyebrow { margin: 0 0 2px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--kfw-green-600); font-weight: 600; }
.kfw-funnel > h2, .kfw-funnel .kfw-order-form > h2 { font-size: 20px !important; text-align: left; margin: 24px 0 12px !important; padding: 0 !important; border: 0 !important; }

/* --- Kártyák ------------------------------------------------------------- */
.kfw-funnel .kfw-card {
    background: #fff !important; border: 1px solid #e1e8dc !important; border-radius: 16px;
    padding: 14px 16px !important; margin: 0 0 14px !important; box-shadow: 0 1px 2px rgba(0, 40, 0, .04);
}
.kfw-funnel .kfw-card .item { padding: 10px 0 !important; border: 0 !important; background: transparent !important; }
.kfw-funnel .kfw-card .item + .item { border-top: 1px solid #edf1ea !important; }
.kfw-funnel .kfw-card .item.head {
    padding: 0 0 10px !important; background: transparent !important; color: var(--kfw-ink) !important;
    font-family: "GothamMedium", sans-serif; font-size: 16px !important; text-transform: none !important;
}
.kfw-funnel .kfw-card .item.head .row > div:not(:first-child) { display: none; }
.kfw-funnel .kfw-card .item.head .fa { color: var(--kfw-green-600); margin-right: 6px; }
.kfw-funnel .row { margin-left: 0; margin-right: 0; }
.kfw-funnel .kfw-card .row > [class*="col-"] { padding-left: 0; padding-right: 0; margin-left: 0; }
.kfw-edit-link { float: right; font-family: "GothamBook", sans-serif; font-size: 13px; color: var(--kfw-green-800) !important; text-decoration: underline; }
.kfw-edit-link .fa { color: var(--kfw-green-800) !important; margin-right: 3px; }

/* --- Szállítási időpont ---------------------------------------------------- */
.kfw-funnel .shipping .item .row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.kfw-funnel .shipping .shipping-date select,
.kfw-funnel .kfw-card select.form-control {
    width: 100% !important; height: 48px; font-size: 16px; border: 1px solid var(--kfw-line); border-radius: 10px;
    padding: 0 12px; background-color: #fff; color: var(--kfw-ink); box-shadow: none; margin: 0 !important;
}
.kfw-funnel .shipping .call { padding: 0 !important; text-align: left !important; }
.kfw-funnel .shipping .call p { margin: 0; font-size: 13px !important; color: var(--kfw-muted) !important; text-align: left !important; }
.kfw-funnel .shipping .call a.mobile { color: var(--kfw-green-800); font-family: "GothamMedium", sans-serif; white-space: nowrap; }
.kfw-funnel .shipping .shipping-day p { margin: 0 0 4px; font-family: "GothamMedium", sans-serif; }

/* TIPP dobozok -> zöld/piros jelzősáv */
.kfw-funnel .tips {
    background: var(--kfw-green-50) !important; border: 0 !important; border-radius: 12px;
    padding: 10px 12px !important; margin: 10px 0 0 !important; font-size: 13px; line-height: 1.45;
}
.kfw-funnel .tips .row { display: block; }
.kfw-funnel .tips .row > [class*="col-"] { width: auto !important; float: none !important; padding: 0 !important; }
.kfw-funnel .tips .row > .col-sm-2 strong {
    display: inline-block; margin-bottom: 4px; font-size: 11px; letter-spacing: .06em;
    color: #fff; background: var(--kfw-green-600); border-radius: 999px; padding: 2px 8px;
}
.kfw-funnel .tips p { margin: 0 0 4px; }
.kfw-funnel .tips .text-red { color: #9a3b00 !important; }
.kfw-funnel .tips .text-green { color: var(--kfw-green-800) !important; }

/* --- Tételsorok (kosár / összesítő) -------------------------------------- */
.kfw-funnel .kfw-lines .item:not(.head) > .row {
    display: grid; align-items: center; gap: 8px 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "name name" "qty price";
}
.kfw-funnel .kfw-lines .item:not(.head) > .row > [class*="col-"] { width: auto !important; float: none !important; }
.kfw-funnel .kfw-lines .product-name, .kfw-funnel .kfw-lines .add-item { grid-area: name; }
.kfw-funnel .kfw-lines .product-name p { margin: 0; font-family: "GothamMedium", sans-serif; font-size: 15px; }
.kfw-funnel .kfw-lines .value { grid-area: qty; display: flex; align-items: center; gap: 0; }
.kfw-funnel .kfw-lines .unit-price, .kfw-funnel .kfw-lines .price {
    grid-area: price; text-align: right !important; font-family: "GothamBold", sans-serif !important;
    font-size: 16px !important; color: var(--kfw-green-900) !important; white-space: nowrap; text-transform: none;
}
.kfw-funnel .kfw-lines .line-del { grid-area: del; }
.kfw-funnel--cart .kfw-lines .item:not(.head) > .row:has(.line-del) {
    grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "name name del" "qty price price";
}
.kfw-funnel .kfw-lines--readonly .item:not(.head) > .row > div:empty { display: none; }

/* mennyiség-léptető: − 2 db + */
.kfw-funnel .value .btn-minus { order: 1; }
.kfw-funnel .value .kfw-qty-val { order: 2; min-width: 56px; text-align: center; font-family: "GothamMedium", sans-serif; font-size: 15px; }
.kfw-funnel .value .btn-plus { order: 3; }
.kfw-funnel .value .btn-plus, .kfw-funnel .value .btn-minus {
    width: 40px; height: 40px; padding: 0 !important; margin: 0 !important; line-height: 1 !important;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: "GothamMedium", sans-serif !important; font-size: 20px !important;
    color: var(--kfw-green-800) !important; background: #fff !important;
    border: 1px solid var(--kfw-line) !important; border-radius: 10px !important; box-shadow: none !important;
}
.kfw-funnel .value .btn-plus:hover, .kfw-funnel .value .btn-minus:hover { background: var(--kfw-green-50) !important; border-color: var(--kfw-green-500) !important; }
.kfw-funnel .btn-delete {
    width: 40px; height: 40px; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center;
    background: #fff !important; border: 1px solid #f1d4d4 !important; border-radius: 10px !important; color: var(--kfw-red-600) !important;
}
.kfw-funnel .btn-delete .fa { color: var(--kfw-red-600) !important; font-size: 18px; }
.kfw-funnel .btn-delete:hover { background: var(--kfw-red-50) !important; }

/* --- Kupon ---------------------------------------------------------------------------- */
.kfw-funnel .voucher .item .row > div { width: 100% !important; text-align: left !important; }
.kfw-coupon { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; float: none !important; width: 100%; }
.kfw-coupon .form-group { display: contents !important; }
.kfw-coupon label { grid-column: 1 / -1; margin: 0 !important; font-family: "GothamMedium", sans-serif; font-size: 15px !important; text-transform: none !important; color: var(--kfw-ink) !important; }
.kfw-coupon input.form-control {
    width: 100% !important; height: 48px; font-size: 16px; border: 1px solid var(--kfw-line); border-radius: 10px;
    padding: 0 12px; text-transform: uppercase; box-shadow: none;
}
.kfw-coupon .btn {
    height: 48px; padding: 0 18px; border-radius: 10px !important; font-size: 15px !important; text-transform: none !important;
    background: #fff !important; color: var(--kfw-green-800) !important; border: 1.5px solid var(--kfw-green-800) !important;
}
.kfw-coupon .btn:hover { background: var(--kfw-green-50) !important; }
.kfw-funnel .js-coupon-msg:not(:empty) { margin-top: 8px; font-size: 13px; }

/* --- Talp ajánlat ---------------------------------------------------------- */
.kfw-upsell .promotion { padding: 0 0 6px !important; margin: 0 !important; text-align: left !important; background: none !important; }
.kfw-upsell .promotion p { margin: 0 0 4px; font-size: 13px !important; color: var(--kfw-muted) !important; text-align: left !important; }
.kfw-upsell__badge {
    display: inline-block; margin-bottom: 6px; font-size: 11px !important; letter-spacing: .06em; text-transform: uppercase;
    color: var(--kfw-red-600) !important; background: var(--kfw-red-50); border-radius: 999px; padding: 2px 8px; font-family: "GothamBold", sans-serif;
}
.kfw-upsell .promotion .kfw-upsell__title { font-family: "GothamMedium", sans-serif; font-size: 17px !important; color: var(--kfw-ink) !important; margin-bottom: 2px; }
.kfw-upsell .item.head { display: none; }
.kfw-upsell .add-item .strong { font-family: "GothamMedium", sans-serif; font-size: 15px; margin-bottom: 8px; }
/* kérek / nem kérek: szegmentált gombpár */
.kfw-upsell .add-item { display: flex; flex-wrap: wrap; gap: 8px; }
.kfw-upsell .add-item .strong { flex: 1 1 100%; margin-bottom: 0; }
.kfw-upsell .add-item .radio-color-1, .kfw-upsell .add-item .radio-color-2 { flex: 1 1 0; }
.kfw-upsell .add-item .icr-label {
    display: flex !important; align-items: center; justify-content: center; gap: 8px; width: 100%;
    min-height: 44px; margin: 0 !important; padding: 0 12px !important; cursor: pointer;
    border: 1px solid var(--kfw-line); border-radius: 10px; background: #fff; font-size: 15px;
}
.kfw-upsell .add-item .radio-color-1 .icr-label.checked { border-color: var(--kfw-green-500); background: var(--kfw-green-50); color: var(--kfw-green-900); font-family: "GothamMedium", sans-serif; }
.kfw-upsell .add-item .radio-color-2 .icr-label.checked { border-color: #b9c4b3; background: #f4f6f3; }
.kfw-upsell .add-item .icr-item { position: relative; flex: 0 0 18px; }

/* --- Összesen ---------------------------------------------------------------------- */
.kfw-funnel .kfw-sum {
    background: #fff !important; color: var(--kfw-ink) !important; border: 2px solid var(--kfw-green-800);
    border-radius: 16px; padding: 14px 16px !important; margin: 0 0 16px !important;
}
.kfw-funnel .kfw-sum .row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.kfw-funnel .kfw-sum .row > div { width: auto !important; float: none !important; padding: 0 !important; }
.kfw-funnel .kfw-sum .title {
    font-family: "GothamMedium", sans-serif !important; font-size: 17px !important; color: var(--kfw-ink) !important; text-transform: none !important; padding-top: 4px !important;
}
.kfw-funnel .kfw-sum p { margin: 0 0 2px; color: var(--kfw-muted) !important; font-size: 13px !important; text-align: right; }
.kfw-funnel .kfw-sum .orig-price { text-decoration: line-through; color: var(--kfw-muted) !important; font-size: 14px !important; }
.kfw-funnel .kfw-sum .discount span { color: var(--kfw-red-600) !important; font-family: "GothamBold", sans-serif; }
.kfw-funnel .kfw-sum .price {
    font-family: "GothamBold", sans-serif !important; font-size: 28px !important; line-height: 1.15; color: var(--kfw-green-900) !important;
    text-transform: none !important; margin-top: 4px !important; white-space: nowrap;
}

/* --- Gombok ----------------------------------------------------------------- */
.kfw-funnel__actions { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 4px 0 8px; }
.kfw-funnel .next-step, .kfw-funnel .kfw-cta {
    display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
    width: 100%; max-width: 520px; min-height: 56px; padding: 14px 20px !important;
    background: var(--kfw-green-500) !important; color: #fff !important; border: 0 !important; border-radius: 12px !important;
    font-family: "GothamMedium", sans-serif !important; font-size: 17px !important; letter-spacing: .02em; text-transform: uppercase;
    box-shadow: 0 6px 16px rgba(61, 189, 4, .28) !important; white-space: normal;
}
.kfw-funnel .next-step:hover, .kfw-funnel .next-step:focus { background: var(--kfw-green-600) !important; color: #fff !important; }
.kfw-funnel .next-step .fa { color: #fff !important; }
.kfw-funnel__back { font-size: 14px; color: var(--kfw-green-800) !important; text-decoration: underline; }
.kfw-funnel__back .fa { margin-right: 4px; }
.kfw-funnel .kfw-submit-row, .kfw-funnel form > p.text-center { text-align: center; }

/* --- Adatlap (szállítási adatok oldal) ------------------------------------------------ */
.kfw-funnel .kfw-order-form .user-data {
    background: #fff !important; border: 1px solid #e1e8dc; border-radius: 16px; padding: 16px !important; margin: 0 0 8px;
}
.kfw-funnel .user-data h3 { font-family: "GothamMedium", sans-serif; font-size: 17px !important; margin: 18px 0 10px !important; padding: 0 !important; border: 0 !important; text-transform: none !important; }
.kfw-funnel .user-data h3:first-child { margin-top: 0 !important; }

/* --- Ellenőrzés oldal ------------------------------------------------------------- */
.kfw-review { padding: 16px !important; }
.kfw-review__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 18px 0 8px; }
.kfw-review__head:first-child { margin-top: 0; }
.kfw-review__head h3 { margin: 0 !important; }
.kfw-review .kfw-review__head .kfw-edit-link { float: none; }
.kfw-review .form-horizontal .form-group { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 8px; margin: 0 !important; padding: 8px 0; border-top: 1px solid #edf1ea; }
.kfw-review .form-horizontal .form-group > [class*="col-"] { width: auto !important; float: none !important; padding: 0 !important; }
.kfw-review .control-label { text-align: left !important; padding: 0 !important; color: var(--kfw-muted); font-family: "GothamBook", sans-serif; font-size: 14px; }
.kfw-review .value { margin: 0; font-family: "GothamMedium", sans-serif; font-size: 15px; overflow-wrap: anywhere; }
.kfw-review .form-group .col-sm-24 { grid-column: 1 / -1; }
.kfw-review .wrapper { display: none; }
.kfw-funnel .kfw-callout {
    background: var(--kfw-green-50) !important; border: 0 !important; border-radius: 12px; padding: 12px 14px !important; margin: 0 0 14px !important; color: var(--kfw-green-900);
}
.kfw-funnel .kfw-callout p { margin: 0; }
.kfw-funnel .kfw-callout .fa { color: var(--kfw-green-600); }
.kfw-funnel--finalize .aszf {
    background: #fff; border: 1px solid #e1e8dc; border-radius: 16px; padding: 6px 16px; margin: 0 0 16px;
}
.kfw-funnel--finalize .aszf.has-error { border-color: var(--kfw-red-600); background: var(--kfw-red-50); }
.kfw-funnel--finalize .aszf a { color: var(--kfw-green-800); text-decoration: underline; }
.kfw-funnel--finalize .shipping .item .row { display: block; }
.kfw-funnel--finalize .shipping .item.head .row > div { display: block !important; width: auto !important; float: none !important; }
.kfw-funnel--finalize .shipping .shipping-day { padding: 0 !important; margin-top: 6px; }

/* --- Asztali ------------------------------------------------------------------- */
@media (min-width: 768px) {
    .kfw-funnel { padding: 24px 32px !important; }
    .kfw-funnel h1 { font-size: 28px !important; }
    .kfw-funnel .kfw-card { padding: 18px 22px !important; }
    .kfw-funnel .shipping .item .row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr); align-items: center; }
    .kfw-funnel .kfw-lines .item:not(.head) > .row {
        grid-template-columns: minmax(0, 1fr) 160px 120px; grid-template-areas: "name qty price";
    }
    .kfw-funnel--cart .kfw-lines .item:not(.head) > .row:has(.line-del) {
        grid-template-columns: minmax(0, 1fr) 160px 120px 44px; grid-template-areas: "name qty price del";
    }
    .kfw-upsell .add-item { flex-wrap: nowrap; }
    .kfw-upsell .add-item .strong { flex: 1 1 100%; }
    .kfw-funnel .kfw-sum .price { font-size: 32px !important; }
    .kfw-review .form-horizontal .form-group { grid-template-columns: 200px minmax(0, 1fr); }
}

/* --- Pénztár: javítások (Bootstrap clearfix + oszlopszélességek a grid/flex sorokban) --- */
.kfw-funnel .kfw-card .item > .row::before, .kfw-funnel .kfw-card .item > .row::after,
.kfw-funnel .kfw-sum .row::before, .kfw-funnel .kfw-sum .row::after,
.kfw-review .form-horizontal .form-group::before, .kfw-review .form-horizontal .form-group::after { display: none !important; content: none !important; }
.kfw-funnel .kfw-card .item > .row > [class*="col-"] { width: auto !important; float: none !important; margin-left: 0 !important; }
.kfw-funnel .kfw-card .item.head .row > div:first-child { text-align: left !important; }
.kfw-funnel .kfw-sum .title { text-align: left !important; }
.kfw-funnel .kfw-sum .js-total-price, .kfw-funnel .kfw-sum .text-right { text-align: right !important; margin-left: auto; }
.kfw-funnel .kfw-sum .discount { white-space: nowrap; }
.kfw-funnel .shipping .call p { line-height: 1.45 !important; }
.kfw-funnel .shipping .shipping-date select { padding-right: 32px; text-overflow: ellipsis; }
.kfw-funnel .kfw-coupon input.form-control { height: 48px !important; line-height: 48px; padding: 0 12px !important; border-radius: 10px !important; }
.kfw-upsell .add-item .icr-label { white-space: nowrap; }
@media (min-width: 768px) {
    .kfw-upsell .add-item { flex-wrap: wrap; }
    .kfw-upsell .add-item .radio-color-1, .kfw-upsell .add-item .radio-color-2 { flex: 0 0 140px; }
    .kfw-funnel .kfw-lines .item:not(.head) > .row { grid-template-columns: minmax(0, 1fr) 150px 110px; }
    .kfw-funnel--cart .kfw-lines .item:not(.head) > .row:has(.line-del) { grid-template-columns: minmax(0, 1fr) 150px 110px 44px; }
    .kfw-funnel .shipping .item .row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.1fr); }
}
@media (max-width: 767px) {
    .steps-bar ul li .icon { display: none !important; }
    .steps-bar ul li p.title { padding: 6px 2px; border-radius: 8px; }
    .steps-bar ul li.active p.title { background: rgba(255, 255, 255, .12); }
    .kfw-funnel .next-step, .kfw-funnel .kfw-cta { font-size: 16px !important; letter-spacing: 0; }
}
.kfw-review .form-horizontal .form-group { display: grid !important; grid-template-columns: 110px minmax(0, 1fr) !important; align-items: baseline; }
.kfw-review .form-horizontal .form-group > .col-sm-24 { grid-column: 1 / -1; }
.kfw-review .form-horizontal .form-group .value { margin: 0 !important; }
.kfw-review .checkbox { margin: 12px 0 2px; }
.kfw-funnel--finalize .aszf .kfw-checkbox label span { flex: 1 1 auto; }
@media (min-width: 768px) { .kfw-review .form-horizontal .form-group { grid-template-columns: 200px minmax(0, 1fr) !important; } }
.kfw-funnel--finalize .aszf, .kfw-funnel--finalize .aszf label { text-align: left !important; justify-content: flex-start; }
.kfw-review .form-horizontal { margin-bottom: 0 !important; }
.kfw-review .form-horizontal:last-child .form-group:last-child { border-bottom: 0; }
.kfw-funnel .kfw-card .item:last-child { padding-bottom: 0 !important; }
.kfw-funnel--finalize .shipping .item.head { padding-bottom: 0 !important; }
