/* =============================================================
   Tytka Fit — checkout styles. Scope: .tytka-checkout wrapper.
   Bazuje 1:1 na prototypie. Ładowane wyłącznie na stronie kreatora.
   ============================================================= */

/* Font display marki — ScriptoramaJF Tradeshow (licencjonowany, self-host). Brak PL glifów → polskie znaki w skrypcie fallbackują do Pacifico per-glyph. */
@font-face {
  font-family: "ScriptoramaJF Tradeshow";
  src: url("../Scriptorama Tradeshow JF Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.tytka-checkout{
  --ink:           #221f1c;
  --ink-2:         #4a4541;
  --ink-3:         #8b847d;
  --ink-4:         #b8b1a6;
  --line:          #ebe5d8;
  --line-2:        #f1ebde;
  --bg:            #faf6ee;
  --bg-2:          #f5efe1;
  --bg-3:          #efe7d3;
  --paper:         #ffffff;
  --paper-2:       #fbf7ee;
  /* KV marki Tytka Fit: carrot #D27F21, leaf #AFB321, white, black (z księgi znaku). */
  --carrot:        #d27f21;
  --carrot-deep:   #ad6315;
  --carrot-soft:   #fbe8cd;
  --carrot-tint:   #fff4e1;
  --leaf:          #afb321;
  --leaf-deep:     #7e831a;
  --leaf-soft:     #eceec0;
  --leaf-tint:     #f6f7da;
  --brand-accent:        #afb321;
  --brand-accent-deep:   #7e831a;
  --brand-accent-soft:   #eceec0;
  --warn:          #b8412a;
  --warn-bg:       #fbe5dc;
  --ok:            #5e7a1a;

  --r-xs: 8px;
  --r-sm: 12px;
  --r-md: 18px;
  --r-lg: 26px;
  --r-xl: 36px;

  --sh-1: 0 1px 0 rgba(34,31,28,.04), 0 2px 6px rgba(34,31,28,.04);
  --sh-2: 0 6px 18px rgba(34,31,28,.06), 0 2px 4px rgba(34,31,28,.04);
  --sh-3: 0 22px 50px -16px rgba(34,31,28,.22), 0 8px 18px -6px rgba(34,31,28,.08);
  --sh-glow: 0 0 0 4px rgba(215,127,33,.12);

  --f-sans: "Josefin Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  /* Font display marki = ScriptoramaJF Tradeshow (komercyjny). Po wgraniu licencjonowanego
     webfontu wskoczy automatycznie; fallback "Yellowtail" = najbliższy darmowy retro-skrypt. */
  --f-script: "ScriptoramaJF Tradeshow", "Scriptorama Tradeshow", "Pacifico", cursive;

  --ease: cubic-bezier(.32,.72,.28,1);
  --ease-out: cubic-bezier(.2,.85,.32,1.05);

  font-family:var(--f-sans);
  font-size:15px;
  line-height:1.5;
  letter-spacing:.005em;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  position:relative;
  isolation: isolate;
  /* Anti-glitch poziomego scrolla od full-bleed pseudo-elementów (hero::before, hero-sep margin)
     które używają `calc(50% - 50vw)`. `100vw` zawiera scrollbar w Chrome/Safari → element wystawał
     w prawo o ~17px. `overflow-x: clip` ucina to bez tworzenia containing block dla position: fixed
     (czego nie potrafi `overflow-x: hidden`). */
  overflow-x: clip;
}
/* Fallback dla starszych przeglądarek bez wsparcia overflow:clip — Chrome <90, Safari <16. */
@supports not (overflow-x: clip) {
  .tytka-checkout { overflow-x: hidden; }
}
/* Strona kreatora — body też nie powinno scrollować horyzontalnie. */
body.tytka-page { overflow-x: clip; }
@supports not (overflow-x: clip) {
  body.tytka-page { overflow-x: hidden; }
}

.tytka-checkout, .tytka-checkout *, .tytka-checkout *::before, .tytka-checkout *::after{ box-sizing:border-box; }
.tytka-checkout button{ font-family:inherit; cursor:pointer; border:0; background:transparent; color:inherit; padding:0; }
.tytka-checkout input, .tytka-checkout select, .tytka-checkout textarea{ font-family:inherit; font-size:15px; color:inherit; }
.tytka-checkout a{ color:inherit; text-decoration:none; }
.tytka-checkout ::selection{ background:var(--ink); color:#fff; }
.tytka-checkout ul{ padding:0; margin:0; }

.tytka-checkout::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(900px 500px at 92% -8%, rgba(215,127,33,.10), transparent 55%),
    radial-gradient(800px 480px at -8% 8%, rgba(182,186,28,.10), transparent 55%),
    radial-gradient(1100px 700px at 50% 110%, rgba(215,127,33,.05), transparent 60%);
}
.tytka-checkout > *{ position:relative; z-index:1; }

/* ====== TOPBAR ====== */
.tytka-checkout .topbar{
  position:sticky; top:var(--wp-admin--admin-bar--height, 0px); z-index:40;
  backdrop-filter: saturate(1.4) blur(18px);
  -webkit-backdrop-filter: saturate(1.4) blur(18px);
  background: rgba(250,246,238,.78);
  border-bottom:1px solid rgba(34,31,28,.06);
}
.tytka-checkout .topbar-progress{
  display: none;
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 3px;
  background: rgba(34,31,28,.06);
  z-index: 1;
  pointer-events: none;
}
.tytka-checkout .topbar-progress-fill{
  height: 100%; width: 0%;
  background: var(--carrot);
  transition: width .15s linear;
}
@media (max-width:1020px){
  .tytka-checkout .topbar-progress{ display: block; }
}
.tytka-checkout .topbar-inner{
  max-width:1320px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px; gap:16px;
}
.tytka-checkout .brand{ display:flex; align-items:center; gap:12px; }
.tytka-checkout .brand-mark{
  width:40px; height:40px; border-radius:13px; flex-shrink:0;
  display:block; object-fit: contain;
}
.tytka-checkout .brand-word{ display:flex; flex-direction:column; line-height:1; }
.tytka-checkout .brand-word b{ font-family:var(--f-script); font-weight:400; font-size:25px; line-height:.9; letter-spacing:0; color:var(--carrot-deep); }
.tytka-checkout .brand-word small{
  font-size:9.5px; color:var(--ink-3); letter-spacing:.22em;
  text-transform:uppercase; margin-top:4px; font-weight:500;
}
.tytka-checkout .topnav{ display:flex; align-items:center; gap:10px; font-size:13px; }
.tytka-checkout .t-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 14px; border-radius:999px;
  background:var(--paper); border:1px solid var(--line);
  font-weight:500; color:var(--ink-2);
  font-size:12.5px; letter-spacing:.005em; white-space: nowrap;
}
.tytka-checkout .t-pill .dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--leaf);
  box-shadow:0 0 0 4px rgba(182,186,28,.18);
  animation: tytkaPulse 2.4s infinite;
}
@keyframes tytkaPulse{
  0%,100%{ box-shadow:0 0 0 4px rgba(182,186,28,.18); }
  50%{ box-shadow:0 0 0 6px rgba(182,186,28,.04); }
}
.tytka-checkout .t-pill svg{ width:13px; height:13px; }

/* Account chip — avatar + nazwa (zalogowany) */
.tytka-checkout .t-pill-account{
  padding: 4px 12px 4px 4px;
  gap: 8px;
  cursor: pointer;
  transition: border-color .18s var(--ease), background .18s var(--ease), transform .18s var(--ease);
}
.tytka-checkout .t-pill-account:hover{
  border-color: var(--carrot-soft);
  background: var(--carrot-tint);
  transform: translateY(-1px);
}
.tytka-checkout .t-pill-avatar{
  width: 26px; height: 26px;
  border-radius: 50%;
  display: block; object-fit: cover;
  background: var(--bg-2);
  border: 1.5px solid var(--leaf-soft);
}
.tytka-checkout .t-pill-account:hover .t-pill-avatar{ border-color: var(--carrot-soft); }
.tytka-checkout .t-pill-account-name{
  font-weight: 600; color: var(--ink); font-size: 12.5px;
  max-width: 140px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Login chip — niezalogowany (akcent carrot, ghost styling) */
.tytka-checkout .t-pill-login{
  cursor: pointer;
  background: var(--paper); color: var(--carrot-deep);
  border-color: var(--carrot-soft);
  font-weight: 600;
  transition: background .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), transform .18s var(--ease);
}
.tytka-checkout .t-pill-login svg{ color: var(--carrot); width: 14px; height: 14px; }
.tytka-checkout .t-pill-login:hover{ background: var(--carrot-tint); border-color: var(--carrot); transform: translateY(-1px); }

/* Kokpit chip — wejście do panelu admina (carrot-filled, wyróżniony) */
.tytka-checkout .t-pill-kokpit{
  cursor: pointer;
  background: var(--carrot); color: #fff; border-color: var(--carrot);
  font-weight: 600;
  transition: background .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);
}
.tytka-checkout .t-pill-kokpit svg{ width: 14px; height: 14px; }
.tytka-checkout .t-pill-kokpit:hover{ background: var(--carrot-deep); border-color: var(--carrot-deep); transform: translateY(-1px); }

@media (max-width:760px){
  .tytka-checkout .t-pill-hours{ display:none; }
  .tytka-checkout .topbar-inner{ padding:14px 18px; }
  .tytka-checkout .t-pill-account-name{ display: none; }
  .tytka-checkout .t-pill-account{ padding: 4px; }
  .tytka-checkout .t-pill-login span{ display: none; }
  .tytka-checkout .t-pill-login{ padding: 9px 12px; }
  .tytka-checkout .t-pill-kokpit span{ display: none; }
  .tytka-checkout .t-pill-kokpit{ padding: 9px 12px; }
  /* Logo graficzne wystarcza na mobile — chowamy tekstowy wordmark, by topnav (np. konto) się nie ściskał. */
  .tytka-checkout .brand-word{ display: none; }
}

/* ====== HERO ====== */
.tytka-checkout .hero{
  max-width:1320px; margin:0 auto;
  padding: 28px 28px 28px;
  position:relative;
}
@media (max-width:760px){ .tytka-checkout .hero{ padding: 20px 18px 18px; } }

.tytka-checkout .eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  font-weight:600; color:var(--ink-3); margin-bottom:14px;
}
.tytka-checkout .eyebrow::before{ content:""; width:24px; height:1px; background:var(--ink-4); }

.tytka-checkout .hero h1{
  font-family: var(--f-script);
  font-size: clamp(44px, 6.6vw, 86px);
  line-height:1.12; letter-spacing:0;
  margin:0 0 16px; font-weight:400; font-style:normal;
  max-width: 14ch;
}
.tytka-checkout .hero h1 em{
  font-style:normal; font-weight:400;
  color:var(--carrot); display:inline-block; position:relative;
}
.tytka-checkout .hero h1 em::after{
  content:""; position:absolute;
  left:-.06em; right:-.06em; bottom:.04em;
  height:.18em; background:var(--leaf);
  z-index:-1; border-radius:6px;
  transform: rotate(-1deg) skewX(-4deg);
  opacity:.55; mix-blend-mode: multiply;
}
@media (max-width:760px){
  .tytka-checkout .hero h1{ font-size: clamp(42px, 11.5vw, 66px); line-height: 1.1; }
  /* Skośny ribbon ::after rozjeżdża się, gdy em zawija — na mobile dajemy solidne podkreślenie per-linia. */
  .tytka-checkout .hero h1 em::after{ display: none; }
  .tytka-checkout .hero h1 em{
    display: inline;
    background-image: linear-gradient(transparent 80%, rgba(175,179,33,.5) 80%, rgba(175,179,33,.5) 95%, transparent 95%);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
}

.tytka-checkout .hero-grid{
  display:grid; grid-template-columns: 1fr 1fr;
  gap: 44px; align-items: center; margin-top:4px;
}
@media (max-width:900px){ .tytka-checkout .hero-grid{ grid-template-columns:1fr; gap:24px; align-items:start; } }

.tytka-checkout .hero-lead{
  font-size: clamp(15px, 1.4vw, 17px);
  line-height:1.55; color:var(--ink-2);
  font-weight:400; max-width: 50ch; margin: 0 0 18px;
}
.tytka-checkout .hero-lead b{ color:var(--ink); font-weight:600; }
.tytka-checkout .hero-meta{ display:flex; flex-wrap:wrap; gap:6px; }
.tytka-checkout .chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 13px; border-radius:999px;
  background:rgba(255,255,255,.6); border:1px solid var(--line);
  font-size:12.5px; color:var(--ink-2); font-weight:500;
}
.tytka-checkout .chip svg{ width:13px; height:13px; }

.tytka-checkout .hero-right{ display:flex; flex-direction:column; }
.tytka-checkout .hero-photo{
  position:relative; width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: 0 14px 28px -22px rgba(34,31,28,.12), 0 4px 10px -8px rgba(34,31,28,.05);
  background: #fef4dc;
}
.tytka-checkout .hero-scene{
  position:absolute; inset:0;
  background: linear-gradient(160deg, #fff8eb 0%, #fbe8cd 55%, #f3c98a 100%);
  border-radius: inherit; overflow:hidden;
}
.tytka-checkout .hero-scene::after{
  content:""; position:absolute; inset:0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n2'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='200' height='200' filter='url(%23n2)'/></svg>");
  background-size: 200px 200px;
  opacity: .03; mix-blend-mode: multiply;
  pointer-events:none; z-index: 5;
}
/* Hero Ken Burns slider — pełnoekranowe zdjęcia: powolny zoom + crossfade między dwoma. */
.tytka-checkout .hs-blob{ display:none; }
.tytka-checkout .hs-item{
  position:absolute; inset:0; display:block;
  width:100%; height:100%; object-fit:cover;
  border-radius:inherit; rotate:0;
  opacity:0; will-change: opacity, transform;
  backface-visibility:hidden;
  animation: heroKB 18s ease-in-out infinite;
}
.tytka-checkout .hs-ows{  transform-origin: 32% 38%; }
.tytka-checkout .hs-boxy{ transform-origin: 68% 62%; animation-delay: -9s; }
@keyframes heroKB{
  0%   { opacity:1; transform: scale(1.06); }
  45%  { opacity:1; transform: scale(1.13); }
  50%  { opacity:0; transform: scale(1.14); }
  95%  { opacity:0; transform: scale(1.0); }
  100% { opacity:1; transform: scale(1.06); }
}
@media (prefers-reduced-motion: reduce){
  .tytka-checkout .hs-item{ animation:none; }
  .tytka-checkout .hs-ows{ opacity:1; }
}

.tytka-checkout .hero-proof-row{
  margin-top: 16px; padding-top: 14px;
  border-top: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; font-size: 12.5px; font-weight: 500; color: var(--ink-2);
}
.tytka-checkout .hpr-item{ display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.tytka-checkout .hpr-item b{ color: var(--ink); font-weight: 700; }
.tytka-checkout .hpr-item svg{ width: 14px; height: 14px; flex-shrink:0; }
.tytka-checkout .hpr-icon{
  display:inline-grid; place-items:center;
  width: 16px; height: 16px; color: var(--carrot);
  font-size: 13px; line-height: 1;
}
.tytka-checkout .hpr-sep{ width: 1px; height: 16px; background: var(--line); flex-shrink: 0; }
@media (max-width:900px){
  .tytka-checkout .hero-proof-row{
    flex-direction: column; align-items: stretch; gap: 0;
    margin-top: 16px; padding-top: 4px;
  }
  .tytka-checkout .hpr-item{ padding: 12px 0; justify-content:flex-start; }
  .tytka-checkout .hpr-sep{ width: 100%; height: 1px; }
}

.tytka-checkout .hero::before{
  content:none; /* wyłączone na życzenie klientki — mniej gradientów w tle hero */
}
.tytka-checkout .hero > *{ position:relative; z-index:1; }

.tytka-checkout .hero-sep{
  margin: 64px calc(50% - 50vw) -28px;
  height: 40px;
  background: linear-gradient(180deg, transparent 0%, rgba(245,239,225,.6) 70%, var(--bg-2) 100%);
  pointer-events: none;
}
@media (max-width:760px){ .tytka-checkout .hero-sep{ margin-bottom: -18px; } }

.tytka-checkout .hero h1 .hw{ display:inline-block; }
.tytka-checkout .hero h1 .hl-write{ display:inline-block; }

/* Hero animations */
.tytka-checkout.hero-prep .hero .eyebrow,
.tytka-checkout.hero-prep .hero-lead,
.tytka-checkout.hero-prep .hero .chip,
.tytka-checkout.hero-prep .hero-proof-row{ opacity: 0; transform: translateY(8px); }
.tytka-checkout.hero-prep .hero h1 .hw{
  opacity: 0; transform: translateY(28px) scale(.94); filter: blur(8px); display: inline-block;
}
.tytka-checkout.hero-prep .hero-photo{ opacity: 0; transform: scale(1.03); }
.tytka-checkout.hero-prep .hero h1 .hl-write{ clip-path: inset(-.15em 100% -.25em -.08em); opacity: 0; }
.tytka-checkout.hero-prep .hero h1 em::after{
  transform: rotate(-1deg) skewX(-4deg) scaleX(0);
  transform-origin: 0% 50%; opacity: 0;
}
@keyframes hRevUp   { to { opacity:1; transform:translateY(0); } }
@keyframes hPhotoIn { to { opacity:1; transform:scale(1); } }
@keyframes hWordIn  { 60%{ opacity:1; } 100%{ opacity:1; transform: translateY(0) scale(1); filter: blur(0); } }
@keyframes hWrite{ 0%{ clip-path: inset(-.15em 100% -.25em -.08em); opacity:0; } 12%{ opacity:1; } 100%{ clip-path: inset(-.15em -.08em -.25em -.08em); opacity:1; } }
@keyframes hRibbonReveal{ 0%{ transform: rotate(-1deg) skewX(-4deg) scaleX(0); opacity:0; } 55%{ transform: rotate(-1deg) skewX(-4deg) scaleX(1.08); opacity:.55; } 100%{ transform: rotate(-1deg) skewX(-4deg) scaleX(1); opacity:.55; } }
.tytka-checkout.hero-animate .hero .eyebrow{ animation: hRevUp .38s cubic-bezier(.2,.7,.2,1) 60ms forwards; }
.tytka-checkout.hero-animate .hero h1 .hw-1{ animation: hWordIn .75s cubic-bezier(.18,1.02,.32,1) 180ms forwards; }
.tytka-checkout.hero-animate .hero h1 .hw-2{ animation: hWordIn .75s cubic-bezier(.18,1.02,.32,1) 340ms forwards; }
.tytka-checkout.hero-animate .hero h1 .hl-write{ animation: hWrite .85s cubic-bezier(.2,.9,.3,1) 540ms forwards; }
.tytka-checkout.hero-animate .hero h1 em::after{ animation: hRibbonReveal .8s cubic-bezier(.34,1.5,.64,1) 1200ms forwards; }
.tytka-checkout.hero-animate .hero-photo{ animation: hPhotoIn .8s cubic-bezier(.2,.7,.2,1) 400ms forwards; }
.tytka-checkout.hero-animate .hero-lead{ animation: hRevUp .42s cubic-bezier(.2,.7,.2,1) 1100ms forwards; }
.tytka-checkout.hero-animate .hero-proof-row{ animation: hRevUp .4s cubic-bezier(.2,.7,.2,1) 1350ms forwards; }
.tytka-checkout.hero-animate .hero .chip{ animation: hRevUp .35s cubic-bezier(.2,.7,.2,1) forwards; }
.tytka-checkout.hero-animate .hero .chip:nth-child(1){ animation-delay: 1350ms; }
.tytka-checkout.hero-animate .hero .chip:nth-child(2){ animation-delay: 1430ms; }
.tytka-checkout.hero-animate .hero .chip:nth-child(3){ animation-delay: 1510ms; }
.tytka-checkout.hero-animate .hero .chip:nth-child(4){ animation-delay: 1590ms; }
@keyframes hRibbonSway{
  from { transform: rotate(-1deg) skewX(-4deg) scaleX(1); }
  to   { transform: rotate(-0.4deg) skewX(-4deg) scaleX(1); }
}
.tytka-checkout.hero-ambient .hero h1 em::after{
  animation: hRibbonSway 6s ease-in-out 2.6s infinite alternate;
}
.tytka-checkout.hero-animate.hero-ambient .hero h1 em::after{
  animation:
    hRibbonReveal .8s cubic-bezier(.34,1.5,.64,1) 1200ms forwards,
    hRibbonSway 6s ease-in-out 2.6s infinite alternate;
}
@media (prefers-reduced-motion: reduce){
  .tytka-checkout.hero-prep .hero .eyebrow,
  .tytka-checkout.hero-prep .hero h1 .hw,
  .tytka-checkout.hero-prep .hero-lead,
  .tytka-checkout.hero-prep .hero .chip,
  .tytka-checkout.hero-prep .hero-photo,
  .tytka-checkout.hero-prep .hero-proof-row{ opacity:1 !important; transform:none !important; filter:none !important; animation:none !important; }
  .tytka-checkout.hero-prep .hero h1 .hl-write{ clip-path:none !important; opacity:1 !important; animation:none !important; }
  .tytka-checkout.hero-animate .hero h1 em::after,
  .tytka-checkout.hero-ambient .hero h1 em::after{ animation:none !important; }
  .tytka-checkout.hero-prep .hero h1 em::after{ transform: rotate(-1deg) skewX(-4deg) !important; opacity:.55 !important; }
}

/* Order reveal */
.tytka-checkout.order-prep .rail,
.tytka-checkout.order-prep .col-cart,
.tytka-checkout.order-prep .col-main > section[data-step]{
  opacity: 0; transform: translateY(28px) scale(.985); filter: blur(8px);
}
.tytka-checkout.order-prep .rail{ transform: translateX(-18px); }
.tytka-checkout.order-prep .col-cart{ transform: translateX(22px); }
.tytka-checkout.order-prep .col-main > section[data-step] > *{ opacity: 0; transform: translateY(12px); }
.tytka-checkout.order-prep #mode-section .mode-card,
.tytka-checkout.order-prep #fulfillment .choice-card,
.tytka-checkout.order-prep #payment .pay-card,
.tytka-checkout.order-prep #menu .cat-tile,
.tytka-checkout.order-prep #menu .card{ opacity: 0; transform: translateY(14px); }
.tytka-checkout.order-prep .col-main > section[data-step]::before{ opacity: 0; transform: translateY(16px) scale(.96); }

@keyframes orderShellIn{ 55%{ opacity: 1; filter: blur(0); } 100%{ opacity: 1; transform: translate(0,0) scale(1); filter: blur(0); } }
@keyframes orderStepIn{ 60%{ opacity: 1; filter: blur(0); } 100%{ opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } }
@keyframes orderChildIn{ 100%{ opacity: 1; transform: translateY(0); } }
@keyframes orderNumberIn{ 100%{ opacity: .055; transform: translateY(0) scale(1); } }
@keyframes orderRailFill{ from{ transform: scaleY(0); } to{ transform: scaleY(1); } }

.tytka-checkout.order-prep .rail.is-in-view,
.tytka-checkout.order-prep .col-cart.is-in-view{ animation: orderShellIn .7s cubic-bezier(.18,1.02,.32,1) forwards; }
.tytka-checkout.order-prep .rail.is-in-view{ animation-delay: 80ms; }
.tytka-checkout.order-prep .col-cart.is-in-view{ animation-delay: 180ms; }
.tytka-checkout.order-prep .rail.is-in-view .rail-line{
  transform-origin: top;
  animation: orderRailFill .75s cubic-bezier(.2,.85,.32,1.05) 260ms both;
}
.tytka-checkout.order-prep .col-main > section[data-step].is-in-view{ animation: orderStepIn .72s cubic-bezier(.18,1.02,.32,1) forwards; }
.tytka-checkout.order-prep .col-main > section[data-step].is-in-view::before{ animation: orderNumberIn .85s cubic-bezier(.18,1.02,.32,1) 150ms forwards; }
.tytka-checkout.order-prep .col-main > section[data-step].is-in-view > *{ animation: orderChildIn .44s cubic-bezier(.2,.7,.2,1) forwards; }
.tytka-checkout.order-prep .col-main > section[data-step].is-in-view > *:nth-child(1){ animation-delay: 180ms; }
.tytka-checkout.order-prep .col-main > section[data-step].is-in-view > *:nth-child(2){ animation-delay: 300ms; }
.tytka-checkout.order-prep .col-main > section[data-step].is-in-view > *:nth-child(3){ animation-delay: 390ms; }
.tytka-checkout.order-prep #mode-section.is-in-view .mode-card,
.tytka-checkout.order-prep #fulfillment.is-in-view .choice-card,
.tytka-checkout.order-prep #payment.is-in-view .pay-card{ animation: orderChildIn .46s cubic-bezier(.2,.7,.2,1) both; }
.tytka-checkout.order-prep #mode-section.is-in-view .mode-card:nth-child(1),
.tytka-checkout.order-prep #fulfillment.is-in-view .choice-card:nth-child(1),
.tytka-checkout.order-prep #payment.is-in-view .pay-card:nth-child(1){ animation-delay: 390ms; }
.tytka-checkout.order-prep #mode-section.is-in-view .mode-card:nth-child(2),
.tytka-checkout.order-prep #fulfillment.is-in-view .choice-card:nth-child(2),
.tytka-checkout.order-prep #payment.is-in-view .pay-card:nth-child(2){ animation-delay: 470ms; }
.tytka-checkout.order-prep #payment.is-in-view .pay-card:nth-child(3){ animation-delay: 550ms; }
.tytka-checkout.order-prep #menu.is-in-view .cat-tile,
.tytka-checkout.order-prep #menu.is-in-view .card{ animation: orderChildIn .42s cubic-bezier(.2,.7,.2,1) both; }
.tytka-checkout.order-prep #menu.is-in-view .cat-tile:nth-child(1){ animation-delay: 350ms; }
.tytka-checkout.order-prep #menu.is-in-view .cat-tile:nth-child(2){ animation-delay: 390ms; }
.tytka-checkout.order-prep #menu.is-in-view .cat-tile:nth-child(3){ animation-delay: 430ms; }
.tytka-checkout.order-prep #menu.is-in-view .cat-tile:nth-child(4){ animation-delay: 470ms; }
.tytka-checkout.order-prep #menu.is-in-view .cat-tile:nth-child(5){ animation-delay: 510ms; }
.tytka-checkout.order-prep #menu.is-in-view .cat-tile:nth-child(n+6){ animation-delay: 550ms; }
.tytka-checkout.order-prep #menu.is-in-view .card:nth-child(1){ animation-delay: 480ms; }
.tytka-checkout.order-prep #menu.is-in-view .card:nth-child(2){ animation-delay: 540ms; }
.tytka-checkout.order-prep #menu.is-in-view .card:nth-child(3){ animation-delay: 600ms; }
.tytka-checkout.order-prep #menu.is-in-view .card:nth-child(4){ animation-delay: 660ms; }
.tytka-checkout.order-prep #menu.is-in-view .card:nth-child(5){ animation-delay: 720ms; }
.tytka-checkout.order-prep #menu.is-in-view .card:nth-child(6){ animation-delay: 780ms; }
.tytka-checkout.order-prep #menu.is-in-view .card:nth-child(n+7){ animation-delay: 820ms; }
.tytka-checkout.order-prep #menu.reveal-done .cat-tile,
.tytka-checkout.order-prep #menu.reveal-done .card{ opacity: 1; transform: none; animation: none; }

@media (prefers-reduced-motion: reduce){
  .tytka-checkout.order-prep .rail,
  .tytka-checkout.order-prep .col-cart,
  .tytka-checkout.order-prep .col-main > section[data-step],
  .tytka-checkout.order-prep .col-main > section[data-step] > *,
  .tytka-checkout.order-prep .col-main > section[data-step]::before,
  .tytka-checkout.order-prep #mode-section .mode-card,
  .tytka-checkout.order-prep #fulfillment .choice-card,
  .tytka-checkout.order-prep #payment .pay-card,
  .tytka-checkout.order-prep #menu .cat-tile,
  .tytka-checkout.order-prep #menu .card{
    opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important;
  }
  .tytka-checkout.order-prep .col-main > section[data-step]::before{ opacity: .055 !important; }
}

/* ====== SHELL ====== */
.tytka-checkout .shell{
  max-width:1320px; margin:0 auto;
  padding: 16px 28px 140px;
  display:grid;
  grid-template-columns: 140px minmax(0,1fr) 340px;
  gap: 24px 36px;
  position:relative;
}
.tytka-checkout .shell::before{
  content:""; position: absolute;
  left: 50%; transform: translateX(-50%);
  top: 0; width: 100vw; bottom: 0;
  background: var(--bg-2); z-index: -1;
}
.tytka-checkout .shell > *{ position:relative; z-index:1; }
.tytka-checkout .rail, .tytka-checkout .col-main, .tytka-checkout .col-cart{ align-self: stretch; }
@media (max-width:1020px){
  .tytka-checkout .shell{ grid-template-columns: 1fr; padding: 16px 18px 100px; gap:16px; }
  .tytka-checkout .rail{ display:none; }
}

.tytka-checkout .rail{
  position: sticky; top: 96px; align-self: start; height: 340px;
}
.tytka-checkout .rail-track{
  position: relative; display: grid; grid-template-rows: repeat(4, 1fr); height: 100%;
}
.tytka-checkout .rail-line, .tytka-checkout .rail-line-fill{
  position: absolute; left: 5px; top: 10%; width: 2px; border-radius: 2px; pointer-events: none;
}
.tytka-checkout .rail-line{ bottom: 10%; background: var(--line); }
.tytka-checkout .rail-line-fill{
  height: 0; background: var(--carrot);
  transition: height .45s var(--ease); z-index: 1;
}
.tytka-checkout .rail-step{
  position: relative; display: flex; align-items: center;
  padding: 0 0 0 28px; cursor: pointer; text-align: left;
  font-size: 13px; font-weight: 500; letter-spacing: .005em;
  color: var(--ink-3); transition: color .22s var(--ease);
  width: 100%; background: transparent;
}
.tytka-checkout .rail-step::before{
  content: ""; position: absolute;
  left: 0; top: 50%; transform: translateY(-50%);
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--paper); border: 2px solid var(--line);
  z-index: 2; transition: all .25s var(--ease);
}
.tytka-checkout .rail-step:hover{ color: var(--ink-2); }
.tytka-checkout .rail-step.is-done{ color: var(--ink-2); }
.tytka-checkout .rail-step.is-done::before{ background: var(--carrot); border-color: var(--carrot); }
.tytka-checkout .rail-step.is-done::after{
  content: ""; position: absolute;
  left: 3px; top: 50%;
  width: 6px; height: 3px;
  border-left: 1.6px solid #fff; border-bottom: 1.6px solid #fff;
  transform: translateY(-65%) rotate(-45deg);
  z-index: 3;
}
.tytka-checkout .rail-step.is-active{ color: var(--ink); font-weight: 600; }
.tytka-checkout .rail-step.is-active::before{
  width: 14px; height: 14px; left: -1px;
  background: var(--carrot); border-color: var(--carrot);
  box-shadow: 0 0 0 5px rgba(215,127,33,.16);
}

.tytka-checkout .col-main{ min-width:0; }
.tytka-checkout .col-main > section{ margin-top:60px; scroll-margin-top:96px; }
.tytka-checkout .col-main > section:first-child{ margin-top:8px; }
@media (max-width:1020px){ .tytka-checkout .col-main > section{ margin-top:40px; } }

.tytka-checkout .col-main > section[data-step]{ position: relative; }
.tytka-checkout .col-main > section[data-step]::before{
  content: attr(data-step); position: absolute;
  top: -28px; right: -8px;
  font-size: clamp(96px, 16vw, 200px);
  font-weight: 300; font-style: italic;
  letter-spacing: -.04em; line-height: 1;
  color: var(--ink); opacity: .055;
  pointer-events: none; user-select: none;
  font-feature-settings: "tnum"; z-index: 0;
}
.tytka-checkout .col-main > section[data-step] > *{ position: relative; z-index: 1; }
@media (max-width:1020px){
  .tytka-checkout .col-main > section[data-step]::before{ top: -18px; right: -4px; opacity: .07; }
}

.tytka-checkout .section-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:16px; margin-bottom:20px;
}
.tytka-checkout .section-head .lhs{ flex:1; min-width:0; }
.tytka-checkout .section-head .step-tag{
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--carrot); font-weight:700;
  display:inline-flex; align-items:center; gap:8px; margin-bottom:8px;
}
.tytka-checkout .section-head .step-tag::before{ content:""; width:18px; height:1px; background:var(--carrot); }
.tytka-checkout .section-head h2{
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight:600; letter-spacing:-.025em;
  line-height:1; margin:0;
}
.tytka-checkout .section-head h2 em{ font-style:italic; font-weight:300; color:var(--carrot); }
.tytka-checkout .section-head .step-sub{
  font-size: 14px; color: var(--ink-3); line-height: 1.5;
  margin: 8px 0 0; max-width: 540px;
}
.tytka-checkout .section-head .hint{ font-size:13px; color:var(--ink-3); flex-shrink:0; }

/* ====== MODE ====== */
.tytka-checkout .mode{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:680px){ .tytka-checkout .mode{ grid-template-columns:1fr; } }

.tytka-checkout .mode-card{
  position:relative; background:var(--paper);
  border:1.5px solid var(--line); border-radius:var(--r-md);
  padding: 22px; text-align:left;
  transition: all .25s var(--ease);
  overflow:hidden; display:block; cursor:pointer;
}
.tytka-checkout .mode-card::after{
  content:""; position:absolute; inset:0; border-radius:inherit;
  pointer-events:none; box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
}
.tytka-checkout .mode-card:hover{ border-color:#d6cdb6; transform:translateY(-1px); }
.tytka-checkout .mode-card.is-on{
  border-color: var(--brand-accent-deep);
  background: var(--brand-accent);
  color:#fff;
  box-shadow: 0 20px 40px -16px rgba(138,144,56,.45), 0 8px 18px -6px rgba(138,144,56,.18);
}
.tytka-checkout .mode-head{ display:flex; align-items:center; gap:14px; margin-bottom: 14px; }
.tytka-checkout .mode-glyph{
  width:48px; height:48px; border-radius:14px;
  background:var(--bg-2);
  display:grid; place-items:center; flex-shrink:0;
  position:relative; border:1px solid var(--line);
  transition: all .25s var(--ease);
}
.tytka-checkout .mode-card.is-on .mode-glyph{ background: var(--carrot); border-color:var(--carrot); }
.tytka-checkout .mode-glyph svg{ width:22px; height:22px; stroke:var(--ink); }
.tytka-checkout .mode-card.is-on .mode-glyph svg{ stroke:#fff; }
.tytka-checkout .mode-title{ font-weight:600; font-size:18px; letter-spacing:-.01em; display:block; }
.tytka-checkout .mode-kicker{
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); font-weight:600; margin-bottom:2px;
}
.tytka-checkout .mode-card.is-on .mode-kicker{ color: rgba(255,255,255,.55); }
.tytka-checkout .mode-pitch{
  font-size:14px; color:var(--ink-2);
  margin: 0 0 14px; line-height:1.5;
}
.tytka-checkout .mode-card.is-on .mode-pitch{ color: rgba(255,255,255,.85); }
.tytka-checkout .mode-perks{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:6px; }
.tytka-checkout .mode-perks li{
  font-size:13px; color:var(--ink-2);
  display:flex; align-items:flex-start; gap:8px;
  position: relative; padding-left: 0;
}
.tytka-checkout .mode-card.is-on .mode-perks li{ color: rgba(255,255,255,.85); }
.tytka-checkout .mode-perks li::before{
  content:""; flex-shrink:0;
  width:16px; height:16px; border-radius:50%;
  background: var(--leaf); margin-top:2px; display:inline-block;
}
.tytka-checkout .mode-perks li::after{
  content:""; position: absolute;
  left: 4px; top: 6px; width: 7px; height: 4px;
  border-left: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  transform: rotate(-45deg); pointer-events: none;
}
.tytka-checkout .mode-savings{
  margin-top:16px; padding-top:14px;
  border-top:1px dashed var(--line);
  display:flex; align-items:center; justify-content:space-between;
  font-size:12.5px; color:var(--ink-3);
}
.tytka-checkout .mode-card.is-on .mode-savings{ border-top-color: rgba(255,255,255,.18); color: rgba(255,255,255,.6); }
.tytka-checkout .mode-savings b{ color: var(--leaf-deep); font-size:13px; font-weight:700; letter-spacing:.01em; }
.tytka-checkout .mode-card.is-on .mode-savings b{ color: var(--leaf); }
.tytka-checkout .mode-tick{
  position:absolute; top:18px; right:18px;
  width:24px; height:24px; border-radius:50%;
  background:var(--carrot); color:#fff;
  display:none; place-items:center; font-size:13px; font-weight:700;
  box-shadow: 0 4px 10px -2px rgba(215,127,33,.5);
}
.tytka-checkout .mode-card.is-on .mode-tick{ display:grid; }

/* ====== CATEGORIES ====== */
.tytka-checkout .cats{
  display:grid; grid-template-columns: repeat(5, 1fr);
  gap: 10px; margin-bottom: 28px;
}
@media (max-width:840px){
  .tytka-checkout .cats{ grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .tytka-checkout .cat-tile{ padding: 12px 10px 10px !important; aspect-ratio: unset !important; }
  .tytka-checkout .cat-art{ width: 44px; height: 44px; }
  .tytka-checkout .cat-glyph{ font-size: 30px; }
  .tytka-checkout .cat-name{ font-size: 14px; }
  .tytka-checkout .cat-count{ font-size: 10px; margin-top: 2px; }
}
.tytka-checkout .cat-tile{
  position:relative; background:var(--paper);
  border:1.5px solid var(--line); border-radius:var(--r-md);
  padding:18px 14px 14px;
  display:flex; flex-direction:column; align-items:flex-start;
  text-align:left; cursor:pointer; overflow:hidden;
  aspect-ratio: 1.05 / 1; transition: all .28s var(--ease);
}
.tytka-checkout .cat-tile:hover{ transform: translateY(-2px); border-color: #d6cdb6; box-shadow: var(--sh-2); }
.tytka-checkout .cat-tile.is-on{
  background: var(--brand-accent);
  border-color: var(--brand-accent-deep); color: #fff;
  box-shadow: 0 8px 22px -10px rgba(138,144,56,.55);
}
.tytka-checkout .cat-art{
  width: 56px; height: 56px;
  position:relative; margin-bottom: auto; flex-shrink:0;
  display:grid; place-items:center;
}
.tytka-checkout .cat-glyph{
  font-size: 38px; line-height: 1;
  filter: drop-shadow(0 2px 4px rgba(34,31,28,.12));
  transition: transform .25s var(--ease);
}
.tytka-checkout .cat-tile:hover .cat-glyph{ transform: scale(1.08) rotate(-2deg); }
.tytka-checkout .cat-tile.is-on .cat-glyph{ filter: drop-shadow(0 2px 6px rgba(0,0,0,.4)); }
.tytka-checkout .cat-meta{ position:relative; z-index:2; }
.tytka-checkout .cat-name{ font-size:16px; font-weight:600; letter-spacing:-.005em; display:block; line-height:1.1; }
.tytka-checkout .cat-count{ font-size:11px; color:var(--ink-3); display:block; margin-top:3px; letter-spacing:.04em; }
.tytka-checkout .cat-tile.is-on .cat-count{ color: rgba(255,255,255,.55); }
.tytka-checkout .cat-tile.is-on .cat-art{ animation: catPop .4s var(--ease-out); }
@keyframes catPop{ 0%{ transform: scale(1); } 50%{ transform: scale(1.12) rotate(-3deg); } 100%{ transform: scale(1); } }

/* ====== PRODUCTS ====== */
.tytka-checkout .products{
  display:grid; grid-template-columns:repeat(2,1fr); gap:14px;
}
@media (max-width:680px){ .tytka-checkout .products{ grid-template-columns:1fr; } }

.tytka-checkout .card{
  position:relative; background:var(--paper);
  border:1px solid var(--line); border-radius: var(--r-md);
  padding:16px; display:flex; gap:14px;
  transition: all .25s var(--ease);
  box-shadow: var(--sh-1); overflow:hidden;
}
.tytka-checkout .card:hover{ transform: translateY(-2px); box-shadow: var(--sh-2); border-color: #d9d0b8; }
.tytka-checkout .card.is-in{
  border-color: var(--brand-accent);
  box-shadow: 0 0 0 4px rgba(179,187,81,.18), var(--sh-2);
}
.tytka-checkout .thumb{
  flex:0 0 116px; height:116px; border-radius: var(--r-sm);
  position:relative; overflow:hidden;
  background: var(--bg-2); border: 1px solid rgba(34,31,28,.04);
}
.tytka-checkout .thumb img{
  width:100%; height:100%; object-fit:contain; display:block;
  transition: transform .4s var(--ease); cursor: zoom-in;
}
.tytka-checkout .card:hover .thumb img{ transform: scale(1.04); }
.tytka-checkout .card-body{ flex:1; min-width:0; display:flex; flex-direction:column; }
.tytka-checkout .card-head{ display:flex; align-items:center; gap:8px; margin-bottom:6px; flex-wrap:wrap; }
.tytka-checkout .card-name{ font-size:17px; font-weight:600; letter-spacing:-.012em; margin:0; line-height:1.2; }
.tytka-checkout .tag{
  font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:3px 8px; border-radius:999px;
  background: var(--leaf-soft); color: var(--leaf-deep);
  border:1px solid rgba(0,0,0,.04);
}
.tytka-checkout .tag.best{ background:#fff0d6; color:#7a4a0a; }
.tytka-checkout .tag.new{ background: var(--carrot); color:#fff; border-color:var(--carrot); }
.tytka-checkout .tag.protein{ background: var(--ink); color:#fff; }
.tytka-checkout .card-desc{
  font-size:13px; color:var(--ink-3);
  margin:0 0 10px; line-height:1.45;
}
.tytka-checkout .card-allergens{
  font-size:11.5px; color:var(--ink-3); line-height:1.4;
  margin:0 0 10px;
}
.tytka-checkout .card-allergens b{ color:var(--ink-2); font-weight:600; }
/* Faktura na firmę (B2B) w danych kontaktowych */
.tytka-checkout .tytka-invoice-check{ display:inline-flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink-2); cursor:pointer; font-weight:500; user-select:none; }
.tytka-checkout .tytka-invoice-fields:not([hidden]){ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:600px){ .tytka-checkout .tytka-invoice-fields:not([hidden]){ grid-template-columns:1fr; } }
/* Stopka prawna — minimalistyczna, z akcentem marki (dwie kropki carrot+leaf + cienka linia) */
.tytka-checkout .tytka-legal-footer{
  max-width:1320px; margin:8px auto 40px; padding:30px 28px 0;
  text-align:center; position:relative;
}
.tytka-checkout .tytka-legal-footer::before{
  content:""; position:absolute; top:0; left:28px; right:28px; height:1px;
  background:linear-gradient(90deg, transparent, var(--line), transparent);
}
.tytka-checkout .tlf-mark{ display:inline-flex; gap:5px; align-items:center; margin-bottom:14px; }
.tytka-checkout .tlf-mark::before, .tytka-checkout .tlf-mark::after{ content:""; width:7px; height:7px; border-radius:50%; }
.tytka-checkout .tlf-mark::before{ background:var(--carrot); }
.tytka-checkout .tlf-mark::after{ background:var(--brand-accent); }
.tytka-checkout .tlf-links{ font-size:13px; font-weight:500; }
.tytka-checkout .tlf-links a{ color:var(--carrot-deep); text-decoration:none; }
.tytka-checkout .tlf-links a:hover{ text-decoration:underline; }
.tytka-checkout .tlf-sep{ color:var(--ink-4); margin:0 10px; font-style:normal; }
.tytka-checkout .tlf-copy{ font-size:11px; color:var(--ink-4); margin-top:9px; letter-spacing:.04em; }
.tytka-checkout .card-meta{
  display:flex; gap:10px; font-size:11.5px; color:var(--ink-3);
  margin-bottom:14px; flex-wrap:wrap; letter-spacing:.02em;
}
.tytka-checkout .card-meta b{ color:var(--ink-2); font-weight:600; }
.tytka-checkout .card-foot{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:auto; gap:10px;
}
/* Karta ma OBA stany akcji renderowane server-side — JS togglu klasą .is-in na <article>. */
.tytka-checkout .card-action{ display:inline-flex; align-items:center; }
.tytka-checkout .card-action .qty{ display:none; }
.tytka-checkout .card.is-in .card-action .btn-add{ display:none; }
.tytka-checkout .card.is-in .card-action .qty{ display:inline-flex; }
.tytka-checkout .price{ font-weight:700; font-size:18px; letter-spacing:-.015em; line-height:1; font-feature-settings:"tnum"; }
.tytka-checkout .price small{ font-weight:400; color:var(--ink-3); font-size:11.5px; margin-left:5px; letter-spacing:.02em; }
.tytka-checkout .qty{
  display:inline-flex; align-items:center;
  background: var(--brand-accent);
  color:#fff; border-radius:999px; padding:3px;
  box-shadow: 0 6px 14px -6px rgba(138,144,56,.45);
}
.tytka-checkout .qty button{
  width:30px; height:30px; border-radius:999px;
  display:grid; place-items:center;
  font-weight:600; color:#fff; font-size:15px;
  transition: background .15s, transform .12s;
}
.tytka-checkout .qty button:hover{ background:rgba(255,255,255,.18); }
.tytka-checkout .qty button:active{ transform: scale(.92); }
.tytka-checkout .qty .val{ min-width:22px; text-align:center; font-weight:600; font-size:13px; padding: 0 4px; }
.tytka-checkout .btn-add{
  padding:10px 16px; border-radius:999px;
  background: var(--carrot);
  color:#fff; font-weight:600; font-size:12.5px; letter-spacing:.02em;
  display:inline-flex; align-items:center; gap:6px;
  transition: all .18s var(--ease);
  text-transform: uppercase;
  box-shadow: 0 6px 14px -6px rgba(184,104,21,.4);
}
.tytka-checkout .btn-add:hover{ background: var(--carrot-deep); transform: translateY(-1px); box-shadow: 0 10px 20px -6px rgba(184,104,21,.5); }
.tytka-checkout .btn-add:active{ transform: scale(.97); }
.tytka-checkout .btn-add svg{ width:13px; height:13px; }

/* Loading state — uniwersalny dla .btn-add i przycisków qty (+/-) w karcie produktu */
.tytka-checkout .btn-add.is-loading,
.tytka-checkout .card [data-act].is-loading{
  position: relative;
  pointer-events: none;
  cursor: wait;
}
.tytka-checkout .btn-add.is-loading > *,
.tytka-checkout .card [data-act].is-loading > *{ visibility: hidden; }
.tytka-checkout .btn-add.is-loading::after,
.tytka-checkout .card [data-act].is-loading::after{
  content: "";
  position: absolute; top: 50%; left: 50%;
  width: 14px; height: 14px;
  margin: -7px 0 0 -7px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: tytkaSpin .7s linear infinite;
}
.tytka-checkout .card [data-act].is-loading::after{ width: 12px; height: 12px; margin: -6px 0 0 -6px; border-width: 1.5px; }
@keyframes tytkaSpin { to { transform: rotate(360deg); } }

/* ====== CALENDAR ====== */
.tytka-checkout .calendar-wrap{
  background:var(--paper); border:1px solid var(--line);
  border-radius: var(--r-lg); overflow:hidden;
  box-shadow: var(--sh-2);
}
.tytka-checkout .cal-top{
  display:grid; grid-template-columns: 1fr auto; gap: 16px;
  padding: 22px 24px 18px; align-items:center;
  border-bottom: 1px solid var(--line-2);
  background: linear-gradient(180deg, var(--paper-2) 0%, var(--paper) 100%);
}
.tytka-checkout .cal-month-name{
  font-size:22px; font-weight:600; letter-spacing:-.012em;
  display:flex; align-items:baseline; gap:8px; margin:0;
}
.tytka-checkout .cal-month-name em{ font-style:italic; font-weight:300; color:var(--ink-3); }
.tytka-checkout .cal-nav{ display:flex; gap:6px; }
.tytka-checkout .cal-nav button{
  width:38px; height:38px; border-radius:12px;
  background:var(--paper); border:1px solid var(--line);
  font-weight:600; color:var(--ink-2);
  display:grid; place-items:center; transition: all .15s;
}
.tytka-checkout .cal-nav button:hover:not([disabled]){ background:var(--bg-2); border-color:#d9d0b8; }
.tytka-checkout .cal-nav button[disabled]{ opacity:.3; cursor:not-allowed; }
.tytka-checkout .cal-nav svg{ width:14px; height:14px; }
.tytka-checkout .cal-grid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:0; padding: 0 16px; }
.tytka-checkout .cal-dows{
  display:grid; grid-template-columns:repeat(7, 1fr);
  padding: 12px 16px 4px;
  border-bottom: 1px dashed var(--line-2);
  margin: 0 8px 6px;
}
.tytka-checkout .cal-dow{
  text-align:center; font-size:10.5px; color:var(--ink-3);
  font-weight:600; padding:6px 0;
  letter-spacing:.18em; text-transform:uppercase;
}
.tytka-checkout .cal-dow.we{ color: var(--carrot); }
.tytka-checkout .cal-cell{
  aspect-ratio:1; position:relative;
  display:grid; place-items:center; cursor:pointer; padding: 3px;
}
.tytka-checkout .cal-cell.is-empty{ visibility:hidden; }
.tytka-checkout .cal-cell .cell-inner{
  width:100%; height:100%;
  display:grid; place-items:center;
  border-radius: 12px;
  font-size:14px; font-weight:500; color: var(--ink);
  border: 1.5px solid transparent;
  transition: all .22s var(--ease);
  background: transparent; position:relative;
}
.tytka-checkout .cal-cell:hover:not(.is-disabled):not(.is-empty) .cell-inner{ background: var(--bg-2); }
.tytka-checkout .cal-cell.is-disabled{ pointer-events:none; }
.tytka-checkout .cal-cell.is-disabled .cell-inner{
  color: var(--ink-4); text-decoration: line-through;
  text-decoration-color: var(--ink-4); text-decoration-thickness: 1px;
}
/* Dni zablokowane przez ograniczenie partnera (pn/śr lub wt/cz) — wyróżnione od past-disabled */
.tytka-checkout .cal-cell.is-blocked-day{ cursor: not-allowed; }
.tytka-checkout .cal-cell.is-blocked-day .cell-inner{
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(0,0,0,.04) 4px, rgba(0,0,0,.04) 8px);
  text-decoration: none;
  color: var(--ink-4);
}
.tytka-checkout .cal-cell.is-today .cell-inner{ border-color: var(--ink); }
/* Notka o łączonej dostawie weekendowej */
.tytka-checkout .cal-weekend-note{
  margin-top: 10px; padding: 9px 12px; border-radius: 10px;
  background: rgba(215,127,33,.10); color: var(--carrot-deep);
  border: 1px solid rgba(215,127,33,.20);
  font-size: 12.5px; line-height: 1.45; font-weight: 600;
}
.tytka-checkout .cal-cell.is-on .cell-inner{
  background: var(--carrot); color:#fff;
  border-color: var(--carrot); font-weight:600;
  box-shadow: 0 4px 12px -2px rgba(215,127,33,.4);
  animation: dayPop .35s var(--ease-out);
}
@keyframes dayPop{ 0%{ transform: scale(.7); opacity:0; } 60%{ transform: scale(1.08); } 100%{ transform: scale(1); opacity:1; } }
.tytka-checkout .cal-cell.is-on.is-low .cell-inner{
  background: var(--warn-bg); color: var(--warn);
  border-color: #e5b9aa; box-shadow: none; animation: none;
}
.tytka-checkout .cal-cell.is-on.is-low .cell-inner::after{
  content:""; position:absolute;
  top:4px; right:4px;
  width:5px; height:5px;
  background:var(--warn); border-radius:50%;
}
.tytka-checkout .cal-bottom{
  border-top:1px solid var(--line-2);
  background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);
  padding: 18px 24px;
}
.tytka-checkout .cal-summary{
  display:grid; grid-template-columns: auto 1fr auto;
  gap: 22px; align-items:center;
}
@media (max-width:680px){
  .tytka-checkout .cal-summary{ grid-template-columns: 1fr 1fr; gap: 14px; }
  .tytka-checkout .cal-summary .cs-bar{ grid-column: 1 / -1; order: 3; }
}
.tytka-checkout .cs-count{ display:flex; align-items:baseline; gap: 8px; }
.tytka-checkout .cs-count b{
  font-size: 38px; font-weight:700; letter-spacing:-.025em;
  color: var(--ink); font-feature-settings:"tnum"; line-height:1;
}
.tytka-checkout .cs-count span{ font-size: 13px; color: var(--ink-3); font-weight:500; }
.tytka-checkout .cs-bar{
  height: 6px; border-radius: 4px;
  background: var(--bg-3); position:relative; overflow:hidden;
}
.tytka-checkout .cs-bar-fill{
  position:absolute; left:0; top:0; bottom:0; width: 0%;
  background: linear-gradient(90deg, var(--leaf) 0%, var(--carrot) 100%);
  border-radius: 4px; transition: width .55s var(--ease);
}
.tytka-checkout .cs-value{ text-align:right; }
.tytka-checkout .cs-value b{
  font-size: 22px; font-weight:700; color:var(--ink);
  letter-spacing:-.015em; font-feature-settings:"tnum";
  line-height:1; display:block;
}
.tytka-checkout .cs-value span{ font-size: 11.5px; color: var(--ink-3); letter-spacing:.04em; }
.tytka-checkout .cal-encouragement{
  margin-top: 14px; padding: 12px 16px;
  border-radius: var(--r-sm);
  background: var(--leaf-tint);
  border: 1px solid var(--leaf-soft);
  color: var(--leaf-deep);
  font-size: 13px;
  display:flex; align-items:center; gap:10px;
  transition: all .35s var(--ease);
}
.tytka-checkout .cal-encouragement.warn{
  background: var(--warn-bg); border-color: #ebbeae; color: var(--warn);
}
.tytka-checkout .cal-encouragement b{ font-weight:600; }
.tytka-checkout .cal-encouragement svg{ width:16px; height:16px; flex-shrink:0; }

/* ====== FULFILLMENT / CHOICE ====== */
.tytka-checkout .choice{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom: 18px; }
@media (max-width:680px){ .tytka-checkout .choice{ grid-template-columns:1fr; } }

.tytka-checkout .choice-card{
  position:relative; background:var(--paper);
  border:1.5px solid var(--line); border-radius:var(--r-md);
  padding:16px; text-align:left;
  display:flex; align-items:center; gap:14px;
  transition: all .22s var(--ease); cursor:pointer;
}
.tytka-checkout .choice-card:hover{ border-color:#d6cdb6; }
.tytka-checkout .choice-card.is-on{
  border-color: var(--brand-accent-deep);
  background: var(--brand-accent);
  color: #fff;
  box-shadow: 0 10px 24px -12px rgba(138,144,56,.4);
}
.tytka-checkout .choice-ico{
  width:46px; height:46px; border-radius: 12px;
  background:var(--bg-2);
  display:grid; place-items:center; flex-shrink:0;
  border: 1px solid var(--line); position:relative;
}
.tytka-checkout .choice-card.is-on .choice-ico{ background: var(--carrot); border-color: var(--carrot); }
.tytka-checkout .choice-ico svg{ width:22px; height:22px; stroke: var(--ink); }
.tytka-checkout .choice-card.is-on .choice-ico svg{ stroke: #fff; }
.tytka-checkout .choice-title{ font-weight:600; font-size:15px; letter-spacing:-.005em; }
.tytka-checkout .choice-sub{ font-size:12px; color:var(--ink-3); margin-top:2px; letter-spacing:.005em; }
.tytka-checkout .choice-card.is-on .choice-sub{ color: rgba(255,255,255,.6); }
.tytka-checkout .choice-tick{
  position:absolute; top:50%; right:14px; transform:translateY(-50%);
  width:20px; height:20px; border-radius:50%;
  border:1.5px solid var(--line);
  display:grid; place-items:center;
  font-size:11px; font-weight:700; color:var(--ink);
  transition: all .15s;
}
.tytka-checkout .choice-card.is-on .choice-tick{ background: var(--carrot); color:#fff; border-color: var(--carrot); }

.tytka-checkout .address-check,
.tytka-checkout .pickup-check{
  background:var(--paper); border:1px solid var(--line);
  border-radius: var(--r-md); padding:18px;
}
.tytka-checkout .pickup-check{ margin-top: 14px; }

/* Grid 3-pól adresu: kod / miasto / ulica (ulica zajmuje pełną szerokość w 2 rzędzie) */
.tytka-checkout .address-fields{
  display: grid; grid-template-columns: 140px 1fr; gap: 14px;
  margin-bottom: 14px;
}
.tytka-checkout .address-fields .field-street{ grid-column: 1 / -1; }
/* Autocomplete miejscowości — dropdown podpowiedzi z naszych stref dostaw */
.tytka-checkout .address-fields .field-city{ position: relative; }
.tytka-checkout .addr-suggest{
  position: absolute; left: 0; right: 0; top: 100%; z-index: 40;
  margin-top: 6px; background: var(--paper);
  border: 1px solid var(--line); border-radius: var(--r-sm);
  box-shadow: var(--sh-3); overflow: hidden auto; max-height: 260px; display: none;
}
.tytka-checkout .addr-suggest.show{ display: block; }
.tytka-checkout .addr-suggest-item{
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  width: 100%; padding: 10px 12px; text-align: left; cursor: pointer;
  border: 0; border-bottom: 1px solid var(--line-2);
  background: transparent; font: inherit; color: var(--ink);
}
.tytka-checkout .addr-suggest-item:last-child{ border-bottom: 0; }
.tytka-checkout .addr-suggest-item:hover{ background: var(--leaf-tint); }
.tytka-checkout .addr-suggest-item .as-main{ display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.tytka-checkout .addr-suggest-item .as-city{ font-weight: 600; }
.tytka-checkout .addr-suggest-item .as-admin{ font-size: 11px; color: var(--ink-4); font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tytka-checkout .addr-suggest-item .as-pc{ font-size: 12px; color: var(--ink-3); white-space: nowrap; flex-shrink: 0; }
@media (max-width: 560px){
  .tytka-checkout .address-fields{ grid-template-columns: 1fr; }
}
.tytka-checkout .input, .tytka-checkout .select, .tytka-checkout .textarea{
  width:100%;
  background:var(--paper); border:1.5px solid var(--line);
  border-radius: var(--r-sm); padding:13px 14px;
  font-family: inherit;
  transition: all .15s var(--ease);
  color: var(--ink);
}

/* === Select2 — dopasowanie do wyglądu .input === */
.tytka-checkout .select2-container{ width: 100% !important; font-family: inherit; }
.tytka-checkout .select2-container--default .select2-selection--single{
  height: auto; min-height: 48px;
  background: var(--paper);
  border: 1.5px solid var(--line);
  border-radius: var(--r-sm);
  padding: 12px 14px;
  transition: all .15s var(--ease);
  display: flex; align-items: center;
}
.tytka-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
  padding: 0; line-height: 1.3; color: var(--ink); font-size: inherit;
}
.tytka-checkout .select2-container--default .select2-selection--single .select2-selection__placeholder{ color: var(--ink-4); }
.tytka-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{
  height: 100%; right: 12px; top: 0;
}
.tytka-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b{
  border-color: var(--ink-3) transparent transparent transparent;
}
.tytka-checkout .select2-container--default.select2-container--open .select2-selection--single,
.tytka-checkout .select2-container--default.select2-container--focus .select2-selection--single{
  border-color: var(--carrot); box-shadow: var(--sh-glow);
}
.tytka-checkout .select2-container--default.select2-container--open .select2-selection__arrow b{
  border-color: transparent transparent var(--carrot) transparent;
}
/* Dropdown */
.tytka-checkout .select2-dropdown,
.select2-container--open .select2-dropdown.select2-dropdown--below,
.select2-container--open .select2-dropdown.select2-dropdown--above{
  border: 1.5px solid var(--line); border-radius: var(--r-sm); overflow: hidden;
  box-shadow: 0 12px 32px -8px rgba(0,0,0,.12);
}
.select2-container--default .select2-results__option{ padding: 10px 14px; font-size: 14px; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted{
  background: var(--carrot); color: #fff;
}
.select2-container--default .select2-results__option[aria-selected=true]{
  background: var(--carrot-tint); color: var(--carrot-deep);
}
.select2-search--dropdown .select2-search__field{
  border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; font-family: inherit;
}
.select2-search--dropdown .select2-search__field:focus{ outline: none; border-color: var(--carrot); }
.tytka-checkout .input::placeholder, .tytka-checkout .textarea::placeholder{ color: var(--ink-4); }
.tytka-checkout .input:focus, .tytka-checkout .select:focus, .tytka-checkout .textarea:focus{
  outline:none; border-color:var(--carrot); box-shadow: var(--sh-glow);
}
.tytka-checkout .input.err, .tytka-checkout .select.err, .tytka-checkout .textarea.err{
  border-color:var(--warn); box-shadow: 0 0 0 4px rgba(184,65,42,.10);
}
.tytka-checkout .field label{
  display:block; font-size:10.5px; color:var(--ink-3); font-weight:600;
  margin-bottom:8px; letter-spacing:.18em; text-transform:uppercase;
}
.tytka-checkout .field .err-msg{ display:none; font-size:12px; color:var(--warn); margin-top:6px; }
.tytka-checkout .field.err .err-msg{ display:block; }
.tytka-checkout .field-full{ grid-column:1 / -1; }
.tytka-checkout .field{ position:relative; }

.tytka-checkout .address-input-wrap{ position:relative; }
.tytka-checkout .address-input-wrap .input{ padding-right: 90px; }
.tytka-checkout .address-input-wrap .addr-state{
  position:absolute; top: 50%; right: 14px; transform: translateY(-50%);
  display:flex; align-items:center; gap: 6px;
  font-size: 11px; letter-spacing:.04em;
  color: var(--ink-3); font-weight:500;
  pointer-events:none;
}
.tytka-checkout .addr-state .spinner{
  width:14px; height:14px; border-radius:50%;
  border: 2px solid var(--line);
  border-top-color: var(--carrot);
  animation: tytkaSpin .8s linear infinite;
}
.tytka-checkout .addr-state.ok{ color: var(--ok); }
.tytka-checkout .addr-state.bad{ color: var(--warn); }
.tytka-checkout .addr-state .ok-mark{
  width:16px; height:16px; border-radius:50%;
  background: var(--leaf); color: var(--ink);
  display:grid; place-items:center;
  font-weight:800; font-size:10px;
}
.tytka-checkout .addr-state .bad-mark{
  width:16px; height:16px; border-radius:50%;
  background: var(--warn); color:#fff;
  display:grid; place-items:center;
  font-weight:800; font-size:10px;
}
@keyframes tytkaSpin{ to{ transform: rotate(360deg); } }

.tytka-checkout .zones-hint{
  margin-top:12px; font-size:11.5px; color:var(--ink-3);
  display:flex; flex-wrap:wrap; gap:6px; align-items:center;
}
.tytka-checkout .z-pill{
  display:inline-block; padding:4px 10px; border-radius:999px;
  background:var(--bg-2); color:var(--ink-2);
  font-size:11.5px; font-weight:500;
  border:1px solid var(--line-2);
}
/* Klikalne badge'e miejscowości (quick-pick dostawy) */
.tytka-checkout .z-pick{ cursor:pointer; transition: border-color .15s var(--ease), color .15s var(--ease), background .15s var(--ease); }
.tytka-checkout .z-pick:hover{ border-color:var(--carrot); color:var(--carrot-deep); background:var(--carrot-tint); }
.tytka-checkout .z-pick:active{ transform: translateY(1px); }
.tytka-checkout .z-label{
  letter-spacing:.18em; text-transform:uppercase;
  font-size:10px; font-weight:600; margin-right:4px;
}
.tytka-checkout .address-result{
  margin-top:16px; border-radius: var(--r-sm);
  font-size:13.5px; padding: 16px;
  border: 1px solid; display: none;
  flex-direction: column; gap: 10px;
  animation: slideUp .35s var(--ease-out);
}
.tytka-checkout .address-result.show{ display: flex; }
@keyframes slideUp{ from{ opacity:0; transform: translateY(6px); } to{ opacity:1; transform: translateY(0); } }
.tytka-checkout .address-result.ok{ background: var(--leaf-tint); border-color: var(--leaf-soft); color: var(--leaf-deep); }
.tytka-checkout .address-result.bad{ background: var(--warn-bg); border-color: #ebbeae; color: var(--warn); }
.tytka-checkout .address-result-head{
  display:flex; align-items:center; gap:10px;
  font-weight:600; font-size:14px; letter-spacing:-.005em;
}
.tytka-checkout .address-result-head svg{ width:18px; height:18px; flex-shrink:0; }
.tytka-checkout .delivery-slots{ display:flex; gap:6px; flex-wrap:wrap; }
.tytka-checkout .slot{
  padding:8px 14px; border-radius:999px;
  background:rgba(255,255,255,.6);
  border:1px solid var(--leaf-soft);
  font-size:12.5px; font-weight:600; color: var(--leaf-deep);
  cursor:pointer; transition: all .15s;
  display:inline-flex; align-items:center; gap:5px;
}
.tytka-checkout .slot:hover{ background:#fff; }
.tytka-checkout .slot.is-on{
  background: var(--brand-accent); color:#fff; border-color: var(--brand-accent);
}
.tytka-checkout .slot svg{ width:11px; height:11px; }

/* ====== FORM GRID ====== */
.tytka-checkout .form-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
@media (max-width:600px){ .tytka-checkout .form-grid{ grid-template-columns:1fr; } }

/* ====== PAY ====== */
.tytka-checkout .pay{
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px;
}
@media (max-width:680px){ .tytka-checkout .pay{ grid-template-columns:1fr; } }

.tytka-checkout .pay-card{
  background:var(--paper); border:1.5px solid var(--line);
  border-radius: var(--r-md); padding:16px;
  display:flex; align-items:center; gap:13px;
  text-align:left; position:relative;
  transition:all .22s var(--ease); cursor:pointer; overflow:hidden;
}
.tytka-checkout .pay-card:hover{ border-color:#d6cdb6; }
.tytka-checkout .pay-card.is-on{
  border-color: var(--brand-accent-deep);
  background: var(--brand-accent);
  color:#fff;
  box-shadow: 0 10px 24px -12px rgba(138,144,56,.4);
}
.tytka-checkout .pay-logo{
  width:54px; height:38px; border-radius:8px;
  display:grid; place-items:center;
  font-weight:700; font-size:11px; letter-spacing:.06em;
  color:#fff; flex-shrink:0; position:relative;
}
.tytka-checkout .pay-logo.online{
  background: var(--carrot);
}
.tytka-checkout .pay-logo.online::after{
  content:""; position:absolute;
  top:6px; left:6px; right:6px; height: 4px;
  background: rgba(255,255,255,.3); border-radius:1px;
}
.tytka-checkout .pay-logo.blik{ background:#111; color: var(--carrot); font-size:13px; }
.tytka-checkout .pay-logo.cash{ background: var(--leaf); color: var(--ink); }
.tytka-checkout .pay-card.is-on .pay-logo.cash{ box-shadow: 0 0 0 1px rgba(255,255,255,.3); }
.tytka-checkout .pay-title{ font-weight:600; font-size:14px; letter-spacing:-.005em; }
.tytka-checkout .pay-sub{ font-size:11.5px; color:var(--ink-3); margin-top:2px; }
.tytka-checkout .pay-card.is-on .pay-sub{ color: rgba(255,255,255,.55); }

.tytka-checkout .form-error{
  display:none; margin-top:14px;
  padding:12px 14px; border-radius: var(--r-sm);
  background:var(--warn-bg); color:var(--warn); font-size:13.5px;
  align-items:center; gap:10px; border:1px solid #ebbeae;
}
.tytka-checkout .form-error.show{ display:flex; }
.tytka-checkout .form-error svg{ width:18px; height:18px; flex-shrink:0; }

/* ====== CART ====== */
.tytka-checkout .col-cart{ min-width:0; }
@media (max-width:1020px){ .tytka-checkout .col-cart{ display:none; } }

.tytka-checkout .cart{
  position:sticky; top:96px;
  background:var(--paper); border:1px solid var(--line);
  border-radius: var(--r-lg); padding: 22px;
  box-shadow: var(--sh-3);
  max-height: calc(100vh - 110px);
  display:flex; flex-direction:column; overflow:hidden;
}
.tytka-checkout .cart-head{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:18px; padding-bottom:14px;
  border-bottom: 1px dashed var(--line);
}
.tytka-checkout .cart-head h3{
  margin:0; font-size:15px; font-weight:600; letter-spacing:.005em;
  display:flex; align-items:center; gap: 10px;
}
.tytka-checkout .cart-head h3 .num{
  display:inline-grid; place-items:center;
  width:24px; height:24px; border-radius:50%;
  background: var(--ink); color:#fff;
  font-size:11px; font-weight:700;
  font-feature-settings:"tnum";
  transition: transform .25s var(--ease-out);
}
.tytka-checkout .cart-head h3 .num.bump{ animation: tytkaBump .35s var(--ease-out); }
@keyframes tytkaBump{ 0%{ transform: scale(1); } 50%{ transform: scale(1.25); } 100%{ transform: scale(1); } }
.tytka-checkout .cart-mode-pill{
  font-size:10.5px; color:var(--carrot-deep);
  background:var(--carrot-tint);
  padding:4px 10px; border-radius:999px;
  font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  border: 1px solid var(--carrot-soft);
}

/* === Min-daily widget (sticky cart) === */
.tytka-checkout .min-daily{
  margin: 14px 0 10px;
  padding: 12px 14px;
  border-radius: var(--r-sm);
  background: var(--bg-2);
  border: 1px solid var(--line);
  transition: background .25s var(--ease), border-color .25s var(--ease);
}
.tytka-checkout .min-daily .md-row{
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--ink-2); line-height: 1.35;
}
.tytka-checkout .min-daily .md-row b{ font-weight: 700; color: var(--ink); }
.tytka-checkout .min-daily .md-ico{ width: 16px; height: 16px; flex-shrink: 0; }
.tytka-checkout .min-daily .md-ico-ok{ display: none; }
.tytka-checkout .min-daily .md-bar{
  margin-top: 8px;
  position: relative;
  height: 6px;
  background: rgba(34,31,28,.06);
  border-radius: 999px;
  overflow: hidden;
}
.tytka-checkout .min-daily .md-bar-fill{
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 0; min-width: 0;
  background: linear-gradient(90deg, var(--carrot), var(--carrot-deep));
  border-radius: inherit;
  transition: width .35s var(--ease), background .25s var(--ease);
}

/* Stany — empty / partial / ok */
.tytka-checkout .min-daily[data-state="empty"]{
  background: var(--bg-2); border-color: var(--line);
}
.tytka-checkout .min-daily[data-state="empty"] .md-ico-warn{ color: var(--ink-3); }

.tytka-checkout .min-daily[data-state="partial"]{
  background: var(--carrot-tint);
  border-color: var(--carrot-soft);
}
.tytka-checkout .min-daily[data-state="partial"] .md-ico-warn{ color: var(--carrot-deep); }
.tytka-checkout .min-daily[data-state="partial"] .md-row{ color: var(--carrot-deep); }
.tytka-checkout .min-daily[data-state="partial"] .md-row b{ color: var(--carrot-deep); }

.tytka-checkout .min-daily[data-state="ok"]{
  background: var(--leaf-tint);
  border-color: var(--leaf-soft);
}
.tytka-checkout .min-daily[data-state="ok"] .md-ico-warn{ display: none; }
.tytka-checkout .min-daily[data-state="ok"] .md-ico-ok{ display: block; color: var(--leaf-deep); }
.tytka-checkout .min-daily[data-state="ok"] .md-row{ color: var(--leaf-deep); }
.tytka-checkout .min-daily[data-state="ok"] .md-row b{ color: var(--leaf-deep); }
.tytka-checkout .min-daily[data-state="ok"] .md-bar{ background: rgba(138, 144, 56, .15); }
.tytka-checkout .min-daily[data-state="ok"] .md-bar-fill{
  background: linear-gradient(90deg, var(--leaf), var(--leaf-deep));
}
.tytka-checkout .cart-list{
  flex:1; min-height:0; overflow:auto;
  margin: 0 -8px; padding: 4px 8px;
}
.tytka-checkout .cart-list::-webkit-scrollbar{ width:6px; }
.tytka-checkout .cart-list::-webkit-scrollbar-thumb{ background:#e2dbc9; border-radius:10px; }
.tytka-checkout .cart-empty{ text-align:center; padding:24px 8px 12px; color:var(--ink-3); }
.tytka-checkout .cart-empty .em{
  width:72px; height:72px; border-radius:50%;
  background:var(--bg-2);
  border: 1.5px dashed #d9cfb5;
  display:grid; place-items:center;
  margin: 0 auto 14px; position:relative;
}
.tytka-checkout .cart-empty .em::before{
  content:""; position:absolute;
  width: 32px; height: 22px;
  background: var(--carrot);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-12deg);
}
.tytka-checkout .cart-empty .em::after{
  content:""; position:absolute;
  width: 12px; height: 10px;
  background: var(--leaf);
  border-radius: 50% 50% 50% 0;
  transform: translate(8px, -16px) rotate(-30deg);
}
.tytka-checkout .cart-empty b{
  display:block; color:var(--ink); font-size:15px; font-weight:600;
  margin-bottom:4px; letter-spacing:-.005em;
}
.tytka-checkout .cart-empty span{ font-size:12.5px; line-height:1.5; }
.tytka-checkout .ci{
  display:flex; gap:12px; padding:12px 0;
  border-bottom:1px dashed var(--line-2);
  position:relative; animation: ciIn .3s var(--ease-out);
}
@keyframes ciIn{ from{ opacity:0; transform: translateY(4px); } to{ opacity:1; transform: translateY(0); } }
.tytka-checkout .ci:last-child{ border-bottom:0; }
.tytka-checkout .ci-thumb{
  width:44px; height:44px; border-radius:10px;
  background: var(--bg-2); flex-shrink:0; overflow:hidden;
}
.tytka-checkout .ci-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.tytka-checkout .ci-body{ flex:1; min-width:0; }
.tytka-checkout .ci-name{
  font-weight:600; font-size:13.5px;
  display:flex; justify-content:space-between; gap:8px;
  letter-spacing:-.005em;
}
.tytka-checkout .ci-name b{ font-weight:700; font-feature-settings:"tnum"; }
.tytka-checkout .ci-meta{ font-size:11.5px; color:var(--ink-3); margin-top:3px; letter-spacing:.01em; }
.tytka-checkout .ci-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:6px; }
.tytka-checkout .ci-qty{
  display:inline-flex; align-items:center;
  background:var(--bg-2); border:1px solid var(--line);
  border-radius:999px; padding:2px;
}
.tytka-checkout .ci-qty button{
  width:24px; height:24px; border-radius:50%;
  font-size:13px; font-weight:600; color:var(--ink-2);
  display:grid; place-items:center;
}
.tytka-checkout .ci-qty button:hover{ background:rgba(34,31,28,.06); }
.tytka-checkout .ci-qty .v{ min-width:18px; text-align:center; font-size:12px; font-weight:600; padding: 0 3px; }
.tytka-checkout .ci-remove{
  font-size:11px; color:var(--ink-4); text-decoration:underline;
  font-weight:500;
}
.tytka-checkout .ci-remove:hover{ color: var(--warn); }
.tytka-checkout .cart-totals{
  margin-top:14px; padding-top:14px;
  border-top:1px dashed var(--line);
  display:none; flex-direction:column; gap:8px; font-size:13px;
}
.tytka-checkout .cart-totals.show{ display:flex; }
.tytka-checkout .cart-totals .row{
  display:flex; justify-content:space-between;
  color:var(--ink-2); font-feature-settings:"tnum";
}
.tytka-checkout .cart-totals .row b{ font-weight:600; color:var(--ink); }
.tytka-checkout .cart-totals .row.day-info{
  font-size:11.5px; color:var(--carrot-deep);
  background: var(--carrot-tint);
  padding:8px 10px; border-radius: 8px;
  margin: 4px 0 2px; font-weight:500;
  border: 1px solid var(--carrot-soft); letter-spacing:.005em;
}
.tytka-checkout .cart-totals .row.day-info b{ color: var(--carrot-deep); }
.tytka-checkout .cart-totals .row.delivery-free{ color: var(--leaf-deep); }
.tytka-checkout .cart-totals .row.delivery-free b{ color: var(--leaf-deep); }
.tytka-checkout .cart-totals .row.total{
  font-size:24px; font-weight:700; color:var(--ink);
  margin-top:8px; padding-top:14px;
  border-top:1px solid var(--ink);
  letter-spacing:-.02em;
}
.tytka-checkout .cart-totals .row.total b{ font-size:24px; font-weight:700; }
.tytka-checkout .cart-totals .total-num{ display:inline-flex; align-items:baseline; gap:4px; }

.tytka-checkout .promo-note{
  margin-top:12px; font-size:12px; color:var(--ink-2);
  background: var(--carrot-tint);
  border:1px solid var(--carrot-soft);
  border-radius:10px; padding:10px 12px;
  display:none; align-items:flex-start; gap:10px;
  line-height:1.45;
}
.tytka-checkout .promo-note.show{ display:flex; }
.tytka-checkout .promo-note.is-positive{
  background: var(--leaf-tint);
  border-color: var(--leaf-soft);
  color: var(--leaf-deep);
}
.tytka-checkout .promo-note svg{ width:14px; height:14px; flex-shrink:0; margin-top:1px; }

.tytka-checkout .cta{
  margin-top:16px;
  width:100%; padding:18px 22px; border-radius: 16px;
  background: var(--carrot);
  color:#fff;
  font-weight:600; font-size:15px; letter-spacing:.005em;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  box-shadow: 0 14px 28px -12px rgba(215,127,33,.55);
  transition: all .15s var(--ease);
  border: 1.5px solid var(--carrot);
  font-feature-settings:"tnum";
}
.tytka-checkout .cta:hover:not([disabled]):not(.is-disabled){
  background: var(--carrot-deep); border-color: var(--carrot-deep);
  transform: translateY(-1px);
  box-shadow: 0 16px 32px -10px rgba(215,127,33,.65);
}
.tytka-checkout .cta:active:not([disabled]):not(.is-disabled){ transform: scale(.99); }
.tytka-checkout .cta[disabled],
.tytka-checkout .cta.is-disabled{
  background: var(--bg-3); color: var(--ink-3);
  box-shadow: none; border-color: var(--line);
}
.tytka-checkout .cta.is-disabled{ cursor: pointer; }
.tytka-checkout .cta[disabled]{ cursor: not-allowed; }
.tytka-checkout .cta .arrow{
  width:32px; height:32px; border-radius:50%;
  background: rgba(255,255,255,.22);
  display:grid; place-items:center;
  transition: transform .2s var(--ease);
}
.tytka-checkout .cta[disabled] .arrow,
.tytka-checkout .cta.is-disabled .arrow{ background: transparent; }
.tytka-checkout .cta:hover:not([disabled]):not(.is-disabled) .arrow{ transform: translateX(2px); }
.tytka-checkout .cta svg{ width:14px; height:14px; }

/* ====== MOBILE BAR ====== */
.tytka-checkout .mb-bar{
  display:none;
  position:fixed; left:12px; right:12px; bottom:12px; z-index:50;
  background: var(--ink); color: #fff;
  border-radius: 22px;
  padding: 14px 16px 14px 18px;
  box-shadow: 0 18px 40px -12px rgba(34,31,28,.55);
  transform: translateY(120%);
  transition: transform .35s var(--ease-out);
}
.tytka-checkout .mb-bar.show{ transform: translateY(0); }
.tytka-checkout .mb-inner{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.tytka-checkout .mb-left{
  display:flex; align-items:center; gap:12px; min-width:0; flex:1;
  background: transparent; border: 0; color: inherit; padding: 0;
  text-align: left; cursor: pointer;
}
.tytka-checkout .mb-chev{
  width:14px; height:14px; flex-shrink: 0;
  margin-left: auto; opacity: .6;
  transition: opacity .15s;
}
.tytka-checkout .mb-left:hover .mb-chev{ opacity: 1; }
.tytka-checkout .mb-count{
  background: var(--carrot); color:#fff;
  font-weight:700; font-size:13px;
  width: 30px; height: 30px;
  display:grid; place-items:center;
  border-radius: 999px; flex-shrink: 0;
  font-feature-settings:"tnum";
}
.tytka-checkout .mb-info{ min-width:0; }
.tytka-checkout .mb-info b{
  display:block; font-size:16px; font-weight:600;
  letter-spacing:-.01em; line-height:1;
  font-feature-settings:"tnum";
}
.tytka-checkout .mb-info span{
  display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color: rgba(255,255,255,.5); font-weight:500; margin-top:3px;
}
.tytka-checkout .mb-go{
  background: var(--carrot); color: #fff;
  padding:10px 16px; border-radius: 999px;
  font-weight:600; font-size:13px;
  display:inline-flex; align-items:center; gap:6px;
  flex-shrink:0; letter-spacing:.005em;
  white-space:nowrap; transition: all .15s;
}
.tytka-checkout .mb-go:hover{ background: var(--carrot-deep); }
.tytka-checkout .mb-go svg{ width:13px; height:13px; }

/* ====== MOBILE SHEET ====== */
.tytka-checkout .mb-sheet{
  display:none; position:fixed; inset:0; z-index:60;
  background: rgba(34,31,28,.5);
  backdrop-filter: blur(8px);
  align-items:flex-end; animation: fadeIn .25s ease;
}
.tytka-checkout .mb-sheet.show{ display:flex; }
.tytka-checkout .mb-sheet-card{
  width: 100%;
  background: var(--paper);
  border-radius: 24px 24px 0 0;
  padding: 18px 18px 24px;
  max-height: 92vh; overflow-y: auto;
  display:flex; flex-direction:column;
  animation: sheetUp .3s var(--ease-out);
}
@keyframes sheetUp{ from{ transform: translateY(100%); } to{ transform: translateY(0); } }
.tytka-checkout .mb-sheet-handle{
  width: 40px; height: 4px; border-radius:4px;
  background: var(--ink-4); margin: 0 auto 14px;
}
.tytka-checkout .mb-sheet-head{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom: 14px;
}
.tytka-checkout .mb-sheet-head h3{ margin:0; font-size: 18px; font-weight:600; letter-spacing:-.01em; }
.tytka-checkout .mb-sheet-close{
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--bg-2);
  display:grid; place-items:center; color: var(--ink-2);
  transition: all .15s;
}
.tytka-checkout .mb-sheet-close:hover{ background: var(--line); color: var(--ink); }
.tytka-checkout .mb-sheet-close svg{ width:14px; height:14px; }
.tytka-checkout .mb-sheet-body{
  flex: 1; min-height: 0;
  overflow-y: auto;
  display:flex; flex-direction:column; gap: 8px;
  margin-bottom: 14px;
}
.tytka-checkout .mb-sheet-body .mb-totals{
  margin-top: 14px; padding-top: 14px;
  border-top: 1px dashed var(--line);
  display:flex; flex-direction:column; gap: 7px;
  font-size: 13.5px;
}
.tytka-checkout .mb-sheet-body .mb-totals .row{ display:flex; justify-content:space-between; color: var(--ink-2); }
.tytka-checkout .mb-sheet-body .mb-totals .row.total{
  font-size: 22px; font-weight:700; color: var(--ink);
  margin-top: 6px; padding-top: 12px;
  border-top: 1px dashed var(--line);
  letter-spacing:-.01em;
}
.tytka-checkout .mb-sheet-cta{ margin-top: auto; }
.tytka-checkout .mb-sheet-empty{ text-align:center; padding: 28px 12px; color: var(--ink-3); font-size: 13.5px; }
.tytka-checkout .mb-sheet-empty .em{
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--bg-2); display:grid; place-items:center;
  font-size: 26px; margin: 0 auto 12px;
}
@media (max-width:1020px){
  .tytka-checkout .mb-bar{ display:block; }
}


/* ====== SUCCESS ====== */
.tytka-checkout .success{
  position:fixed; inset:0; z-index:100;
  background: rgba(34,31,28,.6);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display:none; align-items:flex-start; justify-content:center;
  padding: 40px 16px; overflow:auto;
  animation: fadeIn .3s ease;
}
.tytka-checkout .success.show{ display:flex; }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }
.tytka-checkout .success-card{
  max-width: 540px; width:100%;
  background:var(--paper); border-radius: var(--r-xl);
  padding: 36px 32px 32px;
  box-shadow: var(--sh-3);
  position:relative; animation: pop .4s var(--ease-out);
  overflow:hidden;
}
.tytka-checkout .success-card::before{
  content:""; position:absolute;
  inset: -50% -30% auto auto;
  width: 60%; aspect-ratio:1;
  background: radial-gradient(circle, rgba(215,127,33,.18), transparent 60%);
  pointer-events:none;
}
@keyframes pop{ from{ transform: translateY(20px) scale(.96); opacity:0; } to{ transform: translateY(0) scale(1); opacity:1; } }
.tytka-checkout .success-mark{
  width:64px; height:64px; border-radius:50%;
  background: var(--leaf);
  border: 2px solid var(--ink);
  display:grid; place-items:center;
  margin: 0 auto 18px;
  position:relative;
}
.tytka-checkout .success-mark svg{ width: 28px; height: 28px; stroke: var(--ink); }
.tytka-checkout .success-mark::before{
  content:""; position:absolute;
  inset: -8px; border-radius:50%;
  border: 1px dashed var(--ink-4);
  animation: tytkaSpin 18s linear infinite;
}
.tytka-checkout .success h3{
  font-size: 32px; font-weight:600; letter-spacing:-.022em;
  text-align:center; margin:0 0 8px;
  line-height:1.05;
}
.tytka-checkout .success h3 em{ font-style:italic; font-weight:300; color: var(--carrot); }
.tytka-checkout .success .sub{
  text-align:center; color:var(--ink-2); font-size:14px;
  margin: 0 0 22px; line-height:1.5;
  max-width: 38ch; margin-left:auto; margin-right:auto;
}
.tytka-checkout .success-order{
  background: var(--paper-2); border:1px solid var(--line);
  border-radius:var(--r-md); padding:16px 18px;
  font-size:13px;
}
.tytka-checkout .success-order .so-row{
  display:flex; justify-content:space-between; padding:5px 0; color:var(--ink-2);
}
.tytka-checkout .success-order .so-row b{ color:var(--ink); font-weight:600; font-feature-settings:"tnum"; }
.tytka-checkout .success-order hr{ border:0; border-top:1px dashed var(--line); margin:10px 0; }
.tytka-checkout .success-order .so-row.total{
  font-size:20px; font-weight:700;
  margin-top:4px; padding-top:8px; border-top:1px solid var(--ink);
  letter-spacing:-.015em;
}
.tytka-checkout .success-order .so-row.total b{ font-size:20px; font-weight:700; }
.tytka-checkout .success-foot{
  display:grid; grid-template-columns:1fr 1fr; gap:8px;
  margin-top:18px;
}
.tytka-checkout .btn-ghost, .tytka-checkout .btn-primary{
  padding:14px; border-radius: 14px;
  font-weight:600; font-size:13.5px; letter-spacing:.005em;
  transition: all .15s; border: 1.5px solid;
  text-align:center; display:block; text-decoration:none;
}
.tytka-checkout .btn-ghost{ background:var(--paper); border-color: var(--line); color: var(--ink); }
.tytka-checkout .btn-ghost:hover{ background:var(--bg-2); }
.tytka-checkout .btn-primary{
  background: var(--carrot);
  color:#fff; border-color: var(--carrot-deep);
  box-shadow: 0 8px 18px -8px rgba(184,104,21,.5);
}
.tytka-checkout .btn-primary:hover{ background: var(--carrot-deep); transform: translateY(-1px); }
.tytka-checkout .success-meta{
  display:flex; gap:14px; justify-content:center; align-items:center;
  margin-top:16px; font-size:11.5px; color:var(--ink-3);
  flex-wrap:wrap;
}
.tytka-checkout .success-meta span{ display:inline-flex; align-items:center; gap:6px; }
.tytka-checkout .success-meta svg{ width: 13px; height:13px; }

/* ====== TOAST ====== */
.tytka-checkout .toast{
  position:fixed; bottom:24px; left:50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--ink); color:#fff;
  padding: 12px 20px 12px 14px;
  border-radius: 999px;
  font-size: 13px; font-weight:500;
  box-shadow: var(--sh-3);
  opacity: 0; pointer-events:none; z-index:80;
  transition: all .3s var(--ease-out);
  display:flex; align-items:center; gap: 10px;
  max-width: calc(100vw - 24px);
}
.tytka-checkout .toast.show{ opacity:1; transform: translateX(-50%) translateY(0); }
.tytka-checkout .toast .toast-mark{
  width:20px; height:20px; border-radius:50%;
  background: var(--leaf);
  display:grid; place-items:center; flex-shrink: 0;
}

.woocommerce table.shop_table td small{
  display: inline-block;
    font-size: 12px;
}
.woocommerce table.shop_table td small span{
  font-size: 12px !important;
}

.tytka-checkout .toast .toast-mark svg{ width:12px; height:12px; stroke: var(--ink); }
.tytka-checkout .toast #toastText{ min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width:1020px){ .tytka-checkout .toast{ bottom:90px; } }

/* ====== LIGHTBOX ====== */
.tytka-checkout .lightbox{
  position: fixed; inset: 0;
  z-index: 100;
  display: grid; place-items: center;
  padding: 28px;
  background: rgba(34, 31, 28, .78);
  backdrop-filter: blur(10px) saturate(1.2);
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
  opacity: 0; pointer-events: none;
  transition: opacity .25s var(--ease);
}
.tytka-checkout .lightbox.show{ opacity: 1; pointer-events: auto; }
.tytka-checkout .lightbox-img{
  max-width: min(92vw, 1100px);
  max-height: 86vh;
  border-radius: var(--r-lg);

  cursor: zoom-out;
  transform: scale(.94);
  transition: transform .35s var(--ease-out);
  display: block;
}
.tytka-checkout .lightbox.show .lightbox-img{ transform: scale(1); }
.tytka-checkout .lightbox-caption{
  position: absolute;
  left: 50%; transform: translateX(-50%);
  bottom: 22px;
  color: #fff; font-size: 13px; font-weight: 500;
  letter-spacing: .02em;
  text-align: center;
  max-width: min(80vw, 900px);
  padding: 6px 14px;
  background: rgba(0,0,0,.32);
  backdrop-filter: blur(8px);
  border-radius: 999px;
  opacity: 0; transition: opacity .3s var(--ease) .1s;
}
.tytka-checkout .lightbox.show .lightbox-caption{ opacity: 1; }
.tytka-checkout .lightbox-close{
  position: absolute; top: 18px; right: 18px;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  color: #fff;
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .15s var(--ease), transform .15s var(--ease);
  backdrop-filter: blur(8px);
}
.tytka-checkout .lightbox-close:hover{ background: rgba(255,255,255,.22); transform: scale(1.06); }
.tytka-checkout .lightbox-close svg{ width: 16px; height: 16px; stroke: currentColor; stroke-width: 2; }
@media (max-width: 600px){
  .tytka-checkout .lightbox{ padding: 14px; }
  .tytka-checkout .lightbox-close{ top: 12px; right: 12px; width: 38px; height: 38px; }
  .tytka-checkout .lightbox-caption{ bottom: 14px; font-size: 12px; }
}

/* ====== FORM RESET (na wszelki wypadek) ====== */
.tytka-checkout .tytka-form{ margin:0; padding:0; }

/* Lock body scroll when modal shown */
.tytka-page.tytka-lock{ overflow: hidden; }

/* ====== THEME CHROME RESET (Hello Elementor / Elementor builder) ======
   Ukryj theme header/footer + reset content wrappers na stronie kreatora.
   Zostawiamy tylko wp-admin-bar i nasz .tytka-checkout. */
body.tytka-page header[role="banner"],
body.tytka-page footer[role="contentinfo"],
body.tytka-page .site-header,
body.tytka-page .site-footer,
body.tytka-page #site-header,
body.tytka-page #site-footer,
body.tytka-page .ehf-header,
body.tytka-page .ehf-footer,
body.tytka-page [data-elementor-type="header"],
body.tytka-page [data-elementor-type="footer"],
body.tytka-page .header-footer-elementor-header,
body.tytka-page .header-footer-elementor-footer,
body.tytka-page .hfe-header,
body.tytka-page .hfe-footer{
  display: none !important;
}

/* Wyzeruj theme content wrapper, żeby Tytka UI dostała full-bleed. */
body.tytka-page #page,
body.tytka-page #wrapper,
body.tytka-page .site,
body.tytka-page .site-main,
body.tytka-page .content-area,
body.tytka-page main,
body.tytka-page main#content,
body.tytka-page #content,
body.tytka-page #primary,
body.tytka-page .page-content,
body.tytka-page article.page,
body.tytka-page article.post,
body.tytka-page .entry-content,
body.tytka-page .entry-header,
body.tytka-page .post-thumbnail,
body.tytka-page .container,
body.tytka-page .container-fluid{
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Ukryj page title (header.entry-header h1) — Tytka ma własny hero. */
body.tytka-page .entry-header,
body.tytka-page .entry-title,
body.tytka-page .page-title,
body.tytka-page h1.entry-title{
  display: none !important;
}

/* Tło strony — żeby pasowało do Tytki. */
body.tytka-page{
  background: #faf6ee !important;
  margin: 0 !important;
}

/* Success modal — close button. */
.tytka-checkout .success-close{
  position:absolute; top:14px; right:14px; z-index:2;
  width:34px; height:34px; border-radius:50%;
  background:var(--bg-2);
  display:grid; place-items:center;
  color: var(--ink-2);
  transition: all .15s var(--ease);
}
.tytka-checkout .success-close:hover{ background: var(--line); color: var(--ink); transform: scale(1.05); }
.tytka-checkout .success-close svg{ width: 14px; height: 14px; }

/* CTA loading state — subtelny spinner gdy is-loading. */
.tytka-checkout .cta.is-loading{ pointer-events: none; }
.tytka-checkout .cta.is-loading .arrow{
  background: transparent;
  position: relative;
}
.tytka-checkout .cta.is-loading .arrow svg{ display:none; }
.tytka-checkout .cta.is-loading .arrow::before{
  content:""; position:absolute; inset:6px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  animation: tytkaSpin .7s linear infinite;
}

/* =========================================================
   NATIVE WC ELEMENTS STYLING (po pivocie do native checkout)
   ========================================================= */

/* Order review table — wypiera native styling, używamy Tytka layoutu. */
.tytka-checkout #order_review{ flex:1; min-height:0; overflow-x:hidden; overflow-y:auto; margin:0 -8px; padding:4px 8px; }
.tytka-checkout #order_review table.shop_table{
  width:100%; border:0; background:transparent; margin:0; box-shadow:none;
  border-collapse:collapse;
}
/* Reset natywnych WC border-bottom na każdym tr/td/th — Tytka kontroluje swoje kreski świadomie. */
.tytka-checkout #order_review table.shop_table tr,
.tytka-checkout #order_review table.shop_table td,
.tytka-checkout #order_review table.shop_table th{
  border:0; background:transparent;
}
.tytka-checkout #order_review table.shop_table thead{ display:none; }
.tytka-checkout #order_review table.shop_table tbody tr.cart_item{ display:block; }
.tytka-checkout #order_review table.shop_table tbody tr.cart_item .product-name{
  display:flex; gap:12px; padding:12px 0;
  border-bottom:1px dashed var(--line-2);
  background:transparent; width:100%;
}
.tytka-checkout #order_review table.shop_table tbody tr.cart_item .product-total{ display:none; }
.tytka-checkout #order_review table.shop_table tbody tr.cart_item:last-child .product-name{ border-bottom:0; }
.tytka-checkout #order_review .ci-thumb{
  width:44px; height:44px; border-radius:10px; background:transparent; flex-shrink:0; overflow:hidden;
}
.tytka-checkout #order_review .ci-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.tytka-checkout #order_review .ci-body{ flex:1; min-width:0; }
.tytka-checkout #order_review .ci-name{
  font-weight:600; font-size:13.5px;
  display:flex; justify-content:space-between; gap:8px;
  letter-spacing:-.005em;
}
.tytka-checkout #order_review .ci-name b{ font-weight:700; font-feature-settings:"tnum"; }
.tytka-checkout #order_review .ci-meta{ font-size:11.5px; color:var(--ink-3); margin-top:3px; }
.tytka-checkout #order_review .ci-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:6px; }
.tytka-checkout #order_review .ci-qty{
  display:inline-flex; align-items:center;
  background:var(--bg-2); border:1px solid var(--line);
  border-radius:999px; padding:2px;
}
.tytka-checkout #order_review .ci-qty button{
  width:24px; height:24px; border-radius:50%;
  font-size:13px; font-weight:600; color:var(--ink-2);
  display:grid; place-items:center; border:0; background:transparent; cursor:pointer;
}
.tytka-checkout #order_review .ci-qty button:hover{ background:rgba(34,31,28,.06); }
.tytka-checkout #order_review .ci-qty .v{ min-width:18px; text-align:center; font-size:12px; font-weight:600; padding:0 3px; }
.tytka-checkout #order_review .ci-remove{
  font-size:11px; color:var(--ink-4); text-decoration:underline;
  font-weight:500; border:0; background:transparent; cursor:pointer; padding:0;
}
.tytka-checkout #order_review .ci-remove:hover{ color:var(--warn); }

/* Cart-empty row. */
.tytka-checkout #order_review tr.tytka-cart-empty-row td{
  padding:0; border:0; background:transparent;
}

/* Tfoot — totals. */
.tytka-checkout #order_review table.shop_table tfoot{
  display:block;
  margin-top:14px; padding-top:14px;
  border-top:1px dashed var(--line);
}
.tytka-checkout #order_review table.shop_table tfoot tr{
  display:flex; justify-content:space-between; gap:5px;
  color:var(--ink-2); font-feature-settings:"tnum";
  padding:4px 0; font-size:13px;
}
.tytka-checkout #order_review table.shop_table tfoot tr th{
  background:transparent; border:0; padding:0; font-weight:500; text-align:left;
}
.tytka-checkout #order_review table.shop_table tfoot tr td{
  background:transparent; border:0; padding:0; text-align:right;
}
.tytka-checkout #order_review table.shop_table tfoot tr.fee{
  font-size:11.5px; color:var(--carrot-deep);
  background:var(--carrot-tint);
  padding:8px 10px; border-radius:8px;
  margin:4px 0; border:1px solid var(--carrot-soft);
}
.tytka-checkout #order_review table.shop_table tfoot tr.order-total{
  font-size:24px; font-weight:700; color:var(--ink);
  margin-top:8px; padding-top:14px;
  border-top:1px solid var(--ink);
  letter-spacing:-.02em;
}
.tytka-checkout #order_review table.shop_table tfoot tr.order-total th,
.tytka-checkout #order_review table.shop_table tfoot tr.order-total td,
.tytka-checkout #order_review table.shop_table tfoot tr.order-total .amount{
  font-size:24px; font-weight:700;
}

/* Payment methods — wystylizuj radio list jako 3 karty Tytka. */
.tytka-checkout #payment ul.payment_methods{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px;
  border: none !important;
}
@media (max-width:680px){ .tytka-checkout #payment ul.payment_methods{ grid-template-columns:1fr; } }
.tytka-checkout #payment ul.payment_methods li{
  background:var(--paper); border:1.5px solid var(--line);
  border-radius:var(--r-md); padding:16px;
  display:flex; flex-direction:column; align-items:flex-start; gap:13px;
  cursor:pointer; transition:all .22s var(--ease);
  position:relative;
}
.tytka-checkout #payment ul.payment_methods li:hover{ border-color:#d6cdb6; }
.tytka-checkout #payment ul.payment_methods li.tytka-pay-active{
  border-color:var(--brand-accent-deep);
  background:var(--brand-accent);
  color:#fff;
  box-shadow:0 10px 24px -12px rgba(138,144,56,.4);
}
.tytka-checkout #payment ul.payment_methods li input[type="radio"]{
  position:absolute; opacity:0; pointer-events:none;
}
.tytka-checkout #payment ul.payment_methods li label{
  font-weight:600; font-size:14px; cursor:pointer;
  display:flex !important; flex-direction:column;
  align-items:flex-start; align-content:flex-start; justify-content:flex-start;
  gap:10px; width:100%; line-height:1.25em;
}
.tytka-checkout #payment ul.payment_methods li label img{
  margin:0 !important; max-width:40px; height:auto;
}
.tytka-checkout #payment ul.payment_methods li .payment_box{
  width:100%; font-size:12.5px; color:var(--ink-3);
  padding-top:10px; margin-top:8px;
  border-top:1px dashed var(--line);
  display: none !important;
}
.tytka-checkout #payment ul.payment_methods li.tytka-pay-active .payment_box{
  color:rgba(255,255,255,.85); border-top-color:rgba(255,255,255,.25);
}

/* tpay PBL — wybór banku w MODALU. Realny box tpay (z radiami) JS przenosi do #tpayBankModal,
   który jest dzieckiem form.checkout → radio dalej się wysyła, listenery wtyczki zostają.
   Kafel tpay pozostaje kompaktowy, a wybór banku robi się w nakładce. */
.tytka-checkout .tpay-modal[hidden]{ display: none !important; }
.tytka-checkout .tpay-modal{
  position: fixed; inset: 0; z-index: 100000;
  display: flex; align-items: center; justify-content: center; padding: 16px;
}
.tytka-checkout .tpay-modal-backdrop{ position: absolute; inset: 0; background: rgba(20,16,12,.5); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.tytka-checkout .tpay-modal-card{
  position: relative; z-index: 1; width: 100%; max-width: 480px; max-height: 82vh; overflow: auto;
  background: #fff; color: var(--ink); border-radius: 16px; padding: 18px;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.5);
}
.tytka-checkout .tpay-modal-head{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.tytka-checkout .tpay-modal-head h3{ margin: 0; font-size: 16px; font-weight: 700; }
.tytka-checkout .tpay-modal-x{ border: 0; background: transparent; font-size: 19px; line-height: 1; cursor: pointer; color: var(--ink-3); padding: 4px; }
.tytka-checkout .tpay-modal-x:hover{ color: var(--ink); }

/* Trigger w kaflu tpay */
.tytka-checkout .tpay-pick-btn{
  display: inline-flex; align-items: center; gap: 8px; margin-top: 10px;
  border: 1.5px solid var(--line); background: #fff; color: var(--ink);
  border-radius: 999px; padding: 8px 14px; font-size: 13px; font-weight: 600; cursor: pointer; text-align: left;
}
.tytka-checkout li.tytka-pay-active .tpay-pick-btn{ background: #fff; }
.tytka-checkout .tpay-pick-btn:hover{ border-color: var(--carrot); }

/* Siatka banków wewnątrz modala (typowa struktura tpay: ul/li/label/img). */
.tytka-checkout #tpayBankModal .payment_method_tpaypbl{ display: block !important; color: var(--ink); }
.tytka-checkout #tpayBankModal .payment_method_tpaypbl ul:not(.pbl-error){
  list-style: none; margin: 6px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px;
}
.tytka-checkout #tpayBankModal .payment_method_tpaypbl li{ margin: 0; padding: 0; }
.tytka-checkout #tpayBankModal .payment_method_tpaypbl label{
  display: flex !important; align-items: center; justify-content: center;
  width: 100%; min-height: 52px; margin: 0; padding: 8px; cursor: pointer;
  border: 1.5px solid var(--line); border-radius: 10px; background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.tytka-checkout #tpayBankModal .payment_method_tpaypbl label:hover{ border-color: var(--carrot); }
.tytka-checkout #tpayBankModal .payment_method_tpaypbl img{
  max-width: 100% !important; max-height: 30px !important; width: auto !important; height: auto !important; margin: 0 !important;
}
.tytka-checkout #tpayBankModal .payment_method_tpaypbl input[type="radio"]{ position: absolute; opacity: 0; width: 0; height: 0; }
.tytka-checkout #tpayBankModal .payment_method_tpaypbl label:has(input:checked){ border-color: var(--carrot); box-shadow: 0 0 0 2px rgba(215,127,33,.2); }
.tytka-checkout #tpayBankModal .tpay-pbl-container .tpay-pbl{
  display: grid !important; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 8px;
}
.tytka-checkout #tpayBankModal .tpay-pbl-container .tpay-pbl .tpay-item{ width: 100% !important; margin: 0 !important; }
.tytka-checkout #tpayBankModal .tpay-pbl-container .tpay-pbl .tpay-item>div{ padding: 0 !important; }
.tytka-checkout #tpayBankModal .tpay-pbl-container .tpay-pbl .tpay-item>div>div{ padding: 0 !important; border: none !important; }

/* Native place-order: POKAZUJEMY wiersz (zawiera wymaganą akceptację regulaminu),
   ale chowamy SAM przycisk — steruje nim nasze CTA. Wcześniej cały .place-order był poza
   ekranem, więc checkbox regulaminu też → WC wymagał go i blokował płatność (niewidoczny błąd). */
.tytka-checkout .place-order{ margin: 0; } /* pusty po przeniesieniu regulaminu JS-em do #cart */
.tytka-checkout #place_order{
  position:absolute !important; left:-9999px !important; opacity:0 !important;
  width:1px !important; height:1px !important; overflow:hidden !important;
}
/* Akceptacja regulaminu — karta nad przyciskiem CTA (przeniesiona JS-em do #cart, nad #cta). */
.tytka-checkout .woocommerce-terms-and-conditions-wrapper{
  background: var(--paper); border: 1px solid var(--line); border-radius: 12px;
  padding: 12px 14px; margin: 0 0 12px;
}
.tytka-checkout .woocommerce-terms-and-conditions-wrapper.tc-terms-flash{
  border-color: var(--carrot); box-shadow: 0 0 0 3px rgba(215,127,33,.18);
  animation: tcTermsPulse .5s ease;
}
@keyframes tcTermsPulse{ 0%,100%{ transform: none; } 35%{ transform: translateY(-2px); } }
.tytka-checkout .woocommerce-terms-and-conditions-wrapper p.form-row{ margin: 0; }
/* Checkbox inline z tekstem — wzorzec „hanging indent": kwadrat absolutnie po lewej,
   tekst i gwiazdka płyną normalnie i zawijają z wcięciem (bez „odstawania"). */
.tytka-checkout .woocommerce-terms-and-conditions-wrapper label{
  display: block; position: relative; padding-left: 30px; margin: 0; cursor: pointer;
  font-size: 13px; line-height: 1.45; color: var(--ink);
  text-transform: none; letter-spacing: 0; font-weight: 500;
}
.tytka-checkout .woocommerce-terms-and-conditions-wrapper label input[type="checkbox"]{
  position: absolute; left: 0; top: 1px; margin: 0;
}
.tytka-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text{ display: inline; }
.tytka-checkout .woocommerce-terms-and-conditions-wrapper a{ color: var(--carrot-deep); text-decoration: underline; }
.tytka-checkout .woocommerce-terms-and-conditions-wrapper .required{ color: var(--carrot); text-decoration: none; border: 0; }
.tytka-checkout .woocommerce-privacy-policy-text{ display: none; }

/* ===== Mobile: proxy akceptacji regulaminu w wysuwanym koszyku (#mbSheet), nad #mbSheetCta =====
   Używa customowego checkboxa .tytka-check (jak reszta Kreatora). Prawdziwy #terms zostaje w <form>
   (na mobile ukryty), a ten proxy synchronizuje się z nim w JS.
   Overrides scope'owane jako .mb-terms.tytka-check, bo .tytka-check jest niżej w pliku przy równej specyficzności. */
.tytka-checkout .mb-terms.tytka-check{
  display: flex; align-items: flex-start; gap: 11px; width: 100%;
  background: var(--paper); border: 1px solid var(--line); border-radius: 12px;
  padding: 13px 14px; margin: 0 0 12px;
  font-size: 13px; line-height: 1.45; color: var(--ink); font-weight: 500;
}
.tytka-checkout .mb-terms .tytka-check-mark{ margin-top: 1px; }
.tytka-checkout .mb-terms .mb-terms-text{ display: inline; }
.tytka-checkout .mb-terms a{ color: var(--carrot-deep); text-decoration: underline; font-weight: 600; }
.tytka-checkout .mb-terms.tc-terms-flash{
  border-color: var(--carrot); box-shadow: 0 0 0 3px rgba(215,127,33,.18); animation: tcTermsPulse .5s ease;
}
/* Na mobile akceptacja jest WYŁĄCZNIE w sheecie → prawdziwy regulamin w #payment ukryty (zostaje w <form> do wysyłki). */
@media (max-width: 1020px){
  .tytka-checkout .woocommerce-terms-and-conditions-wrapper{ display: none !important; }
}

/* WC native customer details — opakuj w Tytka form-grid styling. */
.tytka-checkout #customer_details .form-row{
  margin:0 0 14px; padding:0;
}
.tytka-checkout #customer_details .form-row label{
  display:block; font-size:10.5px; color:var(--ink-3); font-weight:600;
  margin-bottom:8px; letter-spacing:.18em; text-transform:uppercase;
}
.tytka-checkout #customer_details .form-row .required{ color:var(--carrot); }
.tytka-checkout #customer_details .form-row input.input-text,
.tytka-checkout #customer_details .form-row textarea,
.tytka-checkout #customer_details .form-row select,
.tytka-checkout #customer_details .form-row .select2-selection{
  width:100%;
  background:var(--paper); border:1.5px solid var(--line);
  border-radius:var(--r-sm); padding:13px 14px;
  font-family:inherit; transition:all .15s var(--ease); color:var(--ink);
}
.tytka-checkout #customer_details .form-row input.input-text:focus,
.tytka-checkout #customer_details .form-row textarea:focus,
.tytka-checkout #customer_details .form-row select:focus{
  outline:none; border-color:var(--carrot); box-shadow:var(--sh-glow);
}
.tytka-checkout #customer_details{
  display:grid; grid-template-columns: 1fr; gap:14px;
}

#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment{
  background: transparent !important;
}
#add_payment_method #payment ul.payment_methods::after, #add_payment_method #payment ul.payment_methods::before, .woocommerce-cart #payment ul.payment_methods::after, .woocommerce-cart #payment ul.payment_methods::before, .woocommerce-checkout #payment ul.payment_methods::after, .woocommerce-checkout #payment ul.payment_methods::before{
  display: none !important;
}

.woocommerce-shipping-fields, wc-order-attribution-inputs{
  display: none !important;
}
@media (max-width:600px){
  .tytka-checkout #customer_details{ grid-template-columns:1fr; }
}
.tytka-checkout #customer_details .form-row-wide,
.tytka-checkout #customer_details .form-row-first,
.tytka-checkout #customer_details .form-row-last{ grid-column:auto; }
.tytka-checkout #customer_details .woocommerce-billing-fields > h3,
.tytka-checkout #customer_details .woocommerce-shipping-fields > h3,
.tytka-checkout #customer_details .woocommerce-additional-fields > h3{
  grid-column:1/-1; margin:0 0 4px;
  font-size:14px; font-weight:600; color:var(--ink-2);
}
.tytka-checkout #customer_details textarea{ min-height:80px; resize:vertical; }

/* =========================================================
   THANK-YOU PAGE (order-received) — pełnoekranowa success-card
   1:1 z prototype'm Tytka. Bez form, tylko prezentacja.
   ========================================================= */

.tytka-thankyou{
  --ink:           #221f1c;
  --ink-2:         #4a4541;
  --ink-3:         #8b847d;
  --ink-4:         #b8b1a6;
  --line:          #ebe5d8;
  --line-2:        #f1ebde;
  --bg:            #faf6ee;
  --bg-2:          #f5efe1;
  --paper:         #ffffff;
  --paper-2:       #fbf7ee;
  --carrot:        #d27f21;
  --carrot-deep:   #ad6315;
  --carrot-soft:   #fbe8cd;
  --carrot-tint:   #fff4e1;
  --leaf:          #afb321;
  --leaf-deep:     #7e831a;
  --leaf-soft:     #eceec0;
  --warn:          #b8412a;
  --warn-bg:       #fbe5dc;
  --r-md: 18px; --r-lg: 26px; --r-xl: 36px;
  --sh-3: 0 22px 50px -16px rgba(34,31,28,.22), 0 8px 18px -6px rgba(34,31,28,.08);
  --f-sans: "Josefin Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --ease-out: cubic-bezier(.2,.85,.32,1.05);

  font-family: var(--f-sans);
  color: var(--ink);
  background: var(--bg);
  min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
  width: 100%;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 60px 16px 80px;
  position: relative; isolation: isolate;
  box-sizing: border-box;
}
.tytka-thankyou::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(900px 500px at 92% -8%, rgba(215,127,33,.10), transparent 55%),
    radial-gradient(800px 480px at -8% 8%, rgba(182,186,28,.10), transparent 55%),
    radial-gradient(1100px 700px at 50% 110%, rgba(215,127,33,.05), transparent 60%);
}
.tytka-thankyou *, .tytka-thankyou *::before, .tytka-thankyou *::after{ box-sizing: border-box; }

.tytka-thankyou .thankyou-card{
  max-width: 540px; width: 100%;
  background: var(--paper);
  border-radius: var(--r-xl);
  padding: 44px 32px 32px;
  box-shadow: var(--sh-3);
  position: relative; z-index: 1;
  overflow: hidden;
  animation: tytkaThxPop .4s var(--ease-out);
}
.tytka-thankyou .thankyou-card::before{
  content:""; position:absolute;
  inset: -50% -30% auto auto;
  width: 60%; aspect-ratio:1;
  background: radial-gradient(circle, rgba(215,127,33,.18), transparent 60%);
  pointer-events: none;
}
@keyframes tytkaThxPop{
  from{ transform: translateY(20px) scale(.96); opacity:0; }
  to{ transform: translateY(0) scale(1); opacity:1; }
}

.tytka-thankyou .thankyou-back{
  position: absolute; top: 18px; left: 18px; z-index: 2;
  font-size: 12px; font-weight: 600; color: var(--ink-3);
  letter-spacing: .06em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 6px;
  text-decoration: none;
  transition: color .15s ease;
}
.tytka-thankyou .thankyou-back:hover{ color: var(--ink); }
.tytka-thankyou .thankyou-back svg{ width: 14px; height: 14px; }

.tytka-thankyou .thankyou-mark{
  width: 72px; height: 72px; border-radius: 50%;
  background: var(--leaf);
  border: 2px solid var(--ink);
  display: grid; place-items: center;
  margin: 0 auto 22px;
  position: relative;
}
.tytka-thankyou .thankyou-mark svg{ width: 32px; height: 32px; stroke: var(--ink); }
.tytka-thankyou .thankyou-mark::before{
  content:""; position: absolute;
  inset: -8px; border-radius: 50%;
  border: 1px dashed var(--ink-4);
  animation: tytkaThxSpin 18s linear infinite;
}
.tytka-thankyou .thankyou-mark--warn{
  background: var(--warn-bg);
  border-color: var(--warn);
}
.tytka-thankyou .thankyou-mark--warn svg{ stroke: var(--warn); }
.tytka-thankyou .thankyou-mark--neutral{
  background: var(--bg-2);
  border-color: var(--ink-3);
}
.tytka-thankyou .thankyou-mark--neutral svg{ stroke: var(--ink-3); }
@keyframes tytkaThxSpin{ to{ transform: rotate(360deg); } }

.tytka-thankyou h3{
  font-size: clamp(28px, 4vw, 34px);
  font-weight: 600; letter-spacing: -.022em;
  text-align: center; margin: 0 0 10px;
  line-height: 1.05;
}
.tytka-thankyou h3 em{
  font-style: italic; font-weight: 300; color: var(--carrot);
}

.tytka-thankyou .sub{
  text-align: center; color: var(--ink-2);
  font-size: 14.5px; line-height: 1.55;
  margin: 0 0 26px;
  max-width: 42ch; margin-left: auto; margin-right: auto;
}
.tytka-thankyou .sub b{ color: var(--ink); font-weight: 600; }

.tytka-thankyou .thankyou-summary{
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px 20px;
  font-size: 13.5px;
}
.tytka-thankyou .so-row{
  display: flex; justify-content: space-between;
  padding: 6px 0; gap: 10px;
  color: var(--ink-2); font-feature-settings: "tnum";
}
.tytka-thankyou .so-row span{ color: var(--ink-3); }
.tytka-thankyou .so-row b{
  color: var(--ink); font-weight: 600;
  text-align: right;
  font-feature-settings: "tnum";
}
.tytka-thankyou .so-row--days b{
  font-size: 12px; font-weight: 500;
  letter-spacing: .01em;
  max-width: 65%;
  word-wrap: break-word;
}
.tytka-thankyou .so-row--fee{
  color: var(--carrot-deep);
}
.tytka-thankyou .so-row--fee span{ color: var(--carrot-deep); }
.tytka-thankyou .so-row--fee b{ color: var(--carrot-deep); }

.tytka-thankyou hr{
  border: 0; border-top: 1px dashed var(--line);
  margin: 12px 0;
}

.tytka-thankyou .so-row.total{
  font-size: 22px; font-weight: 700;
  margin-top: 6px; padding-top: 12px;
  border-top: 1px solid var(--ink);
  letter-spacing: -.015em;
}
.tytka-thankyou .so-row.total span{ color: var(--ink); }
.tytka-thankyou .so-row.total b{ font-size: 22px; font-weight: 700; }
.tytka-thankyou .so-row.total .amount{ font-size: 22px; font-weight: 700; }

.tytka-thankyou .thankyou-gateway{
  margin-top: 16px; padding: 14px 16px;
  background: var(--carrot-tint);
  border: 1px solid var(--carrot-soft);
  border-radius: 12px;
  font-size: 13px; line-height: 1.55;
  color: var(--ink-2);
}
.tytka-thankyou .thankyou-gateway h2,
.tytka-thankyou .thankyou-gateway h3,
.tytka-thankyou .thankyou-gateway h4{
  margin: 0 0 8px; font-size: 14px; font-weight: 600;
  color: var(--ink); letter-spacing: -.005em;
}
.tytka-thankyou .thankyou-gateway ul,
.tytka-thankyou .thankyou-gateway ol{
  margin: 8px 0; padding-left: 18px;
}
.tytka-thankyou .thankyou-gateway p{ margin: 0 0 6px; }

.tytka-thankyou .thankyou-meta{
  display: flex; gap: 16px; justify-content: center; align-items: center;
  margin-top: 18px; font-size: 12px; color: var(--ink-3);
  flex-wrap: wrap;
}
.tytka-thankyou .thankyou-meta span{ display: inline-flex; align-items: center; gap: 6px; }
.tytka-thankyou .thankyou-meta svg{ width: 14px; height: 14px; }

.tytka-thankyou .thankyou-foot{
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  margin-top: 22px;
}
.tytka-thankyou .btn-ghost,
.tytka-thankyou .btn-primary{
  padding: 14px 16px; border-radius: 14px;
  font-weight: 600; font-size: 13.5px;
  letter-spacing: .005em;
  transition: all .15s ease;
  border: 1.5px solid;
  text-align: center; display: block;
  text-decoration: none;
  font-family: inherit;
}
.tytka-thankyou .btn-ghost{
  background: var(--paper); border-color: var(--line);
  color: var(--ink);
}
.tytka-thankyou .btn-ghost:hover{ background: var(--bg-2); }
.tytka-thankyou .btn-primary{
  background: var(--carrot);
  color: #fff; border-color: var(--carrot-deep);
  box-shadow: 0 8px 18px -8px rgba(184,104,21,.5);
}
.tytka-thankyou .btn-primary:hover{
  background: var(--carrot-deep);
  transform: translateY(-1px);
}

@media (max-width: 540px){
  .tytka-thankyou{ padding: 30px 12px 60px; }
  .tytka-thankyou .thankyou-card{ padding: 36px 20px 24px; }
  .tytka-thankyou .thankyou-back{ top: 12px; left: 12px; font-size: 11px; }
  .tytka-thankyou h3{ font-size: 26px; }
  .tytka-thankyou .thankyou-foot{ grid-template-columns: 1fr; }
}

/* ============================================================
   Login link + modal logowania + email-exists suggestion.
   ============================================================ */
.tytka-checkout .tytka-login-link{
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; border: 0; padding: 6px 10px;
  font-size: 12.5px; color: var(--ink-3); cursor: pointer;
  border-radius: 999px; transition: all .15s;
}
.tytka-checkout .tytka-login-link:hover{ background: var(--carrot-tint); color: var(--carrot-deep); }
.tytka-checkout .tytka-login-link svg{ width: 14px; height: 14px; }
.tytka-checkout .tytka-login-link b{ font-weight: 700; color: var(--carrot-deep); }

.tytka-checkout .tytka-loggedin{
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; color: var(--leaf);
  background: var(--leaf-soft, #f4f6e0); padding: 6px 12px; border-radius: 999px;
}
.tytka-checkout .tytka-loggedin svg{ width: 14px; height: 14px; }
.tytka-checkout .tytka-loggedin b{ font-weight: 700; }

/* Email-suggest banner pod polem e-mail */
.tytka-checkout .tytka-email-suggest{
  display: flex; align-items: center; gap: 8px;
  margin-top: 8px; padding: 8px 12px;
  background: var(--carrot-tint); color: var(--carrot-deep);
  border: 1px solid var(--carrot-soft); border-radius: 10px;
  font-size: 12.5px; line-height: 1.4;
  animation: tytkaCouponSlide .25s ease;
}
.tytka-checkout .tytka-email-suggest svg{ width: 16px; height: 16px; flex-shrink: 0; }
.tytka-checkout .tytka-email-suggest-link{
  margin-left: auto; background: var(--carrot); color: #fff;
  border: 0; padding: 5px 12px; border-radius: 999px;
  font: 600 12px inherit; cursor: pointer; letter-spacing: .02em;
  transition: background .15s;
}
.tytka-checkout .tytka-email-suggest-link:hover{ background: var(--carrot-deep); }

/* Login modal — reuse .tytka-notice-modal + własne pola */
.tytka-login-modal .tytka-login-form{ display: flex; flex-direction: column; gap: 12px; }
.tytka-login-modal .tytka-login-field{ display: flex; flex-direction: column; gap: 6px; text-align: left; }
.tytka-login-modal .tytka-login-field > span{
  font-size: 11px; text-transform: uppercase; letter-spacing: .18em;
  color: var(--ink-3); font-weight: 600;
}
.tytka-login-modal .tytka-login-field input{
  padding: 12px 14px; border: 1.5px solid var(--line); border-radius: var(--r-sm);
  background: var(--paper); font: inherit; color: var(--ink);
  transition: all .15s var(--ease);
}
.tytka-login-modal .tytka-login-field input:focus{ outline: none; border-color: var(--carrot); box-shadow: var(--sh-glow); }
.tytka-login-modal .tytka-login-remember{
  display: flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--ink-3);
}
.tytka-login-modal .tytka-login-remember input{ width: 16px; height: 16px; }

/* View toggle: login ↔ lost-password */
.tytka-login-modal[data-view="login"] [data-form="lost"],
.tytka-login-modal[data-view="login"] [data-head="lost"]{ display: none; }
.tytka-login-modal[data-view="lost"]  [data-form="login"],
.tytka-login-modal[data-view="lost"]  [data-head="login"]{ display: none; }

/* Link-button (zastępuje <a> dla switch'a — semantycznie button) */
.tytka-login-modal .tytka-link-btn{
  background: transparent; border: 0; padding: 6px 8px;
  font: inherit; color: var(--ink-3); font-size: 12.5px;
  cursor: pointer; border-radius: 6px;
  text-decoration: underline; text-underline-offset: 3px;
  transition: color .15s var(--ease), background .15s var(--ease);
}
.tytka-login-modal .tytka-link-btn:hover{ color: var(--carrot-deep); }

/* ============================================================
   Custom checkbox UI — używane w Kreatorze i w modalu logowania.
   Hide native input, render własny "kwadracik" z animacją checka.
   ============================================================ */
.tytka-checkout .tytka-check,
.tytka-login-modal .tytka-check{
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--ink-2); cursor: pointer; user-select: none;
  position: relative;
}
.tytka-checkout .tytka-check input[type="checkbox"],
.tytka-login-modal .tytka-check input[type="checkbox"]{
  position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0;
}
.tytka-checkout .tytka-check-mark,
.tytka-login-modal .tytka-check-mark{
  width: 20px; height: 20px; flex-shrink: 0;
  border: 1.5px solid var(--line); border-radius: 6px;
  background: var(--paper);
  display: grid; place-items: center;
  position: relative;
  transition: background .15s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease);
}
.tytka-checkout .tytka-check:hover .tytka-check-mark,
.tytka-login-modal .tytka-check:hover .tytka-check-mark{
  border-color: var(--ink-4);
}
.tytka-checkout .tytka-check input:checked + .tytka-check-mark,
.tytka-login-modal .tytka-check input:checked + .tytka-check-mark{
  background: var(--carrot); border-color: var(--carrot);
}
.tytka-checkout .tytka-check input:checked + .tytka-check-mark::after,
.tytka-login-modal .tytka-check input:checked + .tytka-check-mark::after{
  content: ""; width: 10px; height: 5px;
  border-left: 2px solid #fff; border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(1px, -1px);
}
.tytka-checkout .tytka-check input:focus-visible + .tytka-check-mark,
.tytka-login-modal .tytka-check input:focus-visible + .tytka-check-mark{
  box-shadow: var(--sh-glow);
}

/* Native WC checkboxy w checkoutie (terms, create_account, ship_to_different_address)
   — stylizujemy do tytka-check bez touchowania DOM-u. */
.tytka-checkout .form-row.woocommerce-form__input-checkbox,
.tytka-checkout .form-row-wide.create-account,
.tytka-checkout .woocommerce-terms-and-conditions-wrapper + p,
.tytka-checkout .woocommerce-form-login__rememberme{
  display: flex; align-items: center; gap: 10px;
}
/* „Stworzyć konto?" — checkbox INLINE z tekstem (label to blok z grid-checkboxem → tekst spadał niżej). */
.tytka-checkout .create-account label{
  display: flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; font-weight: 500;
}
.tytka-checkout input[type="checkbox"].woocommerce-form__input,
.tytka-checkout input[type="checkbox"].input-checkbox,
.tytka-checkout .tytka-invoice-check input[type="checkbox"]{
  -webkit-appearance: none; appearance: none;
  width: 20px; height: 20px; flex-shrink: 0;
  border: 1.5px solid var(--line); border-radius: 6px;
  background: var(--paper); margin: 0; padding: 0;
  display: grid; place-items: center;
  transition: background .15s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease);
  cursor: pointer; position: relative;
}
.tytka-checkout input[type="checkbox"].woocommerce-form__input:checked,
.tytka-checkout input[type="checkbox"].input-checkbox:checked,
.tytka-checkout .tytka-invoice-check input[type="checkbox"]:checked{
  background: var(--carrot); border-color: var(--carrot);
}
.tytka-checkout input[type="checkbox"].woocommerce-form__input:checked::after,
.tytka-checkout input[type="checkbox"].input-checkbox:checked::after,
.tytka-checkout .tytka-invoice-check input[type="checkbox"]:checked::after{
  content: ""; width: 10px; height: 5px;
  border-left: 2px solid #fff; border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(1px, -1px);
}
.tytka-checkout input[type="checkbox"].woocommerce-form__input:focus-visible,
.tytka-checkout input[type="checkbox"].input-checkbox:focus-visible,
.tytka-checkout .tytka-invoice-check input[type="checkbox"]:focus-visible{
  box-shadow: var(--sh-glow); outline: 0;
}
.tytka-login-modal .tytka-login-msg{ font-size: 12.5px; min-height: 16px; }
.tytka-login-modal .tytka-login-msg.is-err{ color: var(--warn); }
.tytka-login-modal .tytka-login-msg.is-ok{  color: var(--leaf); }
.tytka-login-modal .tytka-login-submit{
  padding: 12px 18px; border-radius: var(--r-sm); border: 0;
  background: var(--carrot); color: #fff;
  font: 600 13.5px inherit; letter-spacing: .03em; text-transform: uppercase;
  cursor: pointer; position: relative;
  transition: background .15s, transform .12s;
}
.tytka-login-modal .tytka-login-submit:hover{ background: var(--carrot-deep); }
.tytka-login-modal .tytka-login-submit:active{ transform: scale(.98); }
.tytka-login-modal .tytka-login-submit.is-loading{ color: transparent; pointer-events: none; }
.tytka-login-modal .tytka-login-submit.is-loading::after{
  content:""; position: absolute; top: 50%; left: 50%;
  width: 16px; height: 16px; margin: -8px 0 0 -8px;
  border: 2px solid #fff; border-top-color: transparent;
  border-radius: 50%; animation: tytkaSpin .7s linear infinite;
}
.tytka-login-modal .tytka-login-foot{ text-align: center; font-size: 12px; padding-top: 4px; }
.tytka-login-modal .tytka-login-foot a{ color: var(--ink-3); }
.tytka-login-modal .tytka-login-foot a:hover{ color: var(--carrot-deep); }

/* Layout sekcji "Twoje dane" head — login link po prawej */
.tytka-checkout #details .section-head{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }

/* ============================================================
   Coupon — pole "Mam kod rabatowy" w col-cart.
   ============================================================ */
.tytka-checkout .tytka-coupon{ margin: 10px 0 14px; }
.tytka-checkout .tytka-coupon-toggle{
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; color: var(--ink-3); font-weight: 500;
  background: transparent; border: 0; padding: 4px 0; cursor: pointer;
  transition: color .15s;
}
.tytka-checkout .tytka-coupon-toggle:hover{ color: var(--carrot-deep); }
.tytka-checkout .tytka-coupon-toggle svg{ width: 14px; height: 14px; }
.tytka-checkout .tytka-coupon-toggle.is-open{ color: var(--ink); }

.tytka-checkout .tytka-coupon-form{
  display: flex; gap: 8px; margin-top: 8px;
  animation: tytkaCouponSlide .25s ease;
}
@keyframes tytkaCouponSlide{ from{ opacity:0; transform: translateY(-4px); } to{ opacity:1; transform: translateY(0); } }
.tytka-checkout .tytka-coupon-input{
  flex: 1; min-width: 0;
  padding: 7px 10px; border: 1px solid var(--line);
  border-radius: 8px; background: var(--paper);
  font: 13px inherit; color: var(--ink-2);
  text-transform: uppercase; letter-spacing: .04em;
  transition: all .15s var(--ease);
}
.tytka-checkout .tytka-coupon-input::placeholder{ color: var(--ink-4); text-transform: none; letter-spacing: normal; }
.tytka-checkout .tytka-coupon-input:focus{ outline:none; border-color: var(--carrot); box-shadow: 0 0 0 3px var(--carrot-tint); }
.tytka-checkout .tytka-coupon-apply{
  padding: 7px 14px; border-radius: 8px;
  background: transparent; color: var(--ink-3);
  font: 500 12px inherit; letter-spacing: .04em; text-transform: uppercase;
  border: 1px solid var(--line); cursor: pointer; position: relative;
  transition: all .15s;
}
.tytka-checkout .tytka-coupon-apply:hover{ background: var(--carrot-tint); border-color: var(--carrot-soft); color: var(--carrot-deep); }
.tytka-checkout .tytka-coupon-apply:active{ transform: scale(.97); }
.tytka-checkout .tytka-coupon-apply.is-loading{ color: transparent; pointer-events: none; }
.tytka-checkout .tytka-coupon-apply.is-loading::after{
  content:""; position: absolute; top: 50%; left: 50%;
  width: 12px; height: 12px; margin: -6px 0 0 -6px;
  border: 1.5px solid var(--carrot-deep); border-top-color: transparent;
  border-radius: 50%; animation: tytkaSpin .7s linear infinite;
}

.tytka-checkout .tytka-coupon-msg{
  margin-top: 6px; font-size: 12px; min-height: 14px;
}
.tytka-checkout .tytka-coupon-msg.is-err{ color: var(--warn); }
.tytka-checkout .tytka-coupon-msg.is-ok{  color: var(--leaf); }

.tytka-checkout .tytka-coupons-list{ display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.tytka-checkout .tytka-coupon-chip{
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--carrot-tint); color: var(--carrot-deep);
  padding: 3px 4px 3px 10px; border-radius: 999px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .03em;
}
.tytka-checkout .tytka-coupon-chip .tcc-amt{ font-weight: 500; opacity: .85; }
.tytka-checkout .tytka-coupon-chip .tcc-rm{
  width: 18px; height: 18px; border-radius: 50%;
  background: rgba(184,98,15,.18); color: var(--carrot-deep);
  border: 0; font-size: 13px; line-height: 1; cursor: pointer;
  display: inline-grid; place-items: center;
  transition: background .15s;
}
.tytka-checkout .tytka-coupon-chip .tcc-rm:hover{ background: var(--carrot-deep); color: #fff; }

/* ============================================================
   WC Notice modal — przekształca .woocommerce-NoticeGroup w centralny overlay.
   Aktywuje się przez JS na evencie checkout_error.
   ============================================================ */
.tytka-notice-modal{
  /* Modal jest dzieckiem <body> (poza .tytka-checkout scope) → CSS vars muszą być tu redeklarowane,
     inaczej `var(--line)` itp. są undefined i np. bordery znikają. */
  --ink:           #221f1c;
  --ink-2:         #4a4541;
  --ink-3:         #8b847d;
  --ink-4:         #b8b1a6;
  --line:          #ebe5d8;
  --line-2:        #f1ebde;
  --paper:         #ffffff;
  --bg:            #faf6ee;
  --bg-2:          #f5efe1;
  --carrot:        #d27f21;
  --carrot-deep:   #ad6315;
  --carrot-soft:   #fbe8cd;
  --carrot-tint:   #fff4e1;
  --leaf:          #afb321;
  --leaf-deep:     #7e831a;
  --leaf-soft:     #eceec0;
  --warn:          #b8412a;
  --warn-bg:       #fbe5dc;
  --r-xs: 8px; --r-sm: 12px; --r-md: 18px; --r-lg: 26px;
  --sh-glow: 0 0 0 4px rgba(215,127,33,.12);
  --f-sans: "Josefin Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --ease: cubic-bezier(.32,.72,.28,1);

  position: fixed; inset: 0; z-index: 999999;
  display: none; align-items: center; justify-content: center;
  padding: 20px;
  font-family: var(--f-sans);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.tytka-notice-modal *, .tytka-notice-modal *::before, .tytka-notice-modal *::after{
  font-family: inherit;
  box-sizing: border-box;
}
.tytka-notice-modal.is-open{ display: flex; }
body.tytka-notice-open{ overflow: hidden; }

.tytka-notice-modal .tytka-notice-backdrop{
  position: absolute; inset: 0;
  background: rgba(20, 22, 18, 0.55);
  backdrop-filter: blur(3px);
  animation: tytkaNoticeFade .2s ease;
}
@keyframes tytkaNoticeFade{ from { opacity: 0; } to { opacity: 1; } }

.tytka-notice-modal .tytka-notice-card{
  position: relative;
  background: #fff;
  border-radius: 16px;
  max-width: 480px; width: 100%;
  max-height: calc(100vh - 40px); overflow-y: auto;
  box-shadow: 0 24px 64px -12px rgba(20, 22, 18, 0.4);
  padding: 28px 28px 22px;
  animation: tytkaNoticePop .25s cubic-bezier(.34,1.4,.64,1);
}
@keyframes tytkaNoticePop{
  from { opacity: 0; transform: translateY(12px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.tytka-notice-modal .tytka-notice-close{
  position: absolute; top: 12px; right: 14px;
  width: 32px; height: 32px;
  border: 0; background: transparent; cursor: pointer;
  color: var(--ink-3, #6b716e); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s;
}
.tytka-notice-modal .tytka-notice-close:hover{ background: #f4f4f1; color: var(--ink, #1f2421); }
.tytka-notice-modal .tytka-notice-close svg{ width: 16px; height: 16px; }

.tytka-notice-modal .tytka-notice-head{
  text-align: center; margin-bottom: 16px;
}
.tytka-notice-modal .tytka-notice-mark{
  width: 56px; height: 56px; margin: 0 auto 12px;
  display: grid; place-items: center;
  background: #fbe5dc; color: #b8412a;
  border-radius: 50%;
}
.tytka-notice-modal .tytka-notice-mark svg{ width: 28px; height: 28px; }
.tytka-notice-modal .tytka-notice-head h3{
  margin: 0 0 6px; font-size: 18px; font-weight: 700;
  color: var(--ink, #1f2421); letter-spacing: -.01em;
}
.tytka-notice-modal .tytka-notice-head p{
  margin: 0; font-size: 13.5px; color: var(--ink-3, #6b716e); line-height: 1.5;
}

.tytka-notice-modal .tytka-notice-body{
  background: #fbe5dc20; border: 1px solid #ebbeae80;
  border-radius: 10px; padding: 12px 14px;
  margin-bottom: 18px;
}
.tytka-notice-modal .tytka-notice-body .woocommerce-NoticeGroup,
.tytka-notice-modal .tytka-notice-body .woocommerce-NoticeGroup > div{
  background: transparent; border: 0; padding: 0; margin: 0;
}
.tytka-notice-modal .tytka-notice-body ul.woocommerce-error{
  list-style: none; padding: 0; margin: 0; background: transparent;
  color: var(--ink, #1f2421);
}
.tytka-notice-modal .tytka-notice-body ul.woocommerce-error li{
  padding: 8px 0; border-bottom: 1px dashed #ebbeae;
  font-size: 13.5px; line-height: 1.5;
}
.tytka-notice-modal .tytka-notice-body ul.woocommerce-error li:last-child{ border-bottom: 0; }
.tytka-notice-modal .tytka-notice-body ul.woocommerce-error li::before{
  content: "·"; color: #b8412a; font-weight: 700; margin-right: 8px;
}
.tytka-notice-modal .tytka-notice-body a{
  color: var(--ink, #1f2421); text-decoration: none;
  display: inline; transition: color .15s;
}
.tytka-notice-modal .tytka-notice-body a:hover{ color: var(--carrot-deep, #ad6315); }
.tytka-notice-modal .tytka-notice-body strong{ font-weight: 600; }

.tytka-notice-modal .tytka-notice-foot{
  display: flex; justify-content: flex-end;
}
.tytka-notice-modal .tytka-notice-ok{
  background: var(--carrot, #d27f21); color: #fff;
  border: 0; padding: 10px 18px; border-radius: 10px;
  font-size: 13.5px; font-weight: 600; cursor: pointer;
  transition: background .15s, transform .12s;
}
.tytka-notice-modal .tytka-notice-ok:hover{ background: var(--carrot-deep, #ad6315); }
.tytka-notice-modal .tytka-notice-ok:active{ transform: scale(.97); }

/* Ukryj inline notice w stronie — pełna treść jest w modalu. */
.tytka-checkout form.checkout > .woocommerce-NoticeGroup-checkout,
.tytka-checkout form.checkout .woocommerce-NoticeGroup-checkout{
  display: none;
}

@media (max-width: 540px){
  .tytka-notice-modal{ padding: 12px; }
  .tytka-notice-modal .tytka-notice-card{ padding: 24px 18px 18px; }
  .tytka-notice-modal .tytka-notice-head h3{ font-size: 17px; }
}

/* ============================================================
   A11Y / PERF — touch targets, focus-visible, hit-area expand.
   Estetyka zachowana — pseudo `::before` rozszerza obszar kliku
   bez powiększania wizualnego rozmiaru elementu.
   ============================================================ */

/* Focus ring (klawiatura) na wszystkich elementach interaktywnych */
.tytka-checkout button:focus-visible,
.tytka-checkout a:focus-visible,
.tytka-checkout input:focus-visible,
.tytka-checkout select:focus-visible,
.tytka-checkout textarea:focus-visible,
.tytka-checkout [tabindex]:focus-visible{
  outline: 2px solid var(--carrot);
  outline-offset: 2px;
  border-radius: 4px;
}
.tytka-checkout button:focus-visible{ box-shadow: 0 0 0 4px rgba(215,127,33,.18); }

/* Touch hit-area expansion dla małych ikon (WCAG 2.5.5) */
.tytka-checkout .ci-qty button,
.tytka-checkout .ci-remove{ position: relative; }
.tytka-checkout .ci-qty button::before,
.tytka-checkout .ci-remove::before{
  content: ""; position: absolute; inset: -10px; z-index: 0;
}
.tytka-checkout .ci-qty button > *,
.tytka-checkout .ci-remove > *{ position: relative; z-index: 1; }

/* Kontrast — wyższy stopień szarości dla labeli/meta (WCAG AA 4.5:1)
   Stary: #8b847d (3.7:1), nowy: #6e6862 (4.8:1). */
.tytka-checkout{ --ink-3: #6e6862; }

/* Kontakt chip — wejście na stronę Kontakt (neutralny, akcent dopiero na hover) */
.tytka-checkout .t-pill-contact{
  cursor: pointer;
  text-decoration: none;
  transition: background .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), transform .18s var(--ease);
}
.tytka-checkout .t-pill-contact svg{ color: var(--carrot); width: 14px; height: 14px; }
.tytka-checkout .t-pill-contact:hover{ background: var(--carrot-tint); border-color: var(--carrot-soft); color: var(--carrot-deep); transform: translateY(-1px); }

/* Stopka kreatora — Kontakt + linki prawne (wcześniej strona ich nie miała nigdzie) */
.tytka-checkout .tytka-foot{
  border-top: 1px solid var(--line);
  margin-top: 40px;
  padding: 26px 24px 34px;
  background: transparent;
}
.tytka-checkout .tytka-foot-inner{
  max-width: 1240px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 14px 26px; flex-wrap: wrap;
  font-size: 12.5px; color: var(--ink-3);
}
.tytka-checkout .tf-brand{ font-weight: 600; color: var(--ink-2); }
.tytka-checkout .tf-links{ display: flex; align-items: center; gap: 6px 20px; flex-wrap: wrap; }
.tytka-checkout .tf-links a{
  color: var(--ink-2); text-decoration: none; font-weight: 500;
  border-bottom: 1px solid transparent; transition: color .15s var(--ease), border-color .15s var(--ease);
}
.tytka-checkout .tf-links a:hover{ color: var(--carrot-deep); border-bottom-color: var(--carrot-soft); }

@media (max-width:760px){
  .tytka-checkout .t-pill-contact span{ display: none; }
  .tytka-checkout .t-pill-contact{ padding: 9px 12px; }
  .tytka-checkout .tytka-foot-inner{ justify-content: center; text-align: center; }
}
