/* F-Tech Konfigurator - front v3 (Lelo-Bud). Kotwica #ftech-konfigurator: wygrywa z globalnymi stylami Astry. */
#ftech-konfigurator {
    --k-red: #AD101F; --k-red-hover: #C41428; --k-red-soft: rgba(173,16,31,0.07);
    --k-dark: #08060B; --k-scene: #0E0C11;
    --k-cream: #F9F6F2; --k-cream2: #F5F0EB;
    --k-text: #44403B; --k-muted: #64605B;
    --k-border: #E9E2D8; --k-border-strong: #DCD3C5;
    --k-ease: cubic-bezier(0.4,0,0.2,1); --k-ease-out: cubic-bezier(0.16,1,0.3,1);
    font-family: 'Figtree', system-ui, sans-serif;
    color: var(--k-text);
    -webkit-font-smoothing: antialiased;
    display: block;
    max-width: 1240px;
    margin: 0 auto !important;
    padding: 0.75rem 0 6.5rem;
}
#ftech-konfigurator *, #ftech-konfigurator *::before, #ftech-konfigurator *::after { box-sizing: border-box; margin: 0; padding: 0; }
#ftech-konfigurator img { max-width: 100%; display: block; border: 0; }
#ftech-konfigurator h1, #ftech-konfigurator h2, #ftech-konfigurator h3 { font-family: 'Bricolage Grotesque', system-ui, sans-serif; color: var(--k-dark); line-height: 1.12; margin: 0; }
#ftech-konfigurator p { margin: 0; }

/* ===== RESET ELEMENTÓW (przed komponentami; ta sama baza specyficzności) ===== */
#ftech-konfigurator button {
    touch-action: manipulation;
    appearance: none !important; background: transparent !important; border: none !important;
    border-radius: 0 !important; box-shadow: none !important; color: inherit !important;
    font-family: inherit !important; font-size: inherit !important; line-height: 1.3 !important;
    padding: 0 !important; min-height: 0 !important; text-transform: none !important;
    letter-spacing: normal !important; cursor: pointer; transition: none;
}
#ftech-konfigurator input, #ftech-konfigurator textarea {
    appearance: none !important; background: #FFFFFF !important; border: 1.5px solid var(--k-border) !important;
    border-radius: 12px !important; box-shadow: none !important; color: var(--k-dark) !important;
    font-family: inherit !important; line-height: 1.4 !important;
    /* 16px to próg, poniżej którego iOS przybliża stronę przy wejściu w pole */
    font-size: 16px !important;
    width: 100%; padding: 0 1rem !important; height: 52px;
    transition: border-color 0.2s var(--k-ease), box-shadow 0.2s var(--k-ease);
}
#ftech-konfigurator textarea { height: auto; min-height: 112px; padding: 0.85rem 1rem !important; resize: vertical; }
#ftech-konfigurator input:focus, #ftech-konfigurator textarea:focus {
    outline: none !important; border-color: var(--k-red) !important; box-shadow: 0 0 0 3px rgba(173,16,31,0.14) !important;
}
#ftech-konfigurator input.is-blad, #ftech-konfigurator textarea.is-blad { border-color: #DC2626 !important; }
#ftech-konfigurator input[type="checkbox"] {
    appearance: auto !important; width: 18px; height: 18px; padding: 0 !important;
    accent-color: var(--k-red); flex-shrink: 0; margin-top: 2px; border-radius: 4px !important;
}

#ftech-konfigurator .fkonf__laduje { display: flex; align-items: center; justify-content: center; gap: 0.75rem; min-height: 220px; color: var(--k-muted); font-size: 0.9375rem; }
#ftech-konfigurator .fkonf__spinner { width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--k-cream2); border-top-color: var(--k-red); animation: fkonf-obrot 0.8s linear infinite; }
@keyframes fkonf-obrot { to { transform: rotate(360deg); } }
@keyframes fkonf-wjazd { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

/* ===== Nagłówek kroku ===== */
#ftech-konfigurator .fkonf__glowa { padding: 0.75rem 1.25rem 0; margin-bottom: 1rem; animation: fkonf-wjazd 0.5s var(--k-ease-out); }
#ftech-konfigurator .fkonf__tytul { position: relative; font-size: clamp(1.55rem, 3.4vw, 2.3rem); font-weight: 800; letter-spacing: -0.025em; padding-bottom: 0.7rem; }
#ftech-konfigurator .fkonf__tytul::after { content: ''; position: absolute; left: 2px; bottom: 0; width: 56px; height: 4px; background: var(--k-red); clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 100%, 0 100%); }
#ftech-konfigurator .fkonf__pod { font-size: 0.92rem; color: var(--k-muted); margin-top: 0.45rem; line-height: 1.65; max-width: 62ch; }

/* ===== Stepper ===== */
#ftech-konfigurator .fkonf__stepper {
    display: flex; align-items: center; gap: 0.2rem;
    margin: 0 1.25rem 1.75rem; padding: 0.45rem;
    background: var(--k-cream); border: 1px solid var(--k-border); border-radius: 60px;
    overflow-x: auto; scrollbar-width: none;
}
#ftech-konfigurator .fkonf__stepper::-webkit-scrollbar { display: none; }
#ftech-konfigurator .fkonf__step {
    display: inline-flex !important; align-items: center; gap: 0.45rem; flex-shrink: 0;
    padding: 0.45rem 0.9rem 0.45rem 0.45rem !important; border-radius: 50px !important;
    font-size: 0.78rem !important; font-weight: 600 !important; color: var(--k-muted) !important;
    transition: background 0.25s var(--k-ease), color 0.25s var(--k-ease), box-shadow 0.25s var(--k-ease);
}
#ftech-konfigurator .fkonf__step-nr {
    width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.72rem; font-weight: 700; background: #EDE6DB; color: var(--k-muted);
    transition: all 0.25s var(--k-ease);
}
#ftech-konfigurator .fkonf__step.is-done { color: var(--k-dark) !important; }
#ftech-konfigurator .fkonf__step.is-done .fkonf__step-nr { background: rgba(173,16,31,0.12); color: var(--k-red); }
#ftech-konfigurator .fkonf__step.is-active { color: var(--k-dark) !important; background: #FFFFFF !important; box-shadow: 0 2px 12px rgba(8,6,11,0.1); }
#ftech-konfigurator .fkonf__step.is-active .fkonf__step-nr { background: var(--k-red); color: #fff; }
#ftech-konfigurator .fkonf__step:disabled { cursor: default; opacity: 0.5; }
#ftech-konfigurator .fkonf__step:not(:disabled):hover:not(.is-active) { background: rgba(255,255,255,0.7) !important; color: var(--k-dark) !important; }
#ftech-konfigurator .fkonf__step:focus-visible { outline: 3px solid rgba(173,16,31,0.35) !important; outline-offset: 2px; }

/* ===== Karty wyboru (modele / układy / standard) ===== */
#ftech-konfigurator .fkonf__karty { display: grid; grid-template-columns: 1fr; gap: 1.1rem; padding: 0 1.25rem; }
#ftech-konfigurator .fkonf__karta {
    position: relative; display: flex !important; flex-direction: column; text-align: left; width: 100%;
    background: #FFFFFF !important; border: 2px solid var(--k-border-strong) !important;
    border-radius: 16px !important; overflow: hidden;
    box-shadow: 0 1px 3px rgba(8,6,11,0.04);
    transition: border-color 0.25s var(--k-ease), transform 0.3s var(--k-ease), box-shadow 0.3s var(--k-ease);
    animation: fkonf-wjazd 0.45s var(--k-ease-out) backwards;
}
#ftech-konfigurator .fkonf__karta:nth-child(2) { animation-delay: 0.05s; }
#ftech-konfigurator .fkonf__karta:nth-child(3) { animation-delay: 0.1s; }
#ftech-konfigurator .fkonf__karta:nth-child(4) { animation-delay: 0.15s; }
#ftech-konfigurator .fkonf__karta:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(8,6,11,0.12); border-color: rgba(173,16,31,0.45) !important; }
#ftech-konfigurator .fkonf__karta:focus-visible { outline: 3px solid rgba(173,16,31,0.4) !important; outline-offset: 3px; }
#ftech-konfigurator .fkonf__karta.is-wybrana {
    border-color: var(--k-red) !important;
    box-shadow: 0 0 0 1px var(--k-red), 0 12px 30px rgba(173,16,31,0.18);
}
#ftech-konfigurator .fkonf__karta-foto { position: relative; aspect-ratio: 4/3; background: linear-gradient(160deg, var(--k-cream) 0%, var(--k-cream2) 100%); overflow: hidden; border-bottom: 1px solid var(--k-cream2); }
#ftech-konfigurator .fkonf__karta-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--k-ease); }
#ftech-konfigurator .fkonf__karta:hover .fkonf__karta-foto img { transform: scale(1.04); }
#ftech-konfigurator .fkonf__karta-foto--plan { background: #fff; }
#ftech-konfigurator .fkonf__karta-foto--plan img { object-fit: contain; padding: 1rem; }
#ftech-konfigurator .fkonf__karta-foto--plan img, #ftech-konfigurator .fkonf__karta-foto--plan:hover img { transform: none !important; }
#ftech-konfigurator .fkonf__karta-wznow {
    position: absolute; top: 0.7rem; left: 0.7rem; z-index: 2;
    font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
    color: #fff; background: var(--k-red); border-radius: 50px; padding: 0.28rem 0.7rem;
    box-shadow: 0 4px 12px rgba(173,16,31,0.35);
}
#ftech-konfigurator .fkonf__karta-wznow-opis { display: block; margin-top: 0.25rem; font-size: 0.74rem; font-weight: 600; color: var(--k-red); }
#ftech-konfigurator .fkonf__karta-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #D8D0C6; }
#ftech-konfigurator .fkonf__karta-cialo { padding: 1rem 1.15rem 1.1rem; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
#ftech-konfigurator .fkonf__karta-nazwa { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 1.08rem; font-weight: 800; color: var(--k-dark); letter-spacing: -0.01em; }
#ftech-konfigurator .fkonf__karta-cena { display: inline-block; margin-top: 0.35rem; font-size: 0.78rem; font-weight: 700; color: var(--k-red); background: var(--k-red-soft); border: 1px solid rgba(173,16,31,0.14); border-radius: 50px; padding: 0.22rem 0.7rem; }
#ftech-konfigurator .fkonf__karta-znacznik {
    width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
    border: 2px solid var(--k-border-strong); background: #fff;
    display: flex; align-items: center; justify-content: center; color: transparent;
    transition: all 0.25s var(--k-ease);
}
#ftech-konfigurator .fkonf__karta.is-wybrana .fkonf__karta-znacznik { background: var(--k-red); border-color: var(--k-red); color: #fff; }

/* ===== Widok: scena + panel opcji ===== */
/* Blok, nie grid: podgląd przykleja się w obrębie całej sekcji, także przy długiej liście opcji */
#ftech-konfigurator .fkonf__widok { display: block; padding: 0 1.25rem; }
#ftech-konfigurator .fkonf__widok > .fkonf__scena { margin-bottom: 1.25rem; }
#ftech-konfigurator .fkonf__scena {
    position: sticky; top: 74px; z-index: 40;
    aspect-ratio: 16/10; border-radius: 18px; overflow: hidden;
    transition: aspect-ratio 0.3s var(--k-ease), border-radius 0.3s var(--k-ease), box-shadow 0.3s var(--k-ease);
    background: radial-gradient(ellipse 85% 75% at 50% 32%, #FFFFFF 0%, var(--k-cream) 55%, #EFE8DF 100%);
    border: 1px solid var(--k-border);
    box-shadow: inset 0 0 60px rgba(8,6,11,0.05), 0 16px 40px rgba(8,6,11,0.1);
    border-bottom: 4px solid var(--k-red);
}
#ftech-konfigurator .fkonf__scena::after { content: ''; position: absolute; left: 12%; right: 12%; bottom: 7%; height: 8%; background: radial-gradient(ellipse at center, rgba(8,6,11,0.18), transparent 72%); filter: blur(7px); pointer-events: none; }
#ftech-konfigurator .fkonf__scena img { position: absolute; inset: 2.5%; width: 95%; height: 95%; object-fit: contain; }
/* Po przewinięciu podglądu poza ekran: kurczy się i zostaje pod nagłówkiem */
#ftech-konfigurator .fkonf__scena.is-przypieta { aspect-ratio: 21/8; border-radius: 12px; box-shadow: 0 10px 26px rgba(8,6,11,0.16); }
#ftech-konfigurator .fkonf__scena-lupa {
    position: absolute; right: 0.85rem; bottom: 0.85rem; z-index: 3;
    width: 40px !important; height: 40px !important; border-radius: 50% !important;
    background: rgba(255,255,255,0.94) !important; color: var(--k-dark) !important;
    border: 1px solid var(--k-border) !important;
    display: inline-flex !important; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px rgba(8,6,11,0.16) !important;
    transition: transform 0.2s var(--k-ease), background 0.2s var(--k-ease);
}
#ftech-konfigurator .fkonf__scena-lupa:hover { transform: scale(1.08); background: #fff !important; }
#ftech-konfigurator .fkonf__scena-lupa:focus-visible { outline: 3px solid rgba(173,16,31,0.45) !important; outline-offset: 2px; }

/* Podgląd pełnoekranowy (poza kontenerem wtyczki - własny, twardy reset) */
.fkonf__pelny {
    position: fixed; inset: 0; z-index: 99999;
    background: rgba(249,246,242,0.97); backdrop-filter: blur(10px);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 1rem; padding: 4.5rem 1rem 1.25rem;
    font-family: 'Figtree', system-ui, sans-serif;
}
.fkonf__pelny button {
    appearance: none !important; font-family: inherit !important; cursor: pointer;
    text-transform: none !important; letter-spacing: normal !important;
    box-shadow: none !important; margin: 0 !important; line-height: 1 !important;
    touch-action: manipulation;
}
.fkonf__pelny-scena {
    position: relative; width: 100%; max-width: min(96vw, 1500px); aspect-ratio: 16/10; max-height: 74svh;
    background: radial-gradient(ellipse 85% 75% at 50% 32%, #FFFFFF 0%, #F9F6F2 60%, #EFE8DF 100%);
    border-radius: 16px; overflow: hidden; box-shadow: 0 30px 70px rgba(8,6,11,0.18);
}
.fkonf__pelny-scena img { position: absolute; inset: 1.5%; width: 97%; height: 97%; object-fit: contain; }
.fkonf__pelny-scena .fkonf__scena-pusta { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #B3AAA0; font-size: 0.9rem; }
.fkonf__pelny .fkonf__pelny-zamknij {
    position: absolute; top: 1rem; right: 1rem;
    width: 52px !important; height: 52px !important; min-height: 52px !important;
    padding: 0 !important; border-radius: 50% !important;
    border: 1.5px solid #DCD3C5 !important; background: #FFFFFF !important; color: #08060B !important;
    display: inline-flex !important; align-items: center; justify-content: center;
    box-shadow: 0 6px 18px rgba(8,6,11,0.14) !important;
    transition: background 0.2s cubic-bezier(0.4,0,0.2,1), color 0.2s cubic-bezier(0.4,0,0.2,1), transform 0.2s cubic-bezier(0.4,0,0.2,1);
}
.fkonf__pelny .fkonf__pelny-zamknij:hover { background: #AD101F !important; border-color: #AD101F !important; color: #FFFFFF !important; transform: scale(1.05); }
.fkonf__pelny .fkonf__pelny-zamknij:focus-visible { outline: 3px solid rgba(173,16,31,0.45) !important; outline-offset: 3px; }
.fkonf__pelny .fkonf__pelny-gotowe {
    flex-shrink: 0;
    padding: 0.9rem 2rem !important; min-height: 52px !important;
    border: none !important; border-radius: 0 !important;
    background: #AD101F !important; color: #FFFFFF !important;
    font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
    font-size: 0.95rem !important; font-weight: 700 !important;
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
    box-shadow: 0 6px 18px rgba(173,16,31,0.35) !important;
    transition: background 0.2s cubic-bezier(0.4,0,0.2,1), transform 0.2s cubic-bezier(0.4,0,0.2,1);
}
.fkonf__pelny .fkonf__pelny-gotowe:hover { background: #C41428 !important; transform: translateY(-2px); }
.fkonf__pelny .fkonf__pelny-gotowe:focus-visible { outline: 3px solid rgba(173,16,31,0.45) !important; outline-offset: 3px; }
#ftech-konfigurator .fkonf__scena-pusta { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 0.6rem; align-items: center; justify-content: center; color: #B3AAA0; font-size: 0.85rem; text-align: center; padding: 1rem; }
#ftech-konfigurator .fkonf__scena-model {
    position: absolute; top: 1rem; left: 1rem; z-index: 2;
    font-family: 'Bricolage Grotesque', system-ui, sans-serif;
    font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--k-dark); background: rgba(255,255,255,0.82);
    border: 1px solid var(--k-border); border-radius: 50px; padding: 0.4rem 0.95rem;
    box-shadow: 0 2px 8px rgba(8,6,11,0.06);
    backdrop-filter: blur(6px);
}
#ftech-konfigurator .fkonf__panel { display: flex; flex-direction: column; gap: 0.8rem; }

/* Grupy (akordeony) */
#ftech-konfigurator .fkonf__grupa { background: #FFFFFF; border: 1.5px solid var(--k-border); border-radius: 14px; overflow: hidden; box-shadow: 0 1px 3px rgba(8,6,11,0.03); transition: box-shadow 0.25s var(--k-ease), border-color 0.25s var(--k-ease); }
#ftech-konfigurator .fkonf__grupa.is-otwarta { box-shadow: 0 10px 26px rgba(8,6,11,0.07); border-color: var(--k-border-strong); }
#ftech-konfigurator .fkonf__grupa-head {
    display: flex !important; align-items: center; justify-content: space-between; gap: 0.75rem;
    width: 100%; padding: 1rem 1.15rem !important; text-align: left;
    font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
    font-size: 0.98rem !important; font-weight: 700 !important; color: var(--k-dark) !important;
}
#ftech-konfigurator .fkonf__grupa-head:focus-visible { outline: 3px solid rgba(173,16,31,0.3) !important; outline-offset: -3px; }
#ftech-konfigurator .fkonf__grupa-wybor { font-family: 'Figtree', sans-serif; font-size: 0.76rem; font-weight: 500; color: var(--k-muted); display: block; margin-top: 3px; }
#ftech-konfigurator .fkonf__grupa-strzalka { flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--k-cream); display: flex; align-items: center; justify-content: center; color: var(--k-muted); transition: transform 0.3s var(--k-ease), background 0.2s var(--k-ease); }
#ftech-konfigurator .fkonf__grupa.is-otwarta .fkonf__grupa-strzalka { transform: rotate(180deg); background: var(--k-red-soft); color: var(--k-red); }
#ftech-konfigurator .fkonf__grupa-cialo { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.3s var(--k-ease); }
#ftech-konfigurator .fkonf__grupa.is-otwarta .fkonf__grupa-cialo { grid-template-rows: 1fr; }
#ftech-konfigurator .fkonf__grupa-cialo-in { overflow: hidden; min-height: 0; padding: 0 1.1rem; }
#ftech-konfigurator .fkonf__grupa.is-otwarta .fkonf__grupa-cialo-in { padding-bottom: 1.15rem; }
#ftech-konfigurator .fkonf__dzielnik { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.11em; color: var(--k-muted); margin: 0.95rem 0 0.6rem; display: flex; align-items: center; gap: 0.6rem; }
#ftech-konfigurator .fkonf__dzielnik::after { content: ''; flex: 1; height: 1px; background: var(--k-border); }

/* Kafle opcji - wyraźne ramki na każdym */
#ftech-konfigurator .fkonf__opcje { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 0.7rem; }
#ftech-konfigurator .fkonf__opcja {
    display: flex !important; flex-direction: column; gap: 0; text-align: center; width: 100%;
    background: #FFFFFF !important; border: 2px solid var(--k-border-strong) !important; border-radius: 12px !important;
    overflow: hidden;
    transition: border-color 0.2s var(--k-ease), transform 0.2s var(--k-ease), box-shadow 0.2s var(--k-ease);
}
#ftech-konfigurator .fkonf__opcja:hover { transform: translateY(-3px); border-color: rgba(173,16,31,0.5) !important; box-shadow: 0 8px 18px rgba(8,6,11,0.1); }
#ftech-konfigurator .fkonf__opcja:focus-visible { outline: 3px solid rgba(173,16,31,0.35) !important; outline-offset: 2px; }
#ftech-konfigurator .fkonf__opcja.is-wybrana {
    border-color: var(--k-red) !important;
    box-shadow: 0 0 0 1px var(--k-red), 0 6px 16px rgba(173,16,31,0.2);
    background: #FFF9F9 !important;
}
#ftech-konfigurator .fkonf__opcja-foto { position: relative; aspect-ratio: 1; background: var(--k-cream); border: none; border-radius: 0; overflow: hidden; }
#ftech-konfigurator .fkonf__opcja-foto img { width: 100%; height: 100%; object-fit: cover; }
#ftech-konfigurator .fkonf__opcja-check {
    position: absolute; top: 5px; right: 5px; width: 22px; height: 22px; border-radius: 50%;
    background: var(--k-red); color: #fff; display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 6px rgba(173,16,31,0.4);
    opacity: 0; transform: scale(0.5); transition: all 0.2s var(--k-ease);
}
#ftech-konfigurator .fkonf__opcja.is-wybrana .fkonf__opcja-check { opacity: 1; transform: scale(1); }
#ftech-konfigurator .fkonf__opcja-nazwa { font-size: 0.68rem; font-weight: 600; color: var(--k-text); line-height: 1.3; padding: 0.5rem 0.35rem 0.1rem; min-height: 2.2em; }
#ftech-konfigurator .fkonf__opcja-cena { font-size: 0.68rem; font-weight: 700; color: var(--k-red); padding: 0 0.35rem 0.55rem; }

/* ===== Listy wyboru / liczniki (kroki: rama, ogrzewanie, izolacja) ===== */
#ftech-konfigurator .fkonf__lista { display: flex; flex-direction: column; gap: 0.7rem; padding: 0 1.25rem; max-width: 920px; }
#ftech-konfigurator .fkonf__pozycja {
    display: flex !important; align-items: center; justify-content: space-between; gap: 1rem;
    width: 100%; background: #FFFFFF !important;
    border: 2px solid var(--k-border-strong) !important; border-radius: 14px !important;
    padding: 1rem 1.2rem !important; text-align: left;
    box-shadow: 0 1px 3px rgba(8,6,11,0.04);
    transition: border-color 0.2s var(--k-ease), box-shadow 0.2s var(--k-ease), transform 0.2s var(--k-ease);
}
#ftech-konfigurator button.fkonf__pozycja:hover { border-color: rgba(173,16,31,0.45) !important; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(8,6,11,0.08); }
#ftech-konfigurator .fkonf__pozycja.is-wybrana { border-color: var(--k-red) !important; box-shadow: 0 0 0 1px var(--k-red), 0 8px 22px rgba(173,16,31,0.14); background: #FFF9F9 !important; }
#ftech-konfigurator .fkonf__pozycja:focus-visible { outline: 3px solid rgba(173,16,31,0.35) !important; outline-offset: 2px; }
#ftech-konfigurator .fkonf__pozycja-nazwa { font-size: 0.94rem; font-weight: 700; color: var(--k-dark); }
#ftech-konfigurator .fkonf__pozycja-cena { font-size: 0.82rem; font-weight: 700; color: var(--k-red); white-space: nowrap; }
#ftech-konfigurator .fkonf__radio { width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0; border: 2px solid var(--k-border-strong); background: #fff; position: relative; transition: all 0.2s var(--k-ease); }
#ftech-konfigurator .fkonf__pozycja.is-wybrana .fkonf__radio { border-color: var(--k-red); }
#ftech-konfigurator .fkonf__pozycja.is-wybrana .fkonf__radio::after { content: ''; position: absolute; inset: 4px; border-radius: 50%; background: var(--k-red); }
#ftech-konfigurator .fkonf__licznik { display: flex; align-items: center; gap: 0.55rem; flex-shrink: 0; }
#ftech-konfigurator .fkonf__licznik button {
    width: 42px !important; height: 42px !important; border-radius: 10px !important;
    border: 2px solid var(--k-border-strong) !important; background: #FFFFFF !important;
    color: var(--k-dark) !important; font-size: 1.2rem !important; font-weight: 700 !important;
    display: inline-flex !important; align-items: center; justify-content: center;
    transition: all 0.2s var(--k-ease);
}
#ftech-konfigurator .fkonf__licznik button:hover { border-color: var(--k-red) !important; color: var(--k-red) !important; background: var(--k-red-soft) !important; }
#ftech-konfigurator .fkonf__licznik button:focus-visible { outline: 3px solid rgba(173,16,31,0.35) !important; }
#ftech-konfigurator .fkonf__licznik-wartosc { min-width: 28px; text-align: center; font-weight: 800; color: var(--k-dark); font-size: 1.05rem; }
#ftech-konfigurator .fkonf__naglowek-sekcji { padding: 0 1.25rem; margin: 1.7rem 0 0.8rem; font-size: 1.05rem; font-weight: 800; letter-spacing: -0.01em; display: flex; align-items: center; gap: 0.6rem; }
#ftech-konfigurator .fkonf__naglowek-sekcji::before { content: ''; width: 4px; height: 1.1em; border-radius: 4px; background: var(--k-red); }

/* ===== Formularze / transport ===== */
#ftech-konfigurator .fkonf__forma { padding: 0 1.25rem; display: flex; flex-direction: column; gap: 1rem; max-width: 620px; }
#ftech-konfigurator .fkonf__pole-label { font-size: 0.8rem; font-weight: 700; color: var(--k-dark); }
#ftech-konfigurator .fkonf__wiersz { display: flex; gap: 0.6rem; }
#ftech-konfigurator .fkonf__wynik-transport { background: var(--k-cream); border: 1.5px solid var(--k-border); border-radius: 14px; padding: 1.1rem 1.25rem; font-size: 0.9rem; line-height: 1.7; }
#ftech-konfigurator .fkonf__wynik-transport strong { color: var(--k-dark); }
#ftech-konfigurator button.fkonf__link { background: none !important; border: none !important; padding: 0 !important; font-size: 0.8rem !important; color: var(--k-muted) !important; text-decoration: underline; text-underline-offset: 3px; align-self: flex-start; }
#ftech-konfigurator button.fkonf__link:hover { color: var(--k-red) !important; }
#ftech-konfigurator .fkonf__zgoda { display: flex; align-items: flex-start; gap: 0.6rem; font-size: 0.78rem; color: var(--k-muted); line-height: 1.55; cursor: pointer; }

/* ===== Podsumowanie ===== */
#ftech-konfigurator .fkonf__pods { padding: 0 1.25rem; display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; }
#ftech-konfigurator .fkonf__pods-tabela {
    width: 100%; border-collapse: separate; border-spacing: 0;
    background: #FFFFFF; border: 1.5px solid var(--k-border-strong); border-radius: 16px; overflow: hidden;
    box-shadow: 0 2px 10px rgba(8,6,11,0.05);
}
#ftech-konfigurator .fkonf__pods-tabela th { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.09em; color: var(--k-muted); text-align: left; padding: 0.95rem 1.2rem; border-bottom: 1.5px solid var(--k-border); background: var(--k-cream); }
#ftech-konfigurator .fkonf__pods-tabela th:last-child { text-align: right; }
#ftech-konfigurator .fkonf__pods-tabela td { font-size: 0.875rem; padding: 0.72rem 1.2rem; border-bottom: 1px solid var(--k-cream2); vertical-align: top; color: var(--k-text); }
#ftech-konfigurator .fkonf__pods-tabela tr:last-child td { border-bottom: none; }
#ftech-konfigurator .fkonf__pods-tabela td:last-child { text-align: right; font-weight: 700; color: var(--k-dark); white-space: nowrap; }
#ftech-konfigurator .fkonf__pods-sekcja td { font-weight: 800; color: var(--k-red); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.11em; background: var(--k-cream); border-bottom: 1px solid var(--k-border); }
#ftech-konfigurator .fkonf__pods-bok { display: flex; flex-direction: column; gap: 1.25rem; }
#ftech-konfigurator .fkonf__pods-suma { background: var(--k-dark); border-radius: 16px; padding: 1.5rem 1.6rem; border-bottom: 4px solid var(--k-red); box-shadow: 0 14px 34px rgba(8,6,11,0.25); }
#ftech-konfigurator .fkonf__pods-suma p { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; color: rgba(255,255,255,0.66); font-size: 0.9rem; padding: 0.35rem 0; }
#ftech-konfigurator .fkonf__pods-suma p strong { color: #fff; font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 1.35rem; letter-spacing: -0.01em; }
#ftech-konfigurator .fkonf__pods-linia strong { font-size: 1rem !important; font-weight: 600; color: rgba(255,255,255,0.92) !important; }
#ftech-konfigurator .fkonf__pods-razem { margin-top: 0.5rem; padding-top: 0.9rem !important; border-top: 1px solid rgba(255,255,255,0.16); }
#ftech-konfigurator .fkonf__pods-razem strong { font-size: 1.5rem !important; }
#ftech-konfigurator .fkonf__pods-brutto strong { font-size: 1.05rem !important; color: rgba(255,255,255,0.85) !important; }
#ftech-konfigurator .fkonf__pods-hint { font-size: 0.74rem; color: rgba(255,255,255,0.45); margin-top: 0.6rem; line-height: 1.55; }
#ftech-konfigurator .fkonf__karta-forma { background: #FFFFFF; border: 1.5px solid var(--k-border-strong); border-radius: 16px; padding: 1.5rem 1.4rem; box-shadow: 0 2px 10px rgba(8,6,11,0.05); }
#ftech-konfigurator .fkonf__forma-tytul { font-size: 1.1rem; font-weight: 800; margin-bottom: 0.35rem; }
#ftech-konfigurator .fkonf__forma-pod { font-size: 0.8rem; color: var(--k-muted); line-height: 1.6; margin-bottom: 1.1rem; }
#ftech-konfigurator .fkonf__karta-forma .fkonf__forma { padding: 0; max-width: none; }
#ftech-konfigurator .fkonf__pods-akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
#ftech-konfigurator .fkonf__wyslane { display: flex; flex-direction: column; align-items: center; gap: 0.8rem; text-align: center; background: #FFFFFF; border: 1.5px solid var(--k-border-strong); border-radius: 16px; padding: 2.4rem 1.6rem; }
#ftech-konfigurator .fkonf__wyslane svg { color: #17A74C; }
#ftech-konfigurator .fkonf__wyslane h3 { font-size: 1.3rem; font-weight: 800; }
#ftech-konfigurator .fkonf__wyslane p { font-size: 0.9rem; color: var(--k-muted); max-width: 42ch; line-height: 1.65; }

#ftech-konfigurator .is-laduje::before {
    content: ''; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,0.65) 50%, transparent 70%);
    background-size: 220% 100%;
    animation: fkonf-polysk 1.1s ease-in-out infinite;
}
@keyframes fkonf-polysk { 0% { background-position: 140% 0; } 100% { background-position: -40% 0; } }

/* Na telefonie tabela wyceny czyta się jak lista, nie jak arkusz */
@media (max-width: 599px) {
    #ftech-konfigurator .fkonf__pods-tabela thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    #ftech-konfigurator .fkonf__pods-tabela tr { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; padding: 0.15rem 0; }
    #ftech-konfigurator .fkonf__pods-tabela td { border-bottom: none; padding: 0.5rem 1rem; }
    #ftech-konfigurator .fkonf__pods-tabela tbody tr { border-bottom: 1px solid var(--k-cream2); }
    #ftech-konfigurator .fkonf__pods-sekcja td { grid-column: auto; }
    #ftech-konfigurator .fkonf__pods-tabela td:last-child { align-self: center; }
}

/* ===== Wizualizacje w podsumowaniu ===== */
#ftech-konfigurator .fkonf__pods-wizualizacje { display: grid; grid-template-columns: 1fr; gap: 1rem; grid-column: 1 / -1; margin-bottom: 0.5rem; }
#ftech-konfigurator .fkonf__wiz { background: #FFFFFF; border: 1.5px solid var(--k-border-strong); border-radius: 16px; overflow: hidden; box-shadow: 0 2px 10px rgba(8,6,11,0.05); transition: box-shadow 0.3s var(--k-ease), transform 0.3s var(--k-ease); }
#ftech-konfigurator .fkonf__wiz:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(8,6,11,0.12); }
#ftech-konfigurator .fkonf__wiz-scena {
    position: relative; aspect-ratio: 16/10; overflow: hidden;
    background: radial-gradient(ellipse 85% 75% at 50% 32%, #FFFFFF 0%, var(--k-cream) 58%, #EFE8DF 100%);
    border-bottom: 1px solid var(--k-border);
}
#ftech-konfigurator .fkonf__wiz-scena img { position: absolute; inset: 3%; width: 94%; height: 94%; object-fit: contain; }
#ftech-konfigurator .fkonf__wiz-scena .fkonf__scena-lupa { width: 34px !important; height: 34px !important; right: 0.6rem; bottom: 0.6rem; }
#ftech-konfigurator .fkonf__wiz-stopka { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.8rem 1rem; }
#ftech-konfigurator .fkonf__wiz-tytul { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 0.92rem; font-weight: 700; color: var(--k-dark); }
#ftech-konfigurator .fkonf__wiz-zmien, #ftech-konfigurator .fkonf__pods-zmien {
    font-size: 0.75rem !important; font-weight: 700 !important; color: var(--k-red) !important;
    background: var(--k-red-soft) !important; border: 1px solid rgba(173,16,31,0.18) !important;
    border-radius: 50px !important; padding: 0.25rem 0.75rem !important;
    transition: background 0.2s var(--k-ease), color 0.2s var(--k-ease);
}
#ftech-konfigurator .fkonf__wiz-zmien:hover, #ftech-konfigurator .fkonf__pods-zmien:hover { background: var(--k-red) !important; color: #fff !important; }
#ftech-konfigurator .fkonf__wiz-zmien:focus-visible, #ftech-konfigurator .fkonf__pods-zmien:focus-visible { outline: 3px solid rgba(173,16,31,0.4) !important; outline-offset: 2px; }
#ftech-konfigurator .fkonf__pods-sekcja-pasek { display: inline-flex; align-items: center; gap: 0.75rem; }

/* ===== Przyciski ===== */
#ftech-konfigurator .fkonf__btn {
    display: inline-flex !important; align-items: center; justify-content: center; gap: 0.55rem;
    padding: 0.95rem 1.8rem !important; min-height: 52px !important;
    font-family: 'Bricolage Grotesque', system-ui, sans-serif !important;
    font-size: 0.95rem !important; font-weight: 700 !important; line-height: 1 !important;
    white-space: nowrap; transition: all 0.25s var(--k-ease);
}
#ftech-konfigurator .fkonf__btn svg { flex-shrink: 0; transition: transform 0.25s var(--k-ease); }
#ftech-konfigurator .fkonf__btn--dalej {
    background: var(--k-red) !important; color: #FFFFFF !important;
    box-shadow: 0 6px 18px rgba(173,16,31,0.35) !important;
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
}
#ftech-konfigurator .fkonf__btn--dalej:hover:not(:disabled) { background: var(--k-red-hover) !important; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(173,16,31,0.4) !important; }
#ftech-konfigurator .fkonf__btn--dalej:hover:not(:disabled) svg { transform: translateX(3px); }
#ftech-konfigurator .fkonf__btn--dalej:disabled { opacity: 0.45; cursor: not-allowed; }
#ftech-konfigurator .fkonf__btn--wstecz { background: #FFFFFF !important; color: var(--k-dark) !important; border: 2px solid var(--k-border-strong) !important; border-radius: 12px !important; }
#ftech-konfigurator .fkonf__btn--wstecz:hover { border-color: var(--k-red) !important; color: var(--k-red) !important; background: var(--k-red-soft) !important; }
#ftech-konfigurator .fkonf__btn:focus-visible { outline: 3px solid rgba(173,16,31,0.4) !important; outline-offset: 3px; }
#ftech-konfigurator .fkonf__btn--pelny { width: 100%; }

/* ===== Stopka: cena + nawigacja ===== */
#ftech-konfigurator .fkonf__stopka {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 990;
    background: rgba(255,255,255,0.97); backdrop-filter: blur(12px);
    border-top: 1px solid var(--k-border);
    box-shadow: 0 -10px 30px rgba(8,6,11,0.08);
    padding: 0.75rem 1.25rem calc(0.75rem + env(safe-area-inset-bottom));
}
#ftech-konfigurator .fkonf__stopka::before { content: ''; position: absolute; top: -1px; left: 0; width: 120px; height: 3px; background: var(--k-red); }
#ftech-konfigurator .fkonf__stopka-inner { max-width: 1240px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
#ftech-konfigurator .fkonf__cena-total { display: flex; flex-direction: column; min-width: 0; }
#ftech-konfigurator .fkonf__cena-etykieta { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--k-muted); }
#ftech-konfigurator .fkonf__cena-kwota { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 1.35rem; font-weight: 800; color: var(--k-dark); letter-spacing: -0.01em; line-height: 1.15; }
#ftech-konfigurator .fkonf__cena-brutto { font-size: 0.7rem; color: var(--k-muted); }
#ftech-konfigurator .fkonf__nav { display: flex; gap: 0.65rem; flex-shrink: 0; }

@media (max-width: 480px) {
    #ftech-konfigurator .fkonf__stopka { padding: 0.6rem 0.9rem calc(0.6rem + env(safe-area-inset-bottom)); }
    #ftech-konfigurator .fkonf__stopka-inner { gap: 0.6rem; }
    #ftech-konfigurator .fkonf__cena-kwota { font-size: 1.15rem; }
    #ftech-konfigurator .fkonf__btn { padding: 0.85rem 1.15rem !important; font-size: 0.88rem !important; }
    #ftech-konfigurator .fkonf__btn--wstecz { padding: 0.85rem 1rem !important; }
    #ftech-konfigurator .fkonf__pods-akcje .fkonf__btn { flex: 1 1 100%; }
    #ftech-konfigurator .fkonf__wiersz { flex-direction: column; }
    #ftech-konfigurator .fkonf__wiersz .fkonf__btn { width: 100%; }
    .fkonf__pelny { padding: 4rem 0.75rem 1rem; }
    .fkonf__pelny .fkonf__pelny-zamknij { width: 46px !important; height: 46px !important; min-height: 46px !important; }
    .fkonf__pelny .fkonf__pelny-gotowe { width: calc(100% - 1rem); }
}

#ftech-konfigurator .fkonf__blad { padding: 1rem 1.25rem; color: #B42318; background: #FEE4E2; border: 1px solid #FDA29B; border-radius: 14px; margin: 0 1.25rem; font-size: 0.9rem; line-height: 1.6; }

/* ===== Responsywność ===== */
@media (min-width: 640px) {
    #ftech-konfigurator .fkonf__karty { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
    #ftech-konfigurator .fkonf__lista--siatka { display: grid; grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 980px) {
    #ftech-konfigurator .fkonf__karty--modele { grid-template-columns: repeat(4, 1fr); }
    #ftech-konfigurator .fkonf__karty--uklady { grid-template-columns: repeat(3, 1fr); }
    #ftech-konfigurator .fkonf__widok { display: grid; grid-template-columns: 1.9fr 1fr; gap: 1.5rem; align-items: start; }
    #ftech-konfigurator .fkonf__widok > .fkonf__scena { margin-bottom: 0; }
    #ftech-konfigurator .fkonf__scena { top: 96px; max-height: calc(100svh - 130px); }
    #ftech-konfigurator .fkonf__scena.is-przypieta { aspect-ratio: 16/10; border-radius: 18px; }
    #ftech-konfigurator .fkonf__pods-wizualizacje { grid-template-columns: repeat(2, 1fr); }
    #ftech-konfigurator .fkonf__pods { grid-template-columns: 1.35fr 1fr; }
    #ftech-konfigurator .fkonf__pods-bok { position: sticky; top: 96px; }
}
@media (prefers-reduced-motion: reduce) {
    #ftech-konfigurator *, #ftech-konfigurator *::before, #ftech-konfigurator *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
@media print {
    #ftech-konfigurator .fkonf__scena, #ftech-konfigurator .fkonf__wiz { position: static !important; break-inside: avoid; }
    #ftech-konfigurator .fkonf__pods-wizualizacje { grid-template-columns: repeat(2, 1fr) !important; }
    #ftech-konfigurator .fkonf__scena-lupa, #ftech-konfigurator .fkonf__wiz-zmien, #ftech-konfigurator .fkonf__pods-zmien { display: none !important; }
    #ftech-konfigurator * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    body * { visibility: hidden; }
    #ftech-konfigurator, #ftech-konfigurator * { visibility: visible; }
    #ftech-konfigurator { position: absolute; left: 0; top: 0; width: 100%; padding: 0; }
    #ftech-konfigurator .fkonf__stopka, #ftech-konfigurator .fkonf__nav, #ftech-konfigurator .fkonf__pods-akcje,
    #ftech-konfigurator .fkonf__stepper, #ftech-konfigurator .fkonf__karta-forma, #ftech-konfigurator .fkonf__scena-model { display: none !important; }
    #ftech-konfigurator .fkonf__pods { grid-template-columns: 1fr; }
}
