/*
Theme Name: Botversity
Description: Sklep Botversity w całości na WooCommerce (wariant do porównania z frontem w Astro). Klasyczny motyw bez motywu nadrzędnego; powód w functions.php. Tokeny z public/css/ui.css i docs/DESIGN-botversity-apple.md.
Version: 0.1.0
Requires PHP: 8.1
Text Domain: botversity
*/

/* Fonty: te same pliki co public/fonts na stronie (kopia w assets/fonts, bo sklep stoi na innej domenie) */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(assets/fonts/inter-latin-ext-cf3eb50f.woff2) 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: 300 700; font-display: swap; src: url(assets/fonts/inter-latin-f11d729b.woff2) 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; }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(assets/fonts/space-grotesk-latin-ext-1742d56d.woff2) 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: 'Space Grotesk'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(assets/fonts/space-grotesk-latin-c0781ea2.woff2) 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; }

/* Tokeny jak --ui-* w public/css/ui.css */
:root {
  --ui-accent: #2563EB;
  --ui-accent-hover: #1D4ED8;
  --ui-accent-on-dark: #3B82F6;
  --ui-ink: #1d1d1f;
  --ui-ink-80: #333336;
  --ui-ink-48: #6e6e73;
  --ui-on-dark-muted: #c7c9d1;
  --ui-hairline: #e0e0e0;
  --ui-hairline-2: #d2d2d7;
  --ui-canvas: #ffffff;
  --ui-parchment: #f5f5f7;
  --ui-dark: #080B12;
  --ui-nav: rgba(8, 11, 18, .97);
  --ui-nav-line: rgba(148, 163, 184, .14);
  --ui-shadow-product: drop-shadow(3px 5px 30px rgba(0, 0, 0, .22));
  --ui-display: 'Space Grotesk', system-ui, sans-serif;
  --ui-text: 'Inter', system-ui, sans-serif;
  --ui-ease: cubic-bezier(.22, 1, .36, 1);
  --ui-wrap: 980px;
  --ui-radius: 18px;
  --hdr: 66px;
}
@media (max-width: 640px) { :root { --hdr: 56px; } }

/* ---------- podstawa ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.bv-theme { margin: 0; background: var(--ui-canvas); color: var(--ui-ink); font: 400 17px/1.5 var(--ui-text); -webkit-font-smoothing: antialiased; }
.bv-theme :where(h1, h2, h3) { font-family: var(--ui-display); font-weight: 600; margin: 0; text-wrap: balance; }
.bv-theme :where(p) { margin: 0; text-wrap: pretty; }
.bv-theme :where(img) { display: block; max-width: 100%; height: auto; }
.bv-theme a { color: var(--ui-accent); }
.bv-theme :focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 3px; border-radius: 4px; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 200; padding: 8px 14px; background: #fff; border-radius: 8px; }
.skip:focus { left: 8px; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- nagłówek (src/components/Header.astro) ---------- */
.nav { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 100; height: var(--hdr); background: var(--ui-nav); border-bottom: 1px solid var(--ui-nav-line); }
.nav-in { max-width: 1200px; height: 100%; margin: 0 auto; padding: 0 22px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.logo img { height: 26px; width: auto; }
.links { display: flex; gap: 40px; }
.links a, .menu a { font-size: 18px; font-weight: 500; color: rgba(255,255,255,.8); text-decoration: none; white-space: nowrap; padding: 12px 0; transition: color .2s; }
.links a:hover, .menu a:hover { color: #fff; }
.act { display: flex; align-items: center; gap: 14px; }
.nav .cart { position: relative; display: grid; place-items: center; width: 44px; height: 44px; color: rgba(255,255,255,.85); }
.nav .cart:hover { color: #fff; }
.cart .count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--ui-accent); color: #fff; font-size: 11px; font-weight: 600; line-height: 18px; text-align: center; }
.nav .cta { font-size: 18px; color: #fff; background: var(--ui-accent); border-radius: 999px; padding: 7px 18px; text-decoration: none; white-space: nowrap; transition: background-color .2s; }
.nav .cta:hover { background: var(--ui-accent-hover); }
.burger { display: none; }
.burger summary { list-style: none; display: grid; place-items: center; width: 44px; height: 44px; margin-right: -10px; color: #fff; cursor: pointer; }
.burger summary::-webkit-details-marker { display: none; }
.menu { position: absolute; top: 100%; left: 0; right: 0; display: flex; flex-direction: column; padding: 8px 22px 24px; background: var(--ui-dark); border-bottom: 1px solid var(--ui-nav-line); }
.menu a { font-family: var(--ui-display); font-size: 24px; font-weight: 600; color: #fff; }
.nav :focus-visible { outline-color: var(--ui-accent-on-dark); }
@media (max-width: 1023px) {
  .links { display: none; }
  .burger { display: block; }
}
@media (max-width: 640px) {
  .nav-in { padding: 0 16px; gap: 12px; }
  .logo img { height: 22px; }
  .act { gap: 6px; }
  .nav .cta { font-size: 15px; padding: 7px 14px; }
}

/* pasek danych przykładowych (src/components/shop/SampleBar.astro) */
.sb { margin: 0; padding: 10px 22px; background: var(--ui-ink); color: var(--ui-on-dark-muted); font-size: 14px; text-align: center; }

/* ---------- kafle i typografia strony (public/css/ui.css) ---------- */
.u-tile { text-align: center; padding: 72px 22px; }
.u-light { background: var(--ui-canvas); }
.u-parch { background: var(--ui-parchment); }
.u-kicker { font-family: var(--ui-display); font-size: 21px; font-weight: 600; line-height: 1.19; letter-spacing: .01em; }
.u-h1 { font-size: clamp(40px, 5.4vw, 64px); line-height: 1.06; letter-spacing: -.02em; }
.u-h2 { font-size: clamp(32px, 4.2vw, 48px); line-height: 1.08; letter-spacing: -.015em; }
.u-sub { font-size: clamp(18px, 2vw, 24px); line-height: 1.4; margin-top: 10px; color: var(--ui-ink-80); }
.u-note { margin-top: 14px; font-size: 13px; line-height: 1.45; color: var(--ui-ink-48); }
.u-product { filter: var(--ui-shadow-product); }
.u-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 22px; border: 0; border-radius: 999px; font: 400 17px/1 var(--ui-text); text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .2s var(--ui-ease), background-color .2s; }
.u-pill:active { transform: scale(.95); }
.u-pill-primary { background: var(--ui-accent); color: #fff !important; }
.u-pill-primary:hover { background: var(--ui-accent-hover); }
.u-pill-ghost { background: transparent; color: var(--ui-accent); box-shadow: inset 0 0 0 1px var(--ui-accent); }

/* ---------- lista robotów (ShopList.astro) ---------- */
.shop-head { padding-bottom: 40px; }
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 28px; }
.filters a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 20px; border-radius: 999px; background: var(--ui-parchment); color: var(--ui-ink); font-size: 16px; text-decoration: none; transition: background-color .2s; }
.filters a:hover { background: var(--ui-hairline); }
.filters a[aria-current] { background: var(--ui-ink); color: #fff; }
.shop-list { padding: 48px 22px 72px; }
.shop-list .empty { text-align: center; color: var(--ui-ink-48); }
.grid { list-style: none; margin: 0 auto; padding: 0; max-width: 1100px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.card { display: flex; flex-direction: column; height: 100%; border-radius: 24px; background: var(--ui-canvas); color: inherit !important; text-decoration: none; overflow: hidden; transition: transform .3s var(--ui-ease); }
.card:hover { transform: scale(1.015); }
.card .pic { position: relative; aspect-ratio: 4 / 3; display: grid; place-items: center; }
.card .pic img, .hero .pic img { position: absolute; inset: 20px; width: calc(100% - 40px); height: calc(100% - 40px); max-width: none; object-fit: contain; }
.nopic { font-family: var(--ui-display); font-size: 28px; font-weight: 600; color: var(--ui-hairline-2); }
.card .txt { display: flex; flex-direction: column; flex: 1; padding: 0 26px 24px; }
.os-badge, .card .os { font-size: 13px; font-weight: 600; color: var(--ui-accent); }
.card h2 { margin-top: 4px; font-size: 24px; line-height: 1.15; letter-spacing: -.015em; }
.card .short { margin-top: 8px; font-size: 15px; line-height: 1.45; color: var(--ui-ink-80); flex: 1; }
.card .price { margin-top: 16px; }
.card .price strong, .hero .price strong { font-family: var(--ui-display); font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ui-ink); }
.card .price strong { font-size: 24px; }
.stock { margin-top: 2px; font-size: 14px; color: var(--ui-ink-80); }
.stock::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--ui-accent); vertical-align: 1px; }
.stock.out { color: var(--ui-ink-48); }
.stock.out::before { background: var(--ui-hairline-2); }
.perks ol { list-style: none; margin: 36px auto 0; padding: 0; max-width: 1000px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; text-align: left; counter-reset: k; }
.perks li { counter-increment: k; }
.perks li::before { content: counter(k); display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--ui-parchment); font-family: var(--ui-display); font-weight: 600; }
.perks h3 { margin-top: 12px; font-size: 19px; letter-spacing: -.01em; }
.perks p { margin-top: 6px; font-size: 15px; color: var(--ui-ink-80); }

/* ---------- strona robota (RobotBody.astro) ---------- */
.crumbs { max-width: 1100px; margin: 0 auto; padding: 24px 22px 0; font-size: 14px; color: var(--ui-ink-48); display: flex; gap: 8px; }
.crumbs a { text-decoration: none; }
.notices { max-width: 1100px; margin: 0 auto; padding: 0 22px; }
.hero { max-width: 1100px; margin: 0 auto; padding: 24px 22px 72px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.hero .pic { position: relative; aspect-ratio: 1; border-radius: 24px; background: var(--ui-parchment); display: grid; place-items: center; }
.hero .pic img { inset: 32px; width: calc(100% - 64px); height: calc(100% - 64px); }
.hero .nopic { font-size: 40px; }
.brand { font-family: var(--ui-display); font-size: 17px; font-weight: 600; color: var(--ui-ink-48); }
.buy h1 { margin-top: 4px; font-size: clamp(36px, 4.4vw, 52px); line-height: 1.06; letter-spacing: -.02em; }
.buy .short { margin-top: 12px; font-size: 19px; line-height: 1.45; color: var(--ui-ink-80); }
.hero .price { margin-top: 24px; font-size: 15px; color: var(--ui-ink-48); }
.hero .price strong { font-size: 36px; letter-spacing: -.01em; }
.hero .stock { margin-top: 4px; font-size: 15px; }
.buy-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.buy-cta form { display: contents; }
.facts { list-style: none; margin: 24px 0 0; padding: 20px 0 0; border-top: 1px solid var(--ui-hairline); display: grid; gap: 6px; font-size: 15px; color: var(--ui-ink-80); }
.facts li::before { content: '✓'; margin-right: 10px; color: var(--ui-accent); }

.os .pick { max-width: 1000px; margin: 40px auto 0; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 12px; align-items: start; text-align: left; }
.pick fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.mods { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.mods li { border-radius: 24px; background: var(--ui-canvas); }
.mod { position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 22px 24px 8px; cursor: pointer; }
.mod input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.box { width: 24px; height: 24px; margin-top: 2px; border-radius: 7px; box-shadow: inset 0 0 0 1.5px var(--ui-hairline-2); display: grid; place-items: center; transition: background-color .15s; }
.mod input:checked + .box { background: var(--ui-accent); box-shadow: none; }
.mod input:checked + .box::after { content: ''; width: 11px; height: 6px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: translateY(-2px) rotate(-45deg); }
.mod input:focus-visible + .box { outline: 2px solid var(--ui-accent); outline-offset: 3px; }
.m-txt { display: grid; gap: 2px; }
.m-skill { font-family: var(--ui-display); font-size: 21px; font-weight: 600; letter-spacing: -.01em; display: flex; align-items: center; gap: 10px; }
.m-skill em { font-style: normal; font-family: var(--ui-text); font-size: 12px; font-weight: 600; color: var(--ui-accent); }
.m-name { font-size: 14px; color: var(--ui-ink-48); }
.m-tag { margin-top: 6px; font-size: 15px; line-height: 1.45; color: var(--ui-ink-80); }
.m-price { font-family: var(--ui-display); font-size: 19px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.m-more { display: inline-block; margin: 0 0 18px 66px; font-size: 14px; text-decoration: none; }
.sum { position: sticky; top: calc(var(--hdr) + 16px); padding: 24px; border-radius: 24px; background: var(--ui-canvas); }
.sum dl { margin: 0; display: grid; gap: 10px; font-size: 15px; }
.sum dl > div { display: flex; justify-content: space-between; gap: 16px; }
.sum dl > div[hidden] { display: none; }
.sum dt { color: var(--ui-ink-80); }
.sum dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.disc dd, .disc dt span { color: var(--ui-accent); }
.tot { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--ui-hairline); }
.tot dt, .tot dd { font-family: var(--ui-display); font-size: 21px; font-weight: 600; color: var(--ui-ink); }
.sum .go { width: 100%; margin-top: 20px; }

.about .specs { max-width: 720px; margin: 32px auto 0; text-align: left; }
.specs > div { display: flex; justify-content: space-between; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--ui-hairline); font-size: 17px; }
.specs dt { color: var(--ui-ink-48); }
.specs dd { margin: 0; text-align: right; }
.desc { max-width: 720px; margin: 40px auto 0; text-align: left; font-size: 17px; line-height: 1.6; color: var(--ui-ink-80); }
.desc p + p { margin-top: 12px; }
.info ul { list-style: none; margin: 0 auto; padding: 0; max-width: 1000px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; text-align: left; }
.info li { padding: 26px; border-radius: 24px; background: var(--ui-canvas); }
.info h3 { font-size: 19px; letter-spacing: -.01em; }
.info p { margin-top: 8px; font-size: 15px; color: var(--ui-ink-80); }

@media (max-width: 900px) {
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .perks ol { grid-template-columns: 1fr; max-width: 520px; }
  .hero { grid-template-columns: 1fr; gap: 28px; padding-bottom: 56px; }
  .hero .pic { aspect-ratio: 4 / 3; }
  .os .pick { grid-template-columns: 1fr; }
  .sum { position: static; }
  .info ul { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .shop-list { padding: 28px 16px 56px; }
  .grid { grid-template-columns: 1fr; }
  .card .txt { padding: 0 20px 20px; }
  .u-tile { padding: 56px 16px; }
  .crumbs, .hero, .notices { padding-left: 16px; padding-right: 16px; }
  .buy-cta .u-pill { flex: 1; }
  .mod { grid-template-columns: 24px minmax(0, 1fr); padding: 20px 20px 6px; }
  .m-price { grid-column: 2; }
  .m-more { margin-left: 58px; }
}

/* ---------- koszyk, zamówienie, moje konto (strony z shortcode'ami Woo) ---------- */
.wc-page { max-width: 1100px; margin: 0 auto; padding: 48px 22px 80px; }
.page-title { font-size: clamp(32px, 4.2vw, 48px); line-height: 1.08; letter-spacing: -.015em; margin-bottom: 32px; }
.page-body > * + * { margin-top: 16px; }
@media (max-width: 640px) { .wc-page { padding: 32px 16px 56px; } }
/* nagłówki sekcji Woo (dane rozliczeniowe, twoje zamówienie, podsumowanie koszyka) */
.bv-theme .woocommerce :is(h2, h3) { font-size: 24px; line-height: 1.2; letter-spacing: -.015em; margin: 40px 0 16px; }
.bv-theme .woocommerce #ship-to-different-address { font-size: 17px; font-family: var(--ui-text); font-weight: 500; }
/* kasa w jednej kolumnie: dane, pod nimi „Dostawa na inny adres”, potem uwagi (2026-11-07: w prawej kolumnie na górze
   pole adresu dostawy było nie do znalezienia, bo klient patrzy na nie dopiero po wpisaniu swojego adresu) */
.bv-theme .woocommerce-checkout #customer_details.col2-set { max-width: 640px; }
.bv-theme .woocommerce-checkout #customer_details :is(.col-1, .col-2) { float: none; width: 100%; }
.bv-theme .woocommerce #ship-to-different-address { margin: 8px 0 0; padding: 14px 16px; border-radius: 12px; background: var(--ui-parchment); }
.bv-theme .woocommerce #ship-to-different-address label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.bv-theme .woocommerce .shipping_address { margin-top: 16px; }

/* pola formularza */
.bv-theme .woocommerce form .form-row label { font-size: 14px; font-weight: 500; color: var(--ui-ink-80); }
.bv-theme .woocommerce form .form-row :is(input.input-text, textarea, select),
.bv-theme .woocommerce .select2-container .select2-selection--single {
  min-height: 44px; padding: 10px 14px; border: 1px solid var(--ui-hairline); border-radius: 12px;
  background: #fff; color: var(--ui-ink); font: inherit; font-size: 17px; box-shadow: none;
}
.bv-theme .woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 22px; padding: 0; }
.bv-theme .woocommerce form .form-row :is(input.input-text, textarea, select):focus { border-color: var(--ui-accent); outline: none; box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.bv-theme .woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #d70015; }
.bv-theme .woocommerce form .form-row .required { color: var(--ui-ink-48); text-decoration: none; }

/* „Kupuję jako”: dwie pigułki zamiast radia; pola firmy bez dopisku „opcjonalne”, bo przy firmie są wymagane */
.bv-theme .bv-customer-type .woocommerce-input-wrapper { display: flex; flex-wrap: wrap; gap: 8px; }
.bv-theme .bv-customer-type input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.bv-theme .bv-customer-type label.radio { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0 20px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--ui-hairline); font-size: 17px; line-height: 1; font-weight: 400; color: var(--ui-ink); cursor: pointer; }
.bv-theme .bv-customer-type input[type="radio"]:checked + label.radio { box-shadow: inset 0 0 0 2px var(--ui-accent); color: var(--ui-accent); }
.bv-theme .bv-customer-type input[type="radio"]:focus-visible + label.radio { outline: 2px solid var(--ui-accent); outline-offset: 3px; }
.bv-theme .bv-company-field .optional { display: none; }
/* Woo dopisuje gwiazdkę do każdej opcji radia; wystarczy ta przy „Kupuję jako” */
.bv-theme .bv-customer-type label.radio .required { display: none; }
.bv-theme .bv-company-field[hidden] { display: none; }

/* przyciski: pigułka w kolorze akcji (button-primary z DESIGN-botversity-apple.md) */
.bv-theme .woocommerce :is(button.button, a.button, input.button, #place_order),
.bv-theme .woocommerce :is(button.button.alt, a.button.alt) {
  min-height: 44px; padding: 11px 22px; border: 0; border-radius: 999px;
  background: var(--ui-accent); color: #fff; font: 400 17px/1 var(--ui-text); text-decoration: none;
  transition: transform .2s cubic-bezier(.22, 1, .36, 1), background-color .2s;
}
.bv-theme .woocommerce :is(button.button, a.button, input.button, #place_order):hover { background: var(--ui-accent-hover); color: #fff; }
.bv-theme .woocommerce :is(button.button, a.button, #place_order):active { transform: scale(.97); }
.bv-theme .woocommerce #place_order { width: 100%; min-height: 52px; font-size: 18px; }

/* podsumowanie i płatności: karty z cienką linią (utility-card) */
.bv-theme .woocommerce-checkout-review-order-table,
.bv-theme .woocommerce table.shop_table { border: 1px solid var(--ui-hairline); border-radius: var(--ui-radius); border-collapse: separate; overflow: hidden; }
.bv-theme .woocommerce table.shop_table :is(th, td) { padding: 14px 18px; border-color: var(--ui-hairline); }
.bv-theme .woocommerce table.shop_table .order-total :is(th, td) { font-family: var(--ui-display); font-size: 21px; font-weight: 600; }
.bv-theme .woocommerce table.shop_table .fee td { color: var(--ui-accent); }
.bv-theme .woocommerce-checkout #payment { background: var(--ui-parchment); border-radius: var(--ui-radius); }
.bv-theme .woocommerce-checkout #payment div.payment_box { background: #fff; color: var(--ui-ink-80); border-radius: 12px; font-size: 15px; }
.bv-theme .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }

/* komunikaty Woo: spokojne karty zamiast kolorowych pasów */
.bv-theme .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
.bv-theme :is(.wc-block-components-notice-banner) {
  border: 1px solid var(--ui-hairline); border-radius: 12px; background: var(--ui-parchment); color: var(--ui-ink); font-size: 15px;
}
.bv-theme .woocommerce .woocommerce-error { border-color: #f3c2c6; background: #fff5f5; }

/* Moje konto: menu jako lista pigułek */
.bv-theme .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.bv-theme .woocommerce-MyAccount-navigation a { display: inline-block; padding: 8px 16px; border-radius: 999px; color: var(--ui-ink); text-decoration: none; box-shadow: inset 0 0 0 1px var(--ui-hairline); }
.bv-theme .woocommerce-MyAccount-navigation .is-active a { color: var(--ui-accent); box-shadow: inset 0 0 0 2px var(--ui-accent); }

@media (prefers-reduced-motion: reduce) {
  .bv-theme .woocommerce :is(button.button, a.button, #place_order) { transition: none; }
}

/* koszyk: karty zamiast tabeli z ramkami motywu */
.bv-theme .woocommerce table.cart img { width: 72px; height: auto; border-radius: 12px; background: var(--ui-parchment); }
.bv-theme .woocommerce table.cart td.actions .coupon { display: none; }
.bv-theme .woocommerce table.cart .product-remove a.remove { color: var(--ui-ink-48) !important; font-size: 20px; }
.bv-theme .woocommerce table.cart .product-remove a.remove:hover { background: var(--ui-parchment); color: #d70015 !important; }
.bv-theme .woocommerce .cart-collaterals .cart_totals h2 { font-size: 24px; margin-bottom: 16px; }
.bv-theme .woocommerce .cart-collaterals .cart_totals { width: 100%; max-width: 480px; float: right; }
.bv-theme .woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 52px; font-size: 18px; }
.bv-theme .woocommerce .quantity .qty { min-height: 40px; width: 64px; border: 1px solid var(--ui-hairline); border-radius: 10px; font: inherit; text-align: center; }
.bv-theme .woocommerce .cart_totals th { width: 45%; }
.bv-theme .woocommerce-shipping-destination, .bv-theme .woocommerce-shipping-calculator { display: none; }
@media (max-width: 768px) {
  .bv-theme .woocommerce table.shop_table_responsive tr td::before { font-weight: 500; color: var(--ui-ink-48); }
  /* pusta komórka ilości (moduły sprzedawane po 1 szt.) nie może wpuszczać etykiety na następny wiersz */
  .bv-theme .woocommerce table.shop_table_responsive tr td { display: flow-root; }
  .bv-theme .woocommerce table.cart td.product-thumbnail:empty { display: none; }
  .bv-theme .woocommerce .cart-collaterals .cart_totals { float: none; max-width: none; }
}

/* ---------- stopka ---------- */
.foot { background: var(--ui-parchment); color: var(--ui-ink-80); font-size: 14px; padding: 40px 22px 28px; }
.foot-in { max-width: 1056px; margin: 0 auto; display: grid; gap: 14px; }
.foot img { height: 22px; width: auto; }
.foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.foot a { color: var(--ui-ink-80); text-decoration: none; }
.foot a:hover { color: var(--ui-accent); }
.foot .legal { padding-top: 14px; border-top: 1px solid var(--ui-hairline-2); font-size: 12px; color: var(--ui-ink-48); }

@media (prefers-reduced-motion: reduce) {
  .card, .u-pill, .box { transition: none; }
}

/* „Odstąp od umowy” ([bv_odstapienie], wtyczka includes/legal.php): motyw wyłącza style wtyczki, więc te same reguły tu */
.bv-withdraw { max-width: 640px; }
.bv-withdraw fieldset { border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
.bv-withdraw legend { font-size: 14px; font-weight: 500; color: var(--ui-ink-80); margin-bottom: 6px; padding: 0; }
.bv-withdraw fieldset label { display: block; font-size: 15px; margin: 4px 0; }
.bv-withdraw .button { margin-top: 8px; }
.bv-withdraw .bv-hint { margin-top: 16px; font-size: 14px; color: var(--ui-ink-80); }
.bv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* termin dostawy pod metodą wysyłki (wtyczka, includes/backorder.php) */
.bv-ship-time { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; color: var(--ui-ink-80); }

/* kasa: podpowiedzi pod polem (e-mail, telefon) i szersza kolumna produktu w podsumowaniu (na telefonie nazwa robota
   łamała się co słowo) */
.bv-theme .woocommerce form .form-row .description { margin-top: 6px; font-size: 13px; color: var(--ui-ink-48); background: none; padding: 0; }
.bv-theme .woocommerce form .form-row .description::before { display: none; }
.bv-theme .woocommerce-checkout-review-order-table :is(th, td).product-name { width: 62%; }
.bv-theme .woocommerce-checkout-review-order-table :is(th, td).product-total { white-space: nowrap; }
.bv-theme .woocommerce-checkout-review-order-table tfoot :is(.cart-subtotal, .order-total) td .amount { white-space: nowrap; }

/* ---------- po zamówieniu (woocommerce/checkout/thankyou.php) ---------- */
.bv-ty { max-width: 760px; margin: 0 auto; display: grid; gap: 20px; }
.bv-ty-head { text-align: center; padding: 8px 0 12px; }
.bv-ty-check { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #e8f5ec; color: #1a7f37; margin-bottom: 16px; }
.bv-ty-kicker { font-size: 14px; color: var(--ui-ink-48); letter-spacing: .01em; }
.bv-theme .bv-ty .bv-ty-title { font-size: clamp(32px, 4.6vw, 48px); line-height: 1.08; letter-spacing: -.02em; margin: 6px 0 12px; }
.bv-ty-lead { font-size: 19px; line-height: 1.45; color: var(--ui-ink-80); max-width: 560px; margin: 0 auto !important; }
.bv-ty-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.bv-ty-steps li { display: flex; gap: 12px; align-items: flex-start; padding: 18px; border-radius: var(--ui-radius); background: var(--ui-parchment); font-size: 15px; line-height: 1.45; color: var(--ui-ink-80); }
.bv-ty-steps strong { display: block; color: var(--ui-ink); font-weight: 600; }
.bv-ty-n { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ui-accent); color: #fff; font: 600 14px/1 var(--ui-display); }
.bv-ty-note { padding: 14px 18px; border-radius: 12px; background: #eef4ff; color: var(--ui-ink-80); font-size: 15px; }
.bv-ty-card { padding: 24px; border: 1px solid var(--ui-hairline); border-radius: var(--ui-radius); background: #fff; }
.bv-theme .woocommerce .bv-ty .bv-ty-h { font-size: 20px; margin: 0 0 14px; }
.bv-ty-items { list-style: none; margin: 0; padding: 0; }
.bv-ty-items li { display: grid; grid-template-columns: 64px 1fr auto; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--ui-hairline); }
.bv-ty-items li:first-child { border-top: 0; padding-top: 0; }
.bv-ty-pic { width: 64px; height: 64px; border-radius: 12px; background: var(--ui-parchment); overflow: hidden; display: grid; place-items: center; }
.bv-ty-pic img { width: 100%; height: 100%; object-fit: contain; }
.bv-ty-os { font: 600 15px/1 var(--ui-display); color: var(--ui-accent); }
.bv-ty-name { font-weight: 500; line-height: 1.35; }
.bv-ty-qty { color: var(--ui-ink-48); font-weight: 400; white-space: nowrap; }
.bv-ty-meta { display: block; margin-top: 4px; font-size: 13px; font-weight: 400; color: var(--ui-ink-48); }
.bv-ty-meta strong { font-weight: 500; color: var(--ui-ink-80); }
.bv-ty-meta p { display: inline; }
.bv-ty-price { white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.bv-ty-totals { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--ui-hairline); display: grid; gap: 8px; font-size: 15px; }
.bv-ty-row { display: flex; justify-content: space-between; gap: 16px; }
.bv-ty-row dt { color: var(--ui-ink-80); }
.bv-ty-row dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.bv-ty-row dd .amount { white-space: nowrap; }
.bv-ty-minus dd { color: #1a7f37; }
.bv-ty-grand { margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--ui-hairline); align-items: baseline; }
.bv-ty-grand dt, .bv-ty-grand dd { font: 600 21px/1.2 var(--ui-display); color: var(--ui-ink); }
.bv-ty-grand dt small { font: 400 14px/1 var(--ui-text); color: var(--ui-ink-48); margin-left: 4px; }
.bv-ty-grand dd small { display: block; font: 400 13px/1.4 var(--ui-text); color: var(--ui-ink-48); }
.bv-ty-pay dd { color: var(--ui-ink-80); }
.bv-ty-addr { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.bv-ty-addr address { font-style: normal; font-size: 15px; line-height: 1.6; color: var(--ui-ink-80); }
.bv-ty-cnote { margin-top: 12px !important; font-size: 15px; color: var(--ui-ink-80); }
.bv-ty-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; justify-content: center; padding-top: 8px; }
.bv-theme .woocommerce .bv-ty-actions a.button.bv-ghost { background: transparent; color: var(--ui-accent); box-shadow: inset 0 0 0 1px var(--ui-accent); }
.bv-theme .woocommerce .bv-ty-actions a.button.bv-ghost:hover { background: #eef4ff; color: var(--ui-accent); }
.bv-ty-help { flex-basis: 100%; text-align: center; font-size: 14px; color: var(--ui-ink-48); }
/* dane do przelewu (Woo: woocommerce_thankyou_bacs) jako karta */
.bv-ty > p:not([class]) { padding: 14px 18px; border-radius: 12px; background: var(--ui-parchment); font-size: 15px; }
.bv-ty .woocommerce-bacs-bank-details { padding: 24px; border: 1px solid var(--ui-hairline); border-radius: var(--ui-radius); }
.bv-theme .woocommerce .bv-ty .woocommerce-bacs-bank-details :is(h2, h3) { font-size: 20px; margin: 0 0 12px; }
.bv-theme .woocommerce .bv-ty .woocommerce-bacs-bank-details h3 { font-size: 16px; margin-top: 8px; }
.bv-ty ul.bacs_details { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 15px; color: var(--ui-ink-80); }
.bv-ty ul.bacs_details li { margin: 0; padding: 0; border: 0; float: none; font-size: 15px; text-transform: none; }
.bv-ty ul.bacs_details strong { font-size: 15px; color: var(--ui-ink); }
@media (max-width: 720px) {
  .bv-ty-steps { grid-template-columns: 1fr; }
  .bv-ty-addr { grid-template-columns: 1fr; }
  .bv-ty-card { padding: 18px; }
  .bv-ty-items li { grid-template-columns: 52px 1fr; }
  .bv-ty-pic { width: 52px; height: 52px; }
  .bv-ty-price { grid-column: 2; text-align: left; font-weight: 500; margin-top: -8px; }
  .bv-ty-grand dt small { display: block; margin: 4px 0 0; }
  .bv-ty-head .bv-ty-lead { font-size: 17px; }
}

/* metody płatności: każda jako karta do kliknięcia, wybrana z obwódką w kolorze akcji (2026-11-08: lista radio
   z szarym tłem i ramką Stripe wyglądała „brzydko”). Wnętrze Stripe (karta, Przelewy24) stylują reguły Appearance
   we wtyczce (includes/payments.php), bo jest w ramce iframe. */
.bv-theme .woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.bv-theme .woocommerce-checkout #payment ul.payment_methods { display: grid; gap: 10px; margin: 0 0 20px; padding: 0; border: 0; }
.bv-theme .woocommerce-checkout #payment ul.payment_methods > li.wc_payment_method { position: relative; margin: 0; padding: 0; border: 1px solid var(--ui-hairline); border-radius: 14px; background: #fff; line-height: 1.4; transition: border-color .15s, box-shadow .15s; }
.bv-theme .woocommerce-checkout #payment ul.payment_methods > li.wc_payment_method:hover { border-color: var(--ui-hairline-2); }
.bv-theme .woocommerce-checkout #payment ul.payment_methods > li.wc_payment_method:has(> input:checked) { border-color: var(--ui-accent); box-shadow: 0 0 0 1px var(--ui-accent); }
.bv-theme .woocommerce-checkout #payment ul.payment_methods > li > input.input-radio { position: absolute; top: 20px; left: 18px; margin: 0; width: 18px; height: 18px; accent-color: var(--ui-accent); }
.bv-theme .woocommerce-checkout #payment ul.payment_methods > li > label { display: flex; align-items: center; gap: 10px; min-height: 58px; margin: 0; padding: 14px 18px 14px 48px; font-size: 17px; font-weight: 500; color: var(--ui-ink); cursor: pointer; }
.bv-theme .wc_payment_methods > li > label img { display: inline-block; height: 22px; width: auto; max-height: 22px; margin: 0 0 0 auto; float: none; }
.bv-theme .woocommerce-checkout #payment div.payment_box { margin: 0; padding: 0 18px 18px 48px; background: transparent; border-radius: 0; color: var(--ui-ink-80); font-size: 15px; line-height: 1.5; }
.bv-theme .woocommerce-checkout #payment div.payment_box::before { display: none; }
.bv-theme .woocommerce-checkout #payment div.payment_box fieldset { margin: 0; padding: 0; border: 0; }
.bv-theme .woocommerce-checkout #payment div.payment_box.payment_method_stripe { padding-left: 18px; }
.bv-theme .woocommerce-checkout #payment div.payment_box .form-row { padding: 0; margin: 0 0 4px; }
.bv-theme .woocommerce-checkout #payment div.payment_box #wc-stripe-blik-code { max-width: 220px; letter-spacing: .2em; font-variant-numeric: tabular-nums; }
.bv-theme .woocommerce-checkout #payment .place-order { padding: 20px; border-radius: 14px; background: var(--ui-parchment); }
@media (max-width: 640px) {
  .bv-theme .woocommerce-checkout #payment ul.payment_methods > li > label { padding-left: 44px; font-size: 16px; }
  .bv-theme .woocommerce-checkout #payment div.payment_box { padding-left: 18px; }
  .bv-theme .woocommerce-checkout #payment ul.payment_methods > li > input.input-radio { left: 16px; }
}
