/*
 * Redesign mobilny 2026-09 — spec: docs/superpowers/specs/2026-09-07-mobile-redesign-design.md
 * Wszystko poniżej dotyczy WYŁĄCZNIE ekranów <= 767 px (breakpoint motywu: hidden-sm-down).
 * Desktop nie widzi żadnej z tych reguł. Rollback = usunąć link w head.tpl.
 * Sekcje: A wspólne · B strona główna · C kategoria · D karta produktu
 */

/* Elementy dodane w .tpl dla mobile są domyślnie schowane na desktopie (hidden-md-up robi to
   samo, ale te dwie klasy dotyczą też fragmentów wstrzykiwanych z JS) */
.up-flag-text { display: none; }
.up-bar-mobile { display: none; }


@media (max-width: 767px) {

  /* ===== A. wspólne ===== */

  /* A1. pasek promo: statyczny, jeden komunikat, 34 px (custombanner wstrzykuje go w window.onload) */
  #custom-banner { padding: 0 !important; height: 34px; line-height: 34px; font-size: 13px !important; }
  #custom-banner .marquee { display: none !important; animation: none !important; }
  #custom-banner .up-bar-mobile { display: block; padding: 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* margines body pod pasek ustawia sam modul custombanner (style + JS w displayTop.tpl) — tylko tam,
     gdzie pasek jest; na /zamowienie paska nie ma i globalny margines dawal 34 px bieli nad naglowkiem */

  /* A2. nagłówek przyklejony (pod paskiem, jesli jest — klasa html.up-has-bar z custom.js);
     chowa się przy przewijaniu w dół (custom.js) */
  #header { position: sticky; top: 0; z-index: 900; background: #fff; transition: transform .25s ease; }
  html.up-has-bar #header { top: 34px; }
  #header.up-header--hidden { transform: translateY(-100%); }
  /* modal filtrow (lezy poza #header) ma byc NAD naglowkiem; modal menu lezy W #header, wiec naglowek
     nie moze byc wtedy przesuniety (transform robi z niego containing block dla position:fixed) */
  html.search_filters_mobile-open #header { z-index: 1; }
  /* Otwarte menu / filtry / koszyk boczny = motyw daje html{overflow:hidden}. Wtedy body staje sie
     wlasnym kontenerem przewijania i sticky liczy top:34px od gory body (ktore ma 34 px marginesu)
     -> naglowek skakal na 68 px. W tych stanach naglowek jest zwykly (statyczny), a pasek promo
     zostaje (customcss an_theme chowal go, bo kiedys zaslanial menu; dzis modal ma wyzszy z-index). */
  html.amegamenu_mobile-open #header,
  html.search_filters_mobile-open #header,
  html.sb-open #header { position: static; transform: none !important; }
  html.amegamenu_mobile-open #custom-banner { display: block !important; }
  /* .header-top zawiera modal menu mobilnego (.amegamenu_mobile-modal) — NIE chowac calego bloku
     (2026-09-08: menu mialo 0x0). Chowamy tylko pusty wiersz naglowka, ktory dawal 11 px bieli. */
  #header .header-top.tablet-h { padding: 0; }
  #header .header-top.tablet-h > .container > .header-top-wrapper { display: none; }
  #_mobile_user_info, #_mobile_an_wishlist-nav { display: none !important; }
  .up-mobile-links { border-top: 1px solid #eee; margin-top: 8px; padding-top: 6px; }
  .up-mobile-links a { display: block; padding: 10px 15px; color: #232323; font-size: 15px; }

  /* A3. breadcrumb schowany (karta produktu ma link wstecz, kategoria ma H1) */
  .breadcrumb-wrapper { display: none; }

  /* A4. baner cookies kompaktowy (~30 % ekranu zamiast 45 %) — markup: modules/upconsent */
  .upconsent-banner { padding: 12px 16px 14px; font-size: 13px; line-height: 1.4; }
  .upconsent-title { font-size: 14px; }
  .upconsent-desc { font-size: 13px; }
  .upconsent-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
  .upconsent-btn--primary { flex: 1 1 45%; min-height: 40px; padding: 8px 10px; font-size: 13px; }
  .upconsent-btn--secondary { flex: 1 1 100%; min-height: 0; padding: 4px; background: none; border-color: transparent; text-decoration: underline; font-weight: 500; }

  /* A5. blok zaufania (karta produktu + strona główna) */
  .up-trust { list-style: none; margin: 14px 0 0; padding: 12px 14px; background: #f4f8fd; border-radius: 8px; font-size: 13px; line-height: 1.5; color: #4d403a; }
  .up-trust li { margin: 0; padding: 0; }
  .up-trust li + li { margin-top: 4px; }
  .up-trust__gift { margin-top: 8px !important; padding-top: 8px !important; border-top: 1px solid #dbe7f5; }

  /* A5b. pasek darmowej dostawy w koszyku bocznym (markup: ps_shoppingcart.tpl + modul upiekszajdarmowadostawa) */
  .up-sidebar-updd { padding: 0 15px; }
  .up-sidebar-updd .updd-pasek { margin: 6px 0 10px; }

  /* A6. kafel produktu (wszędzie): zdjęcie 4:5 + nazwa + cena, bez opisu, ilości i przycisku */
  .product-miniature .an_productattributes,
  .product-miniature .an_short_description,
  .product-miniature .highlighted-informations { display: none !important; }
  .product-miniature .thumbnail-container { padding: 0 !important; margin-bottom: 0 !important; }
  .product-miniature .thumbnail-container-image { min-height: 0 !important; height: auto !important; aspect-ratio: 4 / 5; overflow: hidden; }
  .product-miniature .thumbnail-container-image .product-thumbnail { height: 100% !important; }
  .product-miniature .thumbnail-container-image img { width: 100% !important; height: 100% !important; object-fit: cover; }
  .product-miniature .product-description { display: block !important; height: auto !important; padding: 6px 0 0 !important; min-height: 0 !important; }
  .product-miniature .product-list-reviews { margin: 0 !important; min-height: 0 !important; }
  .product-miniature .product-list-reviews:empty { display: none; }
  .product-miniature .product-title { font-size: 13px; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .product-miniature .product-price-and-shipping { min-height: 0 !important; }
  .product-miniature .price { font-size: 15px; }
  /* etykiety tekstowe zamiast ikon (Nowość / -10 % / Ostatnia sztuka / Niedostępny) */
  .product-miniature .product-flags .product-flag { width: auto; min-width: 0; min-height: 0; height: auto; border-radius: 4px; padding: 3px 7px; margin: 8px 0 0 8px; background: #fff; color: #4d403a; font-size: 11px; font-weight: 600; line-height: 1.3; text-transform: none; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
  .product-miniature .product-flag svg { display: none; }
  .product-miniature .product-flag .up-flag-text { display: inline; }
  .product-miniature:has(.product-flag.out_of_stock) .thumbnail-container-image img { filter: grayscale(1); opacity: .55; }

  /* ===== B. strona glowna ===== */
  /* B1. slider: desktopowa instancja (show_on = desktop -> .an_homeslider-hide-mobile) ukryta;
     gdyby na produkcji show_on zostalo na "oba", ukrywamy kazda instancje bez klasy mobilnej */
  .an_homeslider-block:not(.an_homeslider-hide-desktop) { display: none !important; }
  /* B2. instancja mobilna: slajd 4:5 na pelna szerokosc, tekst w HTML na dole nad gradientem */
  .an_homeslider-hide-desktop { margin: 0; overflow: hidden; }
  .an_homeslider-hide-desktop .an_homeslider-item { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: #d0e7ff; }
  /* front.css modulu chowa <p> i przycisk w opisie slajdu na <=991px — tu tekst jest calym sensem slajdu */
  .an_homeslider-hide-desktop .an_homeslider.an_homeslider-responsive .an_homeslider-desc p { display: block !important; }
  .an_homeslider-hide-desktop .an_homeslider.an_homeslider-responsive .an_homeslider-desc .btn-primary { display: inline-block !important; }
  .an_homeslider-hide-desktop .an_homeslider.owl-carousel.owl-drag.an_homeslider-responsive .owl-item .an_homeslider-item img,
  .an_homeslider-hide-desktop .an_homeslider-item img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center 30%; display: block; }
  .an_homeslider-hide-desktop .an_homeslider-desc { text-align: left; }
  .an_homeslider-hide-desktop .an_homeslider-desc::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.6) 100%); }
  .an_homeslider-hide-desktop .an_homeslider .an_homeslider-desc > .container { position: relative; justify-content: flex-end; align-items: flex-start; padding: 0 20px 36px !important; }
  .an_homeslider-hide-desktop .an_homeslider-desc .h2 { font-size: 28px; line-height: 1.15; font-weight: 500; margin: 0 0 6px; color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.35); max-width: none; }
  .an_homeslider-hide-desktop .an_homeslider-desc p { font-size: 15px; margin: 0 0 14px; color: #fff; opacity: .95; text-shadow: 0 1px 6px rgba(0,0,0,.35); }
  .an_homeslider-hide-desktop .an_homeslider-desc .btn-primary { padding: 12px 22px; font-size: 14px; margin: 0; }
  .an_homeslider-hide-desktop .owl-dots { bottom: 10px; }
  .an_homeslider-hide-desktop .owl-dots .owl-dot span { background: rgba(255,255,255,.55); }
  .an_homeslider-hide-desktop .owl-dots .owl-dot.active span { background: #fff; }
  .up-chips { display: flex; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 12px 15px; margin: 0 -15px; scrollbar-width: none; }
  .up-chips::-webkit-scrollbar { display: none; }
  .up-chips a { flex: 0 0 auto; padding: 8px 14px; border: 1px solid #d9cfc9; border-radius: 999px; font-size: 13px; color: #4d403a; white-space: nowrap; background: #fff; }
  .page-home #block-reassurance { display: none !important; }
  .page-home .up-trust--home { margin: 16px 0 8px; }
  /* Nowosci (blok 1) schowane; Bestsellery (blok 2) = siatka 2 kolumny x 3 rzedy (custom.js usuwa klony owl) */
  .an_homeproducts-block:has(.an_homeproducts-content[data-block-id="1"]) { display: none; }
  .an_homeproducts-content[data-block-id="2"] .owl-stage-outer { overflow: visible; }
  .an_homeproducts-content[data-block-id="2"] .owl-stage { display: flex; flex-wrap: wrap; transform: none !important; width: auto !important; transition: none !important; }
  .an_homeproducts-content[data-block-id="2"] .owl-item { width: 50% !important; margin: 0 !important; padding: 0 6px; }
  .an_homeproducts-content[data-block-id="2"] .owl-nav,
  .an_homeproducts-content[data-block-id="2"] .owl-dots { display: none !important; }
  .an_homeproducts-content[data-block-id="2"] .product-miniature { margin-bottom: 16px; }
  .page-home .an_homeproducts, .page-home .an_homeproducts-container, .page-home .an_homeproducts-block { margin-top: 0 !important; padding-top: 0 !important; }
  .page-home .an_homeproducts-block .h2, .page-home .an_homeproducts-block h2 { font-size: 22px; margin: 6px 0 10px !important; padding: 0 !important; }
  /* siatka kategorii 2x2 (3 banery modulu + kafel prezentowy) */
  .anhp-banner-global-top { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 0 !important; }
  .anhp-banner-global-top .an_homeproducts-banner { flex: 0 0 calc(50% - 5px); max-width: calc(50% - 5px); aspect-ratio: 1 / 1; padding: 0 !important; margin: 0 !important; overflow: hidden; border-radius: 6px; }
  .anhp-banner-global-top .an_homeproducts-banner img { width: 100%; height: 100%; object-fit: cover; }
  .anhp-banner-global-bottom { display: none !important; }
  .up-banner-gift { display: flex; align-items: center; justify-content: center; text-align: center; background: #d0e7ff; }
  .up-banner-gift a { color: #46302c; padding: 12px; font-size: 15px; line-height: 1.3; }
  .up-banner-gift strong { display: block; font-size: 18px; margin-bottom: 4px; }
  .up-banner-gift span { font-size: 13px; }
  /* O mnie: wideo dopiero po tapnieciu */
  .about-section-video { background: #000; }
  /* .about-section-video jest flex-kontenerem (customcss an_theme) — bez jawnej szerokosci link mial 0x0 */
  .about-section-video .up-yt { position: relative; display: block; flex: 1 1 100%; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; }
  .up-yt img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; opacity: .85; }
  .up-yt::after { content: '▶'; position: absolute; left: 50%; top: 50%; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: rgba(255,255,255,.92); color: #46302c; font-size: 22px; line-height: 56px; text-align: center; }

  /* ===== C. kategoria ===== */
  body#category .block-category { padding: 0 !important; margin: 0 !important; display: block; }
  body#category #category-description { text-align: left !important; }
  body#category #category-description h1 { display: inline; font-size: 24px; text-align: left !important; margin: 0; }
  body#category .up-count { margin-left: 8px; font-size: 14px; color: #7a6a66; }
  body#category #category-description > div:has(img) { display: none; }
  body#category #category-description > div { font-size: 14px; }
  body#category #category-description > div > p { margin: 0 !important; }
  /* chipsy podkategorii */
  body#category #subcategories { padding: 0 !important; margin: 6px 0 4px !important; }
  body#category #subcategories .subcategory-heading,
  body#category #subcategories .subcategory-image,
  body#category #subcategories .cat_desc { display: none; }
  body#category .subcategories-list { display: flex; flex-wrap: nowrap !important; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 6px 15px 10px; margin: 0 -15px; list-style: none; scrollbar-width: none; }
  body#category .subcategories-list::-webkit-scrollbar { display: none; }
  body#category .subcategories-list li { flex: 0 0 auto; margin: 0 !important; padding: 0 !important; width: auto !important; }
  body#category .subcategories-list h5 { margin: 0; }
  body#category .subcategories-list .subcategory-name { display: inline-block; padding: 8px 14px; border: 1px solid #d9cfc9; border-radius: 999px; font-size: 13px; font-weight: 500; text-transform: none; color: #4d403a; white-space: nowrap; }
  body#category .subcategories-list .up-active { background: #4d403a; color: #fff; border-color: #4d403a; }
  /* pasek sortuj / filtruj */
  .up-toolbar { display: flex; gap: 10px; align-items: center; margin: 0 0 10px; }
  .up-toolbar .up-sort { flex: 1 1 auto; display: flex; align-items: center; gap: 8px; border: 1px solid #d9cfc9; border-radius: 6px; padding: 0 12px; min-height: 42px; }
  .up-toolbar .up-sort__label { font-size: 13px; color: #7a6a66; white-space: nowrap; }
  .up-toolbar .products-sort-order { display: block !important; flex: 1 1 auto; margin: 0; }
  .up-toolbar .products-sort-order .select-title { display: block; width: 100%; text-align: left; padding: 10px 0; font-size: 13px; }
  .up-toolbar .up-filter-btn { flex: 0 0 auto; padding: 10px 14px; font-size: 13px; }
  body#category #js-product-list-top, body#category #category-top { display: none; }
  body#category #products, body#category #js-product-list, body#category #js-product-list .products { margin-top: 0 !important; padding-top: 0 !important; }
  body#category #left-column { display: block !important; height: 0; padding: 0 !important; margin: 0 !important; overflow: visible; }
  /* siatka */
  body#category .products.row { margin: 0 -6px !important; }
  body#category .product-miniature { padding: 0 6px !important; margin-bottom: 18px !important; }
  body#category .up-cert { flex: 1 0 100%; margin: 4px 6px 16px; padding: 10px 12px; background: #f4f8fd; border-radius: 8px; font-size: 13px; color: #4d403a; }
  /* paginacja: tylko "Pokaż więcej" */
  body#category .pagination > div:first-child { font-size: 13px; color: #7a6a66; }
  body#category .pagination .page-list li { display: none; }
  body#category .pagination .page-list li:has(a.next) { display: block; width: 100%; }
  body#category .pagination a.next { display: block; padding: 12px; border: 1px solid #4d403a; border-radius: 6px; text-align: center; color: #4d403a; }
  body#category .pagination a.next.disabled { display: none; }

  /* ===== D. karta produktu ===== */
  body#product .up-back { display: block; padding: 6px 0 2px; font-size: 14px; line-height: 1.3; color: #4d403a; }
  body#product .product-mainblock { margin-top: 0; }
  body#product .productblock-image { padding-bottom: 0 !important; margin-bottom: 0 !important; }
  body#product .productblock-image .product-flags { display: none; }
  /* galeria 4:5 w szerokosci kolumny (360 px -> 450 px), przesuwana; miniatury tylko w lightboxie */
  body#product .images-container { width: 360px; max-width: 100%; margin: 0 auto !important; }
  body#product .an_productpage-slider-main { height: auto !important; }
  body#product .an_productpage-slider-main .an_productpage-slider-image { aspect-ratio: 4 / 5; overflow: hidden; }
  body#product .an_productpage-slider-main .an_productpage-slider-image img { width: 100%; height: 100%; object-fit: cover; }
  body#product .an_productpage-slider-holder,
  body#product .an_productpage-list,
  body#product .an_productpage-slider-nav { display: none !important; }
  /* nazwa + cena */
  body#product .productblock-content { padding-top: 8px !important; }
  body#product .product-page-stars { display: none; } /* ocena jest w sekcji Opinie; tu kosztuje 32 px pierwszego ekranu */
  body#product h1.h1 { font-size: 20px; line-height: 1.25; margin: 0 0 4px; }
  body#product .product-prices .price { font-size: 22px; }
  body#product .tax-shipping-delivery-label { font-size: 13px; color: #7a6a66; }
  body#product .up-tax-label { display: none; }
  body#product .an_realtimevisitorcounter-block { display: none !important; }
  /* kolejnosc: CTA nad skrotem opisu */
  body#product .product-information { display: flex; flex-direction: column; }
  body#product .product-actions { order: 1; }
  body#product .product-additional-info { order: 2; margin-top: 16px; }
  body#product .upzwrot { display: none; }
  /* ilosc + CTA w jednym rzedzie, InPost Pay pod spodem jako drugorzedny */
  body#product .product-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
  body#product .product-add-to-cart .product-quantity { flex: 0 0 118px; margin: 0; }
  body#product .product-add-to-cart .qty { margin-right: 0; }
  body#product .product-add-to-cart .quantity_availability { flex: 1 1 auto; display: block; margin-top: 0; }
  body#product .product-add-to-cart .quantity_availability .add,
  body#product .product-add-to-cart .add-to-cart { width: 100%; height: 52px; }
  body#product .product-add-to-cart > .inpost-izi-btn-wrapper { margin-top: 0; }
  body#product .product-availability-wrap,
  body#product .product-minimal-quantity,
  body#product .an_hurry_up,
  body#product #product-reassurance { display: none !important; }
  body#product .up-last-piece { flex: 1 0 100%; margin: 0; font-size: 13px; color: #7a6a66; }
  /* sticky pasek modulu: bez zdjecia i pola ilosci */
  body#product .an_stickyAddToCart-imageblock,
  body#product .an_stickyAddToCart-qty-container { display: none !important; }
  /* opis jako akordeon (custom.js) */
  body#product .an-product-page-description .nav-tabs { display: none; }
  body#product .an-product-page-description .tab-pane { display: block !important; opacity: 1; }
  body#product #product-details { display: none !important; }
  details.up-acc { border-top: 1px solid #e8e2df; }
  details.up-acc:last-of-type { border-bottom: 1px solid #e8e2df; }
  details.up-acc summary { list-style: none; cursor: pointer; padding: 14px 0; font-size: 15px; font-weight: 600; color: #4d403a; display: flex; justify-content: space-between; align-items: center; }
  details.up-acc summary::-webkit-details-marker { display: none; }
  details.up-acc summary::after { content: '+'; font-size: 20px; line-height: 1; }
  details.up-acc[open] summary::after { content: '–'; }
  details.up-acc > div { padding: 0 0 14px; }
  details.up-acc > div > h2 { font-size: 17px; }

  /* ===== E. zamowienie (/zamowienie, body#checkout) ===== */
  /* naglowek: tylko logo, bez menu / koszyka / lupy; nie przykleja sie (przykleja sie podsumowanie) */
  body#checkout #header { position: static; }
  body#checkout #menu-icon, body#checkout #_mobile_cart, body#checkout #mobile-search-icon,
  body#checkout #_mobile_an_wishlist-nav, body#checkout #_mobile_user_info { display: none !important; }
  body#checkout .mobile-header { text-align: center; }
  body#checkout #_mobile_logo { float: none !important; display: inline-block; }
  /* sticky podsumowanie — buduje custom.js z #js-checkout-summary */
  .up-ck-summary { position: sticky; top: 0; z-index: 800; background: #fff; border-bottom: 1px solid #e8e2df; margin: 0 -15px 12px; }
  .up-ck-summary__bar { display: flex; align-items: center; gap: 6px; width: 100%; padding: 11px 15px; background: #f4f8fd; border: 0; font-size: 14px; color: #4d403a; text-align: left; cursor: pointer; }
  .up-ck-summary__ship { color: #7a6a66; }
  .up-ck-summary__total { font-weight: 700; margin-left: auto; font-size: 16px; }
  .up-ck-summary__chev { display: inline-block; transition: transform .2s; }
  .up-ck-summary--open .up-ck-summary__chev { transform: rotate(180deg); }
  .up-ck-summary__body { padding: 4px 15px 6px; }
  .up-ck-summary__item { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 13px; border-top: 1px solid #f0ebe8; }
  .up-ck-summary__item img { width: 40px; height: 53px; object-fit: cover; border-radius: 4px; flex: 0 0 40px; }
  .up-ck-summary__price { margin-left: auto; white-space: nowrap; }
  /* kroki */
  body#checkout .chechout-steps { padding-top: 8px !important; padding-bottom: 20px !important; }
  body#checkout .checkout-step { padding: 10px 0 !important; }
  body#checkout .checkout-step .step-title { font-size: 20px; margin: 0 0 8px; padding: 6px 0 !important; }
  body#checkout .checkout-step.-unreachable .step-title { font-size: 16px; color: #9a8f8b; margin: 0; }
  body#checkout .checkout-step.-complete .step-title { font-size: 16px; margin: 0; display: flex; align-items: center; gap: 10px; }
  body#checkout .checkout-step.-complete .mobile-step-status { margin: 0 0 0 auto; display: flex; align-items: center; gap: 8px; }
  body#checkout .form-control-label { padding: 0 15px 4px !important; }
  .up-ck-phone-hint { padding: 0 15px; }
  body#checkout .form-control { font-size: 16px !important; height: 48px; }   /* <16px = iOS przybliza ekran przy fokusie */
  body#checkout textarea.form-control, body#checkout textarea { font-size: 16px !important; height: auto; }
  body#checkout .form-group { margin-bottom: 12px; }
  body#checkout .form-control-label { font-size: 13px; margin-bottom: 4px; padding: 0; }
  body#checkout .form-control-static-comment, body#checkout .form-control-comment { display: none; }
  body#checkout .has-error .form-control-static-comment { display: block; }
  body#checkout .nav-inline .nav-separator { display: none; }
  body#checkout .nav-inline .nav-link.h4 { font-size: 15px; padding: 6px 12px 6px 0; }
  /* krok 1: 3 pola; reszta pod "Zaloz konto"; jedna zgoda (RODO-checkbox powiela regulamin — custom.js zaznacza go razem) */
  body#checkout .form-group--id_gender, body#checkout .form-group--customer_privacy, body#checkout .create-account-form { display: none !important; }
  body#checkout .form-group--newsletter .custom-checkbox-label em,
  body#checkout .form-group--newsletter .custom-checkbox-label small { display: none; }
  details.up-ck-more { margin: 2px 0 12px; }
  details.up-ck-more > summary { list-style: none; cursor: pointer; font-size: 14px; color: #4d403a; text-decoration: underline; padding: 6px 0; }
  details.up-ck-more > summary::-webkit-details-marker { display: none; }
  details.up-ck-more[open] > summary { text-decoration: none; margin-bottom: 8px; }
  body#checkout .btn.continue, body#checkout .form-footer .btn, body#checkout button[name="confirm-addresses"],
  body#checkout button[name="confirmDeliveryOption"] { display: block; width: 100% !important; float: none !important; height: 52px; font-size: 15px; margin-top: 8px; }
  /* krok 2 */
  body#checkout .js-address-form form > p:first-child { display: none; }
  body#checkout .form-group--address2 { display: none !important; }
  .up-ck-phone-hint { font-size: 12px; color: #7a6a66; margin: -6px 0 12px; }
  /* krok 3: opcja dostawy w jednym wierszu — radio | logo 56x40 | nazwa + czas | cena
     (theme.css na <=767px stawia label w kolumne: logo nad nazwa nad czasem nad cena — 4 kafle po 330 px) */
  body#checkout section.checkout-step .delivery-option { padding: 12px 12px !important; margin: 0 0 10px !important; align-items: center; }
  body#checkout section.checkout-step .delivery-option .custom-radio { margin: 0 12px 0 0 !important; }
  body#checkout section.checkout-step .delivery-option label.delivery-option-2 { display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "logo name price" "logo delay price"; column-gap: 12px; row-gap: 2px; align-items: center; flex-direction: row; line-height: 1.3 !important; }
  body#checkout section.checkout-step .carrier-logo { grid-area: logo; flex: none !important; padding: 0 !important; width: 56px; max-height: none; }
  body#checkout section.checkout-step .carrier-logo img { width: 56px; height: 40px; max-height: 40px; object-fit: contain; display: block; }
  body#checkout section.checkout-step .carrier-name,
  body#checkout section.checkout-step .carrier-logo + .carrier-name { grid-area: name; flex: none !important; padding: 0 !important; font-size: 15px !important; font-weight: 600; }
  body#checkout section.checkout-step .carrier-delay { grid-area: delay; font-size: 13px; color: #7a6a66; }
  body#checkout section.checkout-step .carrier-price { grid-area: price; font-size: 15px; font-weight: 600; white-space: nowrap; }
  /* krok 4: wybrany przewoznik w podsumowaniu — ten sam uklad */
  body#checkout .summary-selected-carrier .row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "logo name price" "logo delay price"; column-gap: 12px; align-items: center; margin: 0; }
  body#checkout .summary-selected-carrier .row > div { padding: 0; width: auto; }
  body#checkout .summary-selected-carrier .row > div:nth-child(1) { grid-area: logo; }
  body#checkout .summary-selected-carrier .row > div:nth-child(2) { grid-area: name; }
  body#checkout .summary-selected-carrier .row > div:nth-child(3) { grid-area: delay; }
  body#checkout .summary-selected-carrier .row > div:nth-child(4) { grid-area: price; }
  body#checkout .summary-selected-carrier .logo-container img { width: 56px; height: 40px; object-fit: contain; display: block; }
  body#checkout .summary-selected-carrier .carrier-name { font-size: 15px; font-weight: 600; }
  body#checkout .summary-selected-carrier .carrier-delay { font-size: 13px; color: #7a6a66; }
  body#checkout .summary-selected-carrier .carrier-price { font-size: 15px; font-weight: 600; white-space: nowrap; }
  .up-ck-delivery-note { font-size: 13px; color: #7a6a66; margin: 8px 0 12px; }
  body#checkout #delivery_message { min-height: 80px; }
  /* mapa paczkomatow na iOS Safari (uwaga Patrycji 2026-09-08): widget rozciaga sie na "duzy" viewport (100vh),
     wiec dolny arkusz z przyciskiem "Wybierz ten automat" laduje za paskiem Safari, dopoki pasek sie nie schowa.
     100dvh = viewport bez paskow przegladarki (iOS 15.4+; starsze dostaja -webkit-fill-available).
     - produkcja: modal InPost Geowidget (modul inpostshipping)
     - dev: nakladka Furgonetki (div position:absolute; inset:0 doklejony do body) */
  body#checkout .modal .inpost-shipping-map-modal { width: 100%; max-width: 100%; margin: 0; height: 100vh; height: -webkit-fill-available; height: 100dvh; min-height: 0; }
  body#checkout .modal .inpost-shipping-map-modal-content { height: 100%; border-radius: 0; }
  body#checkout > div[style*="inset: 0"] { bottom: auto !important; height: 100vh !important; height: -webkit-fill-available !important; height: 100dvh !important; }
  /* krok 4: przycisk przyklejony do dolu, linia zaufania nad nim */
  .up-ck-trust { font-size: 13px; color: #4d403a; background: #f4f8fd; border-radius: 8px; padding: 10px 12px; margin: 12px 0; }
  body#checkout #checkout-payment-step.-current #payment-confirmation { position: fixed; left: 0; right: 0; bottom: 0; z-index: 700; background: #fff; padding: 10px 15px calc(10px + env(safe-area-inset-bottom)); box-shadow: 0 -4px 16px rgba(0,0,0,.08); margin: 0; }
  body#checkout #checkout-payment-step.-current #payment-confirmation .btn { width: 100%; height: 52px; font-size: 15px; }
  body#checkout:has(#checkout-payment-step.-current) { padding-bottom: 90px; }
  /* dol: reassurance z ikonami precz, podsumowanie zostaje, stopka = jedna linia */
  body#checkout .blockreassurance_product { display: none !important; }
  body#checkout #js-checkout-summary { margin-top: 16px; }
  body#checkout .copyright-Right { display: none; }
  .up-ck-footer { text-align: center; font-size: 13px; color: #4d403a; padding: 12px 15px 4px; margin: 0; }
  .up-ck-footer a { color: #4d403a; text-decoration: underline; }

}
