/* Lema3D — styl sklepu (koszyk, checkout, płatność, portal) wg Figmy 433/238.
   Ładowany warunkowo (website.layout inherit) na /shop*, /my, /web/login, /web/signup. */

/* --- Font Inter (self-hosted variable, latin + latin-ext — załączniki z etapu 1) --- */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/web/content/388406') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
        U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/web/content/388407') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
        U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
        U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --l3-orange: #F74A00;
    --l3-orange-84: #F96729;
    --l3-orange-12: #FEE9E0;
    --l3-black: #000000;
    --l3-black-84: #292929;
    --l3-black-60: #666666;
    --l3-black-42: #949494;
    --l3-black-18: #D1D1D1;
    --l3-black-6: #F3F3F3;
    --l3-radius: 16px;
    --l3-radius-sm: 12px;
}

body, #wrap, .oe_website_sale, .o_portal {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--l3-black);
}

/* Tło i typografia ogólna */
main, #wrap { background: var(--l3-black-6); }
#wrap h1, #wrap h2, #wrap h3, #wrap h4, #wrap h5 {
    font-weight: 500;
    letter-spacing: -0.01em;
    color: var(--l3-black);
}
.oe_website_sale h3.mb-4 { font-size: 42px; line-height: 110%; }
#wrap a { color: var(--l3-black); }
#wrap .text-primary, #wrap a.text-primary { color: var(--l3-orange) !important; }
#wrap a:hover { color: var(--l3-orange); }

/* --- Przyciski: CTA czarne jak w Figmie --- */
#wrap .btn-primary {
    background: var(--l3-black);
    border-color: var(--l3-black);
    color: #fff;
    border-radius: var(--l3-radius-sm);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    padding: 12px 24px;
}
#wrap .btn-primary:hover, #wrap .btn-primary:focus {
    background: var(--l3-black-84);
    border-color: var(--l3-black-84);
    color: #fff;
}
#wrap .btn-secondary {
    background: transparent;
    border: 1px solid var(--l3-black);
    color: var(--l3-black);
    border-radius: var(--l3-radius-sm);
    font-weight: 500;
}
#wrap .btn-secondary:hover { background: var(--l3-black); color: #fff; }
#wrap .btn-link { color: var(--l3-orange); text-decoration: none; }
#wrap .btn-link:hover { text-decoration: underline; }
#wrap .btn:disabled { opacity: .45; }

/* --- Formularze --- */
#wrap .form-control, #wrap .form-select, #wrap .form-check-input {
    border: 1px solid var(--l3-black-18);
    border-radius: var(--l3-radius-sm);
    font-size: 16px;
    padding: 10px 14px;
    color: var(--l3-black);
    background: #fff;
}
#wrap .form-control:focus, #wrap .form-select:focus {
    border-color: var(--l3-orange);
    box-shadow: 0 0 0 3px var(--l3-orange-12);
}
#wrap .form-control::placeholder { color: var(--l3-black-42); }
#wrap .form-label, #wrap label { font-weight: 500; color: var(--l3-black-84); }
#wrap .form-check-input:checked {
    background-color: var(--l3-orange);
    border-color: var(--l3-orange);
}
#wrap .form-check-input:focus {
    border-color: var(--l3-orange);
    box-shadow: 0 0 0 3px var(--l3-orange-12);
}
#wrap .input-group-text {
    border: 1px solid var(--l3-black-18);
    border-radius: var(--l3-radius-sm);
    background: #fff;
    color: var(--l3-black-60);
}

/* --- Koszyk (Frame 433) --- */
.oe_cart .o_cart_product {
    background: #fff;
    border: 1px solid var(--l3-black-6);
    border-radius: var(--l3-radius);
    padding: 16px 20px;
    margin-bottom: 12px;
}
.oe_cart .o_cart_product h6 { font-size: 20px; font-weight: 500; color: var(--l3-black); }
.oe_cart .o_cart_product .text-muted.small { color: var(--l3-black-60) !important; font-size: 14px; }
.oe_cart .o_cart_product .text-muted.small span { line-height: 140%; }
.oe_cart .o_cart_product img.o_image_64_max { width: 88px; max-width: 88px; border-radius: var(--l3-radius-sm); }
.oe_cart .o_cart_product a { text-decoration: none; }
.oe_cart .o_cart_product a:hover h6 { color: var(--l3-orange); }
.oe_cart .css_quantity { width: 132px; }
.oe_cart .css_quantity input {
    border: 1px solid var(--l3-black-18);
    border-radius: var(--l3-radius-sm);
    text-align: center;
    font-weight: 500;
}
.oe_cart .css_quantity .btn {
    border: 1px solid var(--l3-black-18);
    color: var(--l3-black);
    background: #fff;
}
.oe_cart .css_quantity .btn:hover { background: var(--l3-black-6); color: var(--l3-black); }
.oe_cart .oe_currency_value { font-weight: 500; }

/* Karta podsumowania zamówienia (koszyk + checkout) */
.o_total_card, .o_total_card.card {
    background: #fff;
    border: 1px solid var(--l3-black-6) !important;
    border-radius: var(--l3-radius) !important;
    padding: 20px;
    box-shadow: none;
}
.o_total_card .btn-primary.w-100 { padding: 14px 24px; font-size: 16px; }
.o_total_card h5, .o_total_card .card-title { font-size: 20px; font-weight: 500; }
.o_total_card .text-muted { color: var(--l3-black-60) !important; }
.o_total_card hr { border-color: var(--l3-black-6); opacity: 1; }
.o_total_card input[name='promo'], .o_total_card input[name='promo_voucher'] {
    border-radius: var(--l3-radius-sm) 0 0 var(--l3-radius-sm) !important;
}
.o_total_card .btn-secondary.a-submit {
    border-radius: 0 var(--l3-radius-sm) var(--l3-radius-sm) 0 !important;
    background: var(--l3-black);
    border-color: var(--l3-black);
    color: #fff;
}
.o_total_card .btn-secondary.a-submit:hover { background: var(--l3-black-84); }

/* Kroki: Przegląd zamówienia > Dostawa > Płatność */
.oe_website_sale .breadcrumb, .o_wizard, nav .breadcrumb {
    font-size: 14px;
}
.oe_website_sale .breadcrumb-item a { color: var(--l3-black-60); text-decoration: none; }
.oe_website_sale .breadcrumb-item.active { color: var(--l3-orange); font-weight: 500; }

/* --- Checkout / Dostawa (Frame 238) --- */
.oe_website_sale .card {
    border: 1px solid var(--l3-black-6);
    border-radius: var(--l3-radius);
    background: #fff;
}
.oe_website_sale .card.border-primary {
    border-color: var(--l3-orange) !important;
}
.oe_website_sale .card.bg-primary {
    background: var(--l3-orange-12) !important;
}
.oe_website_sale h4, .oe_website_sale .h5, .oe_website_sale h5.text-uppercase {
    font-size: 20px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}
#delivery-carrier-selector .form-check, .o_delivery_carrier_selection .form-check {
    background: #fff;
    border: 1px solid var(--l3-black-18);
    border-radius: var(--l3-radius-sm);
    padding: 14px 16px 14px 42px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
#delivery-carrier-selector .form-check:has(input:checked),
.o_delivery_carrier_selection .form-check:has(input:checked) {
    border-color: var(--l3-orange);
    box-shadow: 0 0 0 3px var(--l3-orange-12);
}
#delivery-carrier-selector .form-check-label,
.o_delivery_carrier_selection .form-check-label { font-weight: 500; color: var(--l3-black); }
#delivery-carrier-selector .form-check input[type="radio"],
.o_delivery_carrier_selection .form-check input[type="radio"] { margin-left: -26px; margin-top: 3px; }
.oe_website_sale .oe_currency_value { font-weight: 500; }

/* Tabela podsumowania pozycji w checkout */
.oe_website_sale table td, .oe_website_sale table th { border-color: var(--l3-black-6); }
.oe_website_sale table .text-muted { color: var(--l3-black-60) !important; }

/* --- Płatność --- */
#o_payment_form .card { border: 1px solid var(--l3-black-18); border-radius: var(--l3-radius-sm); }
#o_payment_form .card:has(input:checked) {
    border-color: var(--l3-orange);
    box-shadow: 0 0 0 3px var(--l3-orange-12);
}
#o_payment_form label { font-weight: 500; }
.o_payment_form .btn-primary { width: 100%; padding: 16px 24px; font-size: 18px; }

/* --- Potwierdzenie zamówienia --- */
.oe_website_sale .oe_cart h3.mb-4 { font-size: 42px; }
.oe_website_sale .alert-success, .oe_website_sale .alert {
    border-radius: var(--l3-radius-sm);
    border: none;
}
.oe_website_sale .alert-success { background: var(--l3-orange-12); color: var(--l3-black); }

/* --- Portal klienta (/my) --- */
.o_portal #portal_wrap, .o_portal main { background: var(--l3-black-6); }
#portal_wrap .card {
    border: 1px solid var(--l3-black-6);
    border-radius: var(--l3-radius);
    background: #fff;
    transition: box-shadow .15s ease, transform .15s ease;
}
#portal_wrap .card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
    transform: translateY(-2px);
}
#portal_wrap .card .fa { color: var(--l3-orange); }
#portal_wrap h4, #portal_wrap .h4 { font-size: 24px; font-weight: 500; }
#portal_wrap a { color: var(--l3-black); }
#portal_wrap a:hover { color: var(--l3-orange); }
#portal_wrap .nav-pills .nav-link.active {
    background: var(--l3-black);
    border-radius: var(--l3-radius-sm);
}
#portal_wrap .nav-pills .nav-link { border-radius: var(--l3-radius-sm); color: var(--l3-black-84); }
#portal_wrap .nav-pills .nav-link:hover { background: var(--l3-black-6); color: var(--l3-black); }
#portal_wrap table th { border-color: var(--l3-black-6); color: var(--l3-black-60); font-weight: 500; }
#portal_wrap table td { border-color: var(--l3-black-6); }

/* --- Logowanie / rejestracja --- */
.oe_login_form, .oe_signup_form, .oe_reset_password_form {
    background: #fff;
    border: 1px solid var(--l3-black-6);
    border-radius: 24px;
    padding: 32px;
}
.oe_login_form .btn-primary, .oe_signup_form .btn-primary, .oe_reset_password_form .btn-primary {
    width: 100%;
    padding: 14px 24px;
}
#wrap .oe_login_form h2, #wrap .oe_signup_form h2 { font-size: 30px; margin-bottom: 20px; }
.oe_login_form .form-control, .oe_signup_form .form-control { border-radius: var(--l3-radius-sm); }

/* --- RWD --- */
@media (max-width: 767px) {
    .oe_website_sale h3.mb-4 { font-size: 30px; }
    .oe_cart .o_cart_product { padding: 12px; }
    .oe_cart .o_cart_product h6 { font-size: 16px; }
    .o_total_card { padding: 16px; }
}
