/* ============================================================
   gisty® woo — natywne strony WooCommerce (koszyk, kasa, konto)
   ostylowane do design systemu (brak dedykowanych projektów .dc).
   ============================================================ */

.woocommerce-cart main, .woocommerce-checkout main, .woocommerce-account main { padding-block: clamp(28px, 4vw, 56px); }

/* Powiadomienia — własne szablony notices/*.php (karty gn-notice) */
.gn-notice {
  display: flex; align-items: flex-start; gap: 12px;
  background: #fff; border: 1px solid var(--g-line);
  border-radius: 16px; padding: 14px 18px;
  box-shadow: var(--g-shadow-card); margin: 0 0 12px;
  font-size: 14.5px; line-height: 1.5; color: var(--g-ink);
}
.gn-notice__icon {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%;
  display: grid; place-items: center; margin-top: -1px;
}
/* ikony rysowane maską CSS — HTML powiadomień przechodzi przez kses (AJAX),
   który wycina inline SVG, więc w markupie ikon nie ma */
.gn-notice__icon::before {
  content: ""; width: 15px; height: 15px; background: currentColor;
  mask: var(--gn-icon) center / contain no-repeat;
  -webkit-mask: var(--gn-icon) center / contain no-repeat;
}
.gn-notice--error .gn-notice__icon   { --gn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.6 4h2.8v11h-2.8zM10.6 17.2h2.8V20h-2.8z'/%3E%3C/svg%3E"); }
.gn-notice--success .gn-notice__icon { --gn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 17.3 4.2 12l1.5-1.5 3.85 3.85 8.75-8.75 1.5 1.5z'/%3E%3C/svg%3E"); }
.gn-notice--info .gn-notice__icon    { --gn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.6 4h2.8v2.8h-2.8zM10.6 9.5h2.8V20h-2.8z'/%3E%3C/svg%3E"); }
.gn-notice__text { align-self: center; }
.gn-notice__text strong { font-weight: 700; }
.gn-notice__text a { color: var(--g-accent); font-weight: 600; }
.gn-notice__text .button, .gn-notice__text .wc-forward { display: none; }
.gn-notice--error .gn-notice__icon   { background: #F9E7E4; color: #B3402F; }
/* Karta „Ten adres ma już konto" — tytuł + przyciski w treści powiadomienia */
.gn-notice__title { display: block; font-weight: 700; font-size: 15.5px; color: var(--g-ink); margin-bottom: 3px; }
.gn-notice__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.gn-notice__text .gn-notice__btn {
  display: inline-block; padding: 10px 22px; border-radius: 999px; font-size: 14px; font-weight: 600;
  border: 1.5px solid var(--g-accent); color: var(--g-accent); background: transparent;
}
.gn-notice__text .gn-notice__btn:hover { background: var(--g-surface-soft); }
.gn-notice__text .gn-notice__btn--dark { background: var(--g-ink); border-color: var(--g-ink); color: var(--g-bg); }
.gn-notice__text .gn-notice__btn--dark:hover { background: var(--g-accent); border-color: var(--g-accent); color: #fff; }
.gn-notice--success .gn-notice__icon { background: #EAF6EF; color: #1F8A5B; }
.gn-notice--info .gn-notice__icon    { background: var(--g-surface-soft); color: var(--g-accent); }
/* stare klasy Woo renderowane przez wtyczki (np. PayU ul.pbl-error) —
   wygląd jak karty gn-notice; ikona woocommerce.css (font, absolute) w pełni podmieniona */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  list-style: none; margin: 0 0 12px; padding: 14px 18px 14px 56px;
  background: #fff; border: 1px solid var(--g-line); border-radius: 16px;
  box-shadow: var(--g-shadow-card); font-size: 14.5px; line-height: 1.5;
  color: var(--g-ink); position: relative;
}
.woocommerce-message li, .woocommerce-info li, .woocommerce-error li {
  list-style: none; margin: 0 !important; padding: 0 !important; border: none;
}
.woocommerce-message li::before, .woocommerce-info li::before, .woocommerce-error li::before { display: none; content: none; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
  content: ""; position: absolute; left: 13px; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; border-radius: 50%; margin: 0; font-size: 0; line-height: 0;
}
.woocommerce-message::after, .woocommerce-info::after, .woocommerce-error::after {
  content: ""; position: absolute; left: 20.5px; top: 50%; transform: translateY(-50%);
  width: 15px; height: 15px;
  mask: var(--gn-i) center / contain no-repeat; -webkit-mask: var(--gn-i) center / contain no-repeat;
}
.woocommerce-error::before   { background: #F9E7E4; }
.woocommerce-error::after    { background: #B3402F; --gn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.6 4h2.8v11h-2.8zM10.6 17.2h2.8V20h-2.8z'/%3E%3C/svg%3E"); }
.woocommerce-message::before { background: #EAF6EF; }
.woocommerce-message::after  { background: #1F8A5B; --gn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.55 17.3 4.2 12l1.5-1.5 3.85 3.85 8.75-8.75 1.5 1.5z'/%3E%3C/svg%3E"); }
.woocommerce-info::before    { background: var(--g-surface-soft); }
.woocommerce-info::after     { background: var(--g-accent); --gn-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.6 4h2.8v2.8h-2.8zM10.6 9.5h2.8V20h-2.8z'/%3E%3C/svg%3E"); }

/* Przyciski Woo */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button,
.woocommerce input.button, .woocommerce #respond input#submit,
.wc-block-components-button {
  background: var(--g-ink); color: var(--g-bg); border: none; cursor: pointer;
  font-family: var(--g-font); font-weight: 600; font-size: 15px;
  padding: 13px 24px; border-radius: var(--g-r-pill);
  transition: background 0.15s ease;
}
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--g-accent); color: #fff; }
.woocommerce .button.alt, .woocommerce button.button.alt { background: var(--g-accent); color: #fff; }
.woocommerce .button.alt:hover { background: var(--g-accent-hover); }

/* Pola formularzy */
.woocommerce .input-text, .woocommerce select,
.woocommerce-page .input-text, .woocommerce-page select {
  border: 1.5px solid var(--g-border); border-radius: 12px; padding: 13px 16px;
  font-family: var(--g-font); font-size: 15px; background: #fff; color: var(--g-ink); outline: none;
}
.woocommerce .input-text:focus, .woocommerce select:focus { border-color: var(--g-accent); }
.woocommerce form .form-row label { font-size: 13.5px; color: var(--g-muted); }

/* Tabela koszyka */
.woocommerce table.shop_table {
  border: none; border-radius: var(--g-r-card); background: #fff;
  box-shadow: var(--g-shadow-card); border-collapse: separate; overflow: hidden;
}
.woocommerce table.shop_table th { background: var(--g-surface-soft-2); border: none; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--g-muted); }
.woocommerce table.shop_table td { border-top: 1px solid #F1E3DB; vertical-align: middle; }
.woocommerce table.shop_table img { border-radius: 12px; width: 56px; }
.woocommerce a.remove { color: #B49A91 !important; font-weight: 400; }
.woocommerce a.remove:hover { background: transparent; color: var(--g-accent-hover) !important; }
.woocommerce .quantity .qty { width: 70px; border: 1.5px solid var(--g-border); border-radius: var(--g-r-pill); padding: 9px; text-align: center; }
.woocommerce .coupon .input-text { width: 140px !important; }

/* Podsumowania / kasa */
.woocommerce .cart_totals h2, .woocommerce #order_review_heading, .woocommerce-billing-fields h3 { font-size: clamp(19px, 2.4vw, 24px); }
.woocommerce-checkout #payment { background: var(--g-surface-soft-2); border-radius: var(--g-r-card); }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: 14px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* Moje konto — układem rządzą szablony ga-* (Konto.dc); tu tylko neutralizacja
   floatów/szerokości z woocommerce-layout.css (30%/68% gniotły kolumny grida) */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }

/* Formularz logowania */
.woocommerce form.login, .woocommerce form.register {
  border: none; border-radius: var(--g-r-card); background: #fff;
  box-shadow: var(--g-shadow-card); padding: clamp(24px, 3vw, 36px);
  max-width: 460px;
}

/* ============================================================
   Koszyk / Kasa / Potwierdzenie wg projektów .dc (gw-*)
   ============================================================ */
.gw-cart, .gw-checkout-wrap, .gw-thanks { padding-block: clamp(28px, 4vw, 56px); }
.gw-cart h1, .gw-checkout-wrap h1 { margin-bottom: clamp(24px, 3vw, 36px); }

/* --- Koszyk: siatka --- */
.gw-cart__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: clamp(20px, 3vw, 36px); align-items: start; }
@media (max-width: 860px) { .gw-cart__grid { grid-template-columns: minmax(0, 1fr); } }
.gw-cart__items { display: flex; flex-direction: column; gap: 16px; }
.gw-item {
  background: #fff; border-radius: 22px; padding: clamp(16px, 2vw, 22px);
  box-shadow: var(--g-shadow-card); display: flex; gap: clamp(14px, 2vw, 20px); align-items: center;
}
.gw-item__thumb {
  flex: none; width: clamp(80px, 10vw, 104px); height: clamp(80px, 10vw, 104px);
  border-radius: 16px; overflow: hidden;
  background: repeating-linear-gradient(135deg, #F1DAD1 0 10px, #E9C9BD 10px 20px);
}
.gw-item__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-item__main { flex: 1; min-width: 0; }
.gw-item__head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.gw-item__name { font-weight: 600; font-size: clamp(16px, 2vw, 18px); color: var(--g-ink); }
.gw-item__cat { font-size: 13px; color: var(--g-muted-2); margin-top: 4px; }
.gw-item__remove { color: #B49A91; font-size: 13px; padding: 4px; }
.gw-item__remove:hover { color: var(--g-accent-hover); }
.gw-item__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.gw-item__qty { display: flex; align-items: center; border: 1.5px solid var(--g-border); border-radius: var(--g-r-pill); overflow: hidden; }
.gw-item__qty button { background: none; border: none; cursor: pointer; width: 36px; height: 36px; font-size: 18px; color: var(--g-ink); }
.gw-item__qty .quantity { display: contents; }
/* selektor z .quantity, bo `.woocommerce .quantity .qty` (obwódka pigułki
   z ogólnych stylów) inaczej przebija ten reset specyficznością */
.gw-item__qty .quantity .qty, .gw-item__qty input.qty {
  width: 34px; border: none; border-radius: 0; text-align: center; font-size: 15px; font-weight: 600;
  color: var(--g-ink); background: transparent; -moz-appearance: textfield; appearance: textfield; padding: 0;
}
.gw-item__qty input.qty::-webkit-outer-spin-button, .gw-item__qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gw-item__total { font-weight: 700; font-size: 19px; }
.gw-empty { background: #fff; border-radius: 26px; padding: clamp(40px, 6vw, 72px); text-align: center; box-shadow: var(--g-shadow-card); }
.gw-empty__icon { width: 80px; height: 80px; margin: 0 auto 22px; }
.gw-empty p { font-size: 18px; color: var(--g-muted); margin: 0 0 26px; }
.gw-cross { background: var(--g-surface-beige); border-radius: 22px; padding: clamp(18px, 2vw, 24px); }
.gw-cross__title { font-weight: 600; font-size: 16px; margin-bottom: 16px; }
.gw-cross__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.gw-cross__card { background: #fff; border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.gw-cross__thumb { display: block; width: 100%; aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden; background: repeating-linear-gradient(135deg, #F1DAD1 0 8px, #E9C9BD 8px 16px); }
.gw-cross__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-cross__name { font-weight: 600; font-size: 14.5px; }
.gw-cross__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.gw-cross__price { font-weight: 700; font-size: 15px; }
.gw-cross__add {
  background: var(--g-ink); color: var(--g-bg) !important; font-weight: 600; font-size: 13px;
  padding: 8px 14px !important; border-radius: var(--g-r-pill);
}
.gw-cross__add:hover { background: var(--g-accent); }

/* --- Podsumowanie (koszyk + kasa) --- */
.gw-summary {
  position: sticky; top: 96px; background: #fff; border-radius: 24px;
  padding: clamp(22px, 2.5vw, 30px); box-shadow: var(--g-shadow-card);
}
.gw-summary__title { font-weight: 700; font-size: 20px; margin-bottom: 18px; }
.gw-summary .gp-ship { margin-bottom: 18px; }
.gw-summary .g-drawer__bar { margin-bottom: 20px; }
.gw-coupon { display: flex; gap: 10px; margin-bottom: 20px; }
.gw-coupon__input {
  flex: 1; min-width: 0; border: 1.5px solid var(--g-border); border-radius: var(--g-r-pill);
  padding: 12px 16px; font-family: var(--g-font); font-size: 14px; color: var(--g-ink); outline: none; background: var(--g-bg);
}
.gw-coupon__btn {
  background: var(--g-surface-soft); color: var(--g-accent); border: none; cursor: pointer;
  font-family: var(--g-font); font-weight: 600; font-size: 14px; padding: 12px 18px; border-radius: var(--g-r-pill);
}
.gw-coupon__btn:hover { background: var(--g-selection); }
.gw-summary__row { display: flex; justify-content: space-between; font-size: 14.5px; color: var(--g-muted); margin-bottom: 10px; gap: 12px; }
.gw-summary__total {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  padding-top: 16px; margin-top: 8px; border-top: 1px solid #EFDDD4;
}
.gw-summary__total span { font-size: 16px; font-weight: 600; }
.gw-summary__total small { font-size: 12.5px; color: var(--g-muted-3); font-weight: 400; }
.gw-summary__total strong { font-weight: 700; font-size: 26px; }
.gw-summary__checkout, .gw-summary__place { display: flex; width: 100%; font-size: 16px; padding: 17px; margin: 22px 0 10px; justify-content: center; }
.gw-summary__continue { display: block; text-align: center; color: #7A6A64; font-size: 14px; font-weight: 500; }
.gw-summary__trust {
  display: flex; justify-content: center; gap: 20px; margin-top: 20px; padding-top: 18px;
  border-top: 1px solid #EFDDD4; font-size: 12px; color: var(--g-muted-3); flex-wrap: wrap;
}
.gw-summary__trust span { display: inline-flex; align-items: center; gap: 6px; }
.gw-summary__legal { font-size: 11.5px; color: var(--g-muted-3); line-height: 1.5; text-align: center; margin: 12px 0 0; }

/* --- Kasa --- */
.gw-checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: clamp(20px, 3vw, 40px); align-items: start; }
@media (max-width: 860px) { .gw-checkout { grid-template-columns: 1fr; } }
/* błędy walidacji wstrzykiwane przez JS Woo na początek formularza — na całą szerokość */
.gw-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.gw-checkout__col { display: flex; flex-direction: column; gap: clamp(18px, 2.5vw, 26px); }
.gw-sec { background: #fff; border-radius: 22px; padding: clamp(20px, 2.5vw, 30px); box-shadow: var(--g-shadow-card); }
.gw-sec__head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.gw-sec__num {
  width: 30px; height: 30px; border-radius: 50%; background: var(--g-ink); color: var(--g-bg);
  font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; flex: none;
}
.gw-sec__head h2 { font-size: 19px; font-weight: 600; margin: 0; letter-spacing: 0; }
.gw-sec__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .gw-sec__grid { grid-template-columns: 1fr; } }
.gw-sec__grid .form-row, .gw-sec .form-row { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.gw-sec__grid .gw-field--wide { grid-column: span 2; }
@media (max-width: 560px) { .gw-sec__grid .gw-field--wide { grid-column: span 1; } }
.gw-sec .form-row label { font-size: 13px; color: var(--g-muted); }
.gw-sec .form-row .required { color: var(--g-accent); text-decoration: none; }
.gw-sec .input-text {
  border: 1.5px solid var(--g-border); border-radius: 12px; padding: 13px 15px;
  font-size: 15px; color: var(--g-ink); outline: none; background: var(--g-bg); width: 100%;
}
.gw-sec .input-text:focus { border-color: var(--g-accent); }
/* woocommerce.css ma `.woocommerce form .form-row .input-text { padding: .5em }`
   i `.woocommerce-validated { border zielony }` o wyższej specyficzności —
   poniższe selektory muszą ją przebijać, nie skracać! */
.woocommerce form .form-row .input-text { padding: 13px 15px; }
.woocommerce form .form-row input.input-text { border: 1.5px solid var(--g-border); }
.woocommerce form .form-row input.input-text:focus { border-color: var(--g-accent); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--g-border); }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #B3402F; }
/* Panel logowania w sekcji 1 (pola należą do #gw-login-form poza kasą) */
.gw-login { background: var(--g-bg); border: 1.5px solid var(--g-border); border-radius: 16px; padding: 18px; margin-bottom: 18px; }
.gw-login__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .gw-login__grid { grid-template-columns: 1fr; } }
.gw-login .gz-field { display: flex; flex-direction: column; gap: 6px; }
.gw-login .gz-field > span { font-size: 13px; color: var(--g-muted); }
.gw-login .input-text { background: #fff; }
.gw-login__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 14px 0; }
.gw-login__remember { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--g-muted-dark); cursor: pointer; }
.gw-login__remember input { accent-color: var(--g-accent); width: 16px; height: 16px; }
.gw-login__lost { font-size: 13.5px; font-weight: 600; }
.gw-login__btn { width: 100%; padding: 13px; font-size: 15px; }

/* Telefon ze stałym prefiksem +48 (tylko polskie numery — wymóg paczkomatów) */
.gw-phone { position: relative; display: block; }
.gw-phone__prefix {
  position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  font-size: 15px; font-weight: 600; color: var(--g-muted); pointer-events: none;
}
.woocommerce form .form-row .gw-phone .input-text,
.gw-phone .input-text { padding-left: 52px; }
.woocommerce form .form-row .gw-phone.is-invalid input.input-text,
.gw-phone.is-invalid .input-text { border-color: #B3402F; }
/* hint poza .gw-phone: stale w drzewie (live region), pusty nie zajmuje miejsca */
.gw-phone__hint { display: block; font-size: 12.5px; line-height: 1.4; color: #B3402F; }
.gw-phone__hint:not(:empty) { margin-top: 6px; }
.gw-shipping { display: flex; flex-direction: column; gap: 12px; }
.gw-radio {
  display: flex; align-items: center; gap: 14px; border: 1.5px solid var(--g-border);
  border-radius: 14px; padding: 15px 18px; cursor: pointer; background: #fff;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.gw-radio:has(input:checked), .gw-radio.is-active { border-color: var(--g-accent); background: #FBEDE6; }
.gw-radio input { accent-color: var(--g-accent); width: 18px; height: 18px; flex: none; margin: 0; }
.gw-radio__main { flex: 1; min-width: 0; }
.gw-radio__name { display: block; font-weight: 600; font-size: 15px; }
.gw-radio__price { font-weight: 700; font-size: 15px; white-space: nowrap; }
.gw-payment { background: transparent !important; }
.gw-payment__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gw-payment__list li.wc_payment_method {
  border: 1.5px solid var(--g-border); border-radius: 14px; padding: 15px 18px;
  background: #fff; transition: border-color 0.15s ease, background 0.15s ease;
  display: flex; flex-wrap: wrap; align-items: center;
}
.gw-payment__list li.wc_payment_method > div.payment_box { flex: 0 0 100%; }
.gw-payment__list li.wc_payment_method:has(input:checked) { border-color: var(--g-accent); background: #FBEDE6; }
.gw-payment__list li.wc_payment_method input.input-radio { accent-color: var(--g-accent); width: 18px; height: 18px; margin: 0 14px 0 0; flex: none; vertical-align: middle; }
.gw-payment__list li.wc_payment_method > label {
  display: inline-flex; align-items: center; gap: 12px; cursor: pointer;
  font-weight: 600; font-size: 15px;
  /* karta jest flexem, więc label bierze CAŁE wolne miejsce obok radia — dzięki temu
     dopłata siada przy prawej krawędzi, dokładnie jak cena przy metodach dostawy
     (jej decyzja 29.08). Wcześniejsze width:calc() zostawiało kilkanaście pikseli luzu. */
  flex: 1 1 auto; min-width: 0; width: auto;
}
.gw-payment__list li img { max-height: 24px; width: auto; }
/* Opisy/regulaminki bramek: kompaktowo, żeby nie rozwalały układu */
.gw-payment__list div.payment_box {
  background: var(--g-surface-soft-2); border-radius: 12px; padding: 12px 14px;
  font-size: 12px; line-height: 1.5; color: var(--g-muted-2); margin: 12px 0 0;
}
.gw-payment__list div.payment_box p { margin: 0 0 6px; font-size: 12px; }
.gw-payment__list div.payment_box a { font-weight: 600; }
.gw-payment__list div.payment_box img { max-height: 26px; width: auto; display: inline-block; }
.gw-payment__list div.payment_box ul, .gw-payment__list div.payment_box li { list-style: none; margin: 0; padding: 0; }
/* karty komunikatów w boksie płatności (np. PayU .pbl-error) — nie łapie ich powyższy reset */
.gw-payment__list div.payment_box ul.woocommerce-error,
.gw-payment__list div.payment_box ul.woocommerce-message,
.gw-payment__list div.payment_box ul.woocommerce-info { padding: 14px 18px 14px 56px; margin: 10px 0; font-size: 14.5px; }
.gw-payment__meta { margin-top: 14px; }
.gw-summary--checkout .gw-review__items { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.gw-review__item { display: flex; gap: 12px; align-items: center; }
.gw-review__thumb {
  flex: none; width: 52px; height: 52px; border-radius: 12px; position: relative;
  background: repeating-linear-gradient(135deg, #F1DAD1 0 8px, #E9C9BD 8px 16px);
}
.gw-review__thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; display: block; }
.gw-review__qty {
  position: absolute; top: -6px; right: -6px; background: var(--g-ink); color: var(--g-bg);
  font-size: 11px; font-weight: 700; width: 20px; height: 20px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.gw-review__name { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; }
.gw-review__total { font-weight: 700; font-size: 14px; white-space: nowrap; }
.gw-review__sep { padding-top: 16px; border-top: 1px solid #EFDDD4; }
/* Cross-sell „Dorzuć do zamówienia" w podsumowaniu kasy */
.gw-xsell { border-top: 1px solid #EFDDD4; margin-top: 16px; padding-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.gw-xsell__title { font-weight: 700; font-size: 15px; }
.gw-xsell__sub { font-size: 12.5px; color: var(--g-muted); margin-top: -8px; }
.gw-xsell__card { display: flex; align-items: center; gap: 12px; background: var(--g-surface-soft); border-radius: 14px; padding: 10px 12px; }
.gw-xsell__thumb { width: 48px; height: 48px; border-radius: 10px; overflow: hidden; background: #EED7CE; flex: none; }
.gw-xsell__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-xsell__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gw-xsell__name { font-size: 14px; font-weight: 600; line-height: 1.3; }
.gw-xsell__price { font-size: 13px; color: var(--g-muted); }
.gw-xsell__price ins { text-decoration: none; }
.gw-xsell__add {
  background: #fff; border: 1.5px solid var(--g-border); border-radius: var(--g-r-pill);
  padding: 8px 16px; font-size: 13px; font-weight: 600; color: var(--g-ink); flex: none;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.gw-xsell__add:hover { border-color: var(--g-accent); color: var(--g-accent); }
.gw-xsell__add.loading { opacity: 0.6; pointer-events: none; }
/* link „Zobacz koszyk" doklejany przez JS Woo po dodaniu — zbędny przy fragmentach */
.gw-xsell .added_to_cart, .gw-cross .added_to_cart { display: none; }

/* --- Potwierdzenie --- */
.gw-thanks { max-width: 800px; }
.gw-thanks__head { text-align: center; margin-bottom: clamp(28px, 4vw, 44px); }
.gw-thanks__check {
  width: 88px; height: 88px; border-radius: 50%; background: var(--g-success-bg); color: var(--g-success);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 24px;
}
.gw-thanks__head h1 { margin: 12px 0 14px; }
.gw-thanks__mail { vertical-align: -6px; }
.gw-thanks__head p:last-child { font-size: 16px; line-height: 1.6; color: var(--g-muted); margin: 0; }
.gw-thanks__card { background: #fff; border-radius: 24px; padding: clamp(24px, 3vw, 36px); box-shadow: var(--g-shadow-card); }
.gw-thanks__meta { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; padding-bottom: 20px; border-bottom: 1px solid #EFDDD4; }
.gw-thanks__meta-r { text-align: right; }
.gw-thanks__label { font-size: 13px; color: var(--g-muted-2); margin-bottom: 4px; }
.gw-thanks__number { font-weight: 700; font-size: 20px; }
.gw-thanks__date { font-weight: 600; font-size: 16px; }
.gw-thanks__items { display: flex; flex-direction: column; gap: 14px; padding: 20px 0; border-bottom: 1px solid #EFDDD4; margin-bottom: 16px; }
.gw-thanks__tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-top: 22px; }
.gw-tile { background: var(--g-surface-beige); border-radius: 18px; padding: 18px; text-align: center; font-size: 13.5px; color: var(--g-muted); line-height: 1.5; }
.gw-tile svg { color: var(--g-accent); margin-bottom: 8px; }
.gw-thanks__cta { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 28px; }

/* Pola kasy: wrapper inputa na pełną szerokość */
.gw-sec .woocommerce-input-wrapper { display: block; width: 100%; }

/* Kasa: czysty wygląd pól jak w mockupie — bez gwiazdek i "(optional)",
   z twardym resetem odstępów (Woo dokleja własne marginesy) */
.gw-sec .form-row .required, .gw-sec .form-row .optional { display: none; }
.gw-checkout .form-row { margin: 0 !important; padding: 0 !important; }
.gw-sec .input-text { background: var(--g-bg) !important; border-radius: 12px !important; }


/* --- Kasa: logowanie + zakładanie konta (sekcja 1) --- */
.gw-sec__head--split { justify-content: flex-start; }
.gw-sec__head--split .gw-login-toggle {
  margin-left: auto; background: none; border: none; cursor: pointer;
  font-family: var(--g-font); font-weight: 600; font-size: 14px; color: var(--g-accent); padding: 4px;
}
.gw-sec__head--split .gw-login-toggle:hover { color: var(--g-accent-hover); }
.gw-login { margin-bottom: 18px; }
.gw-login form.login { max-width: none; padding: clamp(16px, 2vw, 22px); box-shadow: none; border: 1.5px solid var(--g-border); border-radius: 16px; margin: 0; }
.gw-login form.login .form-row { margin: 0 0 12px !important; }
.gw-account { border-top: 1px solid #EFDDD4; margin-top: 18px; padding-top: 18px; }
.gw-account__check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.gw-account__check input { accent-color: var(--g-accent); width: 19px; height: 19px; margin-top: 2px; flex: none; }
.gw-account__title { display: block; font-weight: 700; font-size: 16px; }
.gw-account__sub { display: block; font-size: 13.5px; color: var(--g-muted-2); margin-top: 2px; }
.gw-account__fields { margin-top: 14px; }
.gw-account__fields .form-row { margin: 0 0 6px !important; display: flex; flex-direction: column; gap: 6px; }
.gw-account__note { font-size: 12.5px; color: var(--g-muted-3); margin: 8px 0 0 !important; }

/* Wybór paczkomatu InPost (geowidget) w sekcji dostawy:
   blok pokazuje się dopiero po zaznaczeniu radia Paczkomat */
.gw-point { display: none; padding: 2px 4px 6px; }
.gw-shipping:has(input[value*="easypack_parcel_machines"]:checked) .gw-point { display: block; }
.gw-point__selected { margin-top: 10px; font-size: 13.5px; color: var(--g-muted-dark); background: var(--g-surface-soft-2); border-radius: 12px; padding: 10px 14px; }
.gw-point__selected.hidden-paczkomat-data { display: none; }
.gw-point__label { font-weight: 600; color: var(--g-ink); display: block; margin-bottom: 4px; }
.easypack-shipping-method-logo { display: none; } /* bez logo InPost przy metodzie */
.easypack_show_geowidget {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  background: transparent; color: var(--g-ink); font-weight: 600; font-size: 14.5px;
  padding: 12px 22px; border-radius: var(--g-r-pill);
  box-shadow: inset 0 0 0 1.5px var(--g-star); margin-top: 10px;
  transition: background 0.15s ease;
}
.easypack_show_geowidget:hover { background: #FBEDE6; }
#selected-parcel-machine { margin-top: 10px; font-size: 13.5px; color: var(--g-muted-dark); }
#selected-parcel-machine .easypack-visible-point-header { color: var(--g-ink); }

/* --- Brandowy wybór paczkomatu (przycisk-karta + modal z geowidgetem) --- */
.gw-radio__hint { display: block; font-size: 13px; color: var(--g-muted-2); margin-top: 2px; }
.gw-pointbtn {
  display: flex; align-items: center; gap: 14px; width: 100%; text-align: left;
  background: var(--g-surface-soft-2); border: 1.5px solid var(--g-border);
  border-radius: 14px; padding: 15px 18px; cursor: pointer; font-family: var(--g-font);
  transition: border-color 0.15s ease, background 0.15s ease; margin-top: 2px;
}
.gw-pointbtn:hover { border-color: var(--g-star); }
.gw-pointbtn.is-selected { border-color: var(--g-accent); background: #FBEDE6; }
.gw-pointbtn__icon {
  flex: none; width: 44px; height: 44px; border-radius: 12px;
  background: #FFCB04; color: #2E2A2C; display: flex; align-items: center; justify-content: center;
}
.gw-pointbtn__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gw-pointbtn__text strong { font-size: 16px; font-weight: 700; color: var(--g-ink); }
.gw-pointbtn__text span { font-size: 13.5px; color: var(--g-muted-2); }
.gw-pointbtn__arrow { flex: none; color: var(--g-accent); font-size: 18px; }
.gw-map { position: fixed; inset: 0; z-index: 220; height: 100vh; height: 100dvh; }
.gw-map__overlay { position: absolute; inset: 0; background: rgba(51, 39, 46, 0.45); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.gw-map__panel {
  position: absolute; inset: clamp(12px, 4vh, 48px) clamp(12px, 6vw, 80px);
  background: var(--g-bg); border-radius: 28px; overflow: hidden;
  display: flex; flex-direction: column; box-shadow: 0 40px 90px -40px rgba(51, 39, 46, 0.6);
}
.gw-map__head {
  display: flex; align-items: center; gap: 14px; flex: none;
  padding: 18px clamp(16px, 3vw, 28px); background: #fff; border-bottom: 1px solid #EFDDD4;
}
.gw-map__titles { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gw-map__titles strong { font-size: clamp(18px, 2.4vw, 24px); font-weight: 700; }
.gw-map__titles span { font-size: 13.5px; color: var(--g-muted-2); }
.gw-map__x {
  flex: none; background: var(--g-surface-soft); border: none; width: 40px; height: 40px;
  border-radius: 50%; cursor: pointer; font-size: 16px; color: var(--g-ink);
  display: flex; align-items: center; justify-content: center;
}
.gw-map__x:hover { background: var(--g-selection); }
.gw-map__widget { flex: 1; min-height: 0; }
.gw-map__widget inpost-geowidget { display: block; width: 100%; height: 100%; }
@media (max-width: 720px) {
  .gw-map__panel { inset: 0; border-radius: 0; }
}

/* Countdown wysyłki w podsumowaniu kasy */
.gw-summary__ship { margin-top: 18px; margin-bottom: 0; }

/* Potwierdzenie: na mobile kafelki jeden pod drugim, poziomo (ikona + tekst) */
@media (max-width: 560px) {
  .gw-thanks__tiles { grid-template-columns: 1fr; }
  .gw-tile { display: flex; align-items: center; gap: 12px; text-align: left; padding: 14px 16px; }
  .gw-tile svg { margin-bottom: 0; flex: none; }
}

/* --- Faktura na firmę (sekcja 2) --- */
.gw-invoice { border-top: 1px solid #EFDDD4; margin-top: 18px; padding-top: 18px; }
.gw-invoice__fields { display: none; }
.gw-invoice:has(> label input[type="checkbox"]:checked) .gw-invoice__fields {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px;
}
@media (max-width: 560px) {
  .gw-invoice:has(> label input[type="checkbox"]:checked) .gw-invoice__fields { grid-template-columns: 1fr; }
}

/* Countdown w kasie — proporcje jak w koszyku (screenshot klientki) */
.gw-summary__ship { align-items: center; padding: 16px 20px; border-radius: 18px; font-size: 14px; }
.gw-summary__ship svg { width: 20px; height: 20px; }

/* ============================================================
   Moje konto wg Konto.dc (ga-*)
   ============================================================ */
.ga-account { padding-block: clamp(28px, 4vw, 56px); }
.ga-account__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: clamp(24px, 3vw, 36px); }
.ga-account__head h1 { margin: 0; }
.ga-account__logout { font-size: 14px; color: #7A6A64; font-weight: 500; }
.ga-account__logout:hover { color: var(--g-accent); }
.ga-account__grid { display: grid; grid-template-columns: minmax(200px, 240px) minmax(0, 1fr); gap: clamp(20px, 3vw, 32px); align-items: start; }
@media (max-width: 720px) { .ga-account__grid { grid-template-columns: 1fr; } }
.ga-nav {
  background: #fff; border-radius: 22px; padding: 14px;
  box-shadow: var(--g-shadow-card); display: flex; flex-direction: column; gap: 4px;
}
/* Na telefonie zakładki w dwóch kolumnach zamiast poziomego paska: przy przewijaniu
   „Dane i adres" i „Ulubione" wychodziły poza ekran i nic nie sygnalizowało, że tam są
   (jej obserwacja 29.08). Cztery pozycje mieszczą się w dwóch rzędach — nic nie znika. */
@media (max-width: 720px) {
  .ga-nav { flex-direction: row; flex-wrap: wrap; overflow: visible; gap: 8px; }
  .ga-nav__item { flex: 1 1 calc(50% - 8px); text-align: center; padding: 13px 10px; font-size: 14px; }
}
.ga-nav__item {
  font-weight: 600; font-size: 15px; color: var(--g-ink);
  padding: 14px 18px; border-radius: 14px; white-space: nowrap;
}
.ga-nav__item:hover { background: var(--g-surface-soft-2); color: var(--g-ink); }
.ga-nav__item.is-active { background: var(--g-surface-soft); color: var(--g-accent); }
.ga-account__content { min-width: 0; background: transparent; border-radius: 0; padding: 0; box-shadow: none; }
.ga-account__grid--full { grid-template-columns: 1fr; }

/* Vouchery (mockup: karty z kodem i przyciskiem „Wykorzystaj") */
.ga-vouchers { display: flex; flex-direction: column; gap: 16px; }
.ga-vouch {
  display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between;
  background: #fff; border-radius: 22px; padding: clamp(20px, 2.5vw, 28px);
  box-shadow: var(--g-shadow-card);
}
.ga-vouch--used, .ga-vouch--expired { background: #F6EDE8; box-shadow: none; }
.ga-vouch__main { min-width: 0; }
.ga-vouch__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.ga-vouch__pill { font-size: 12.5px; font-weight: 600; padding: 5px 13px; border-radius: var(--g-r-pill); background: #EAF6EF; color: #1F8A5B; }
.ga-vouch--used .ga-vouch__pill { background: #EFDDD4; color: #8A7A75; }
.ga-vouch--expired .ga-vouch__pill { background: #F3E0DD; color: #9C5C50; }
.ga-vouch__label { font-size: 14px; color: var(--g-muted); }
.ga-vouch__amount { font-weight: 700; font-size: clamp(26px, 3vw, 34px); letter-spacing: -0.02em; }
.ga-vouch--used .ga-vouch__amount, .ga-vouch--expired .ga-vouch__amount { color: #A6968F; }
.ga-vouch__sub { font-size: 14px; color: var(--g-muted); margin-top: 6px; }
.ga-vouch__side { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; flex: none; }
.ga-vouch__code {
  border: 1.5px dashed #C58B7C; border-radius: 12px; padding: 10px 16px;
  font-size: 13px; color: var(--g-muted); background: #fff;
}
.ga-vouch__code strong { font-size: 16px; color: var(--g-ink); letter-spacing: 0.06em; margin-left: 4px; }
.ga-vouch__use { padding: 12px 24px; font-size: 14.5px; }
.ga-vouch-note {
  display: flex; gap: 12px; align-items: flex-start; background: #F6E4DC;
  border-radius: 18px; padding: 17px 20px; margin-top: 16px;
  font-size: 14px; line-height: 1.6; color: #5E5148;
}
.ga-vouch-note svg { flex: none; margin-top: 2px; color: var(--g-accent); }
@media (max-width: 560px) { .ga-vouch__side { align-items: flex-start; } }

/* Szczegóły zamówienia (Zamowienie.dc) */
.go-order__head { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; margin-bottom: clamp(22px, 3vw, 32px); }
.go-order__title { margin: 0 0 8px; font-size: clamp(24px, 3.4vw, 36px); letter-spacing: -0.02em; }
.go-order__date { font-size: 14px; color: var(--g-muted); }
.go-order__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: clamp(18px, 2.5vw, 28px); align-items: start; }
@media (max-width: 900px) { .go-order__grid { grid-template-columns: 1fr; } }
.go-order__col, .go-order__aside { display: flex; flex-direction: column; gap: clamp(16px, 2vw, 22px); min-width: 0; }
.go-card { background: #fff; border-radius: 22px; padding: clamp(20px, 2.5vw, 28px); box-shadow: var(--g-shadow-card); }
.go-card__title { font-weight: 700; font-size: 18px; margin-bottom: 18px; }
.go-card__title--sm { font-size: 16px; margin-bottom: 14px; }
.go-steps { display: flex; flex-direction: column; }
.go-step { display: flex; gap: 16px; align-items: flex-start; }
.go-step__rail { flex: none; display: flex; flex-direction: column; align-items: center; align-self: stretch; }
.go-step__dot {
  width: 28px; height: 28px; border-radius: 50%; box-sizing: border-box;
  display: flex; align-items: center; justify-content: center;
  background: var(--g-bg); border: 2px solid #EFDDD4; color: #FBF3EF;
}
.go-step--todo .go-step__dot::after, .go-step--current .go-step__dot::after {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: #D9C7BC;
}
.go-step--current .go-step__dot { background: #F6E4DC; border-color: #C58B7C; }
.go-step--done .go-step__dot { background: #B07D72; border-color: #B07D72; }
.go-step__line { flex: 1; width: 2px; min-height: 18px; background: #EFDDD4; }
.go-step--done .go-step__line { background: #D9AFA4; }
.go-step__body { flex: 1; min-width: 0; padding-bottom: 22px; }
.go-step--last .go-step__body { padding-bottom: 0; }
.go-step__title { display: block; font-weight: 600; font-size: 15px; color: #9A8A84; }
.go-step--done .go-step__title, .go-step--current .go-step__title { color: var(--g-ink); }
.go-step__note { display: block; font-size: 13px; color: var(--g-muted); margin-top: 3px; }
.go-track {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between;
  margin-top: 8px; padding: 16px 18px; background: var(--g-bg);
  border: 1.5px solid #EFDDD4; border-radius: 16px;
}
.go-label { text-transform: uppercase; letter-spacing: 0.12em; font-size: 10.5px; font-weight: 600; color: #9A8A84; margin-bottom: 6px; }
.go-track__no { font-weight: 700; font-size: 16px; overflow-wrap: anywhere; }
.go-items { display: flex; flex-direction: column; gap: 16px; }
.go-item { display: flex; gap: 14px; align-items: center; }
.go-item__thumb {
  flex: none; width: 64px; height: 64px; border-radius: 14px; overflow: hidden;
  background: repeating-linear-gradient(135deg, #F1DAD1 0 9px, #E9C9BD 9px 18px);
}
.go-item__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.go-item__main { flex: 1; min-width: 0; }
.go-item__name { display: block; font-weight: 600; font-size: 15.5px; color: var(--g-ink); line-height: 1.3; }
a.go-item__name:hover { color: var(--g-accent); }
.go-item__meta { display: block; font-size: 13px; color: var(--g-muted); margin-top: 4px; }
.go-item__total { flex: none; font-weight: 700; font-size: 16px; }
.go-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: clamp(18px, 3vw, 32px); }
.go-strong { font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.go-muted { font-size: 14px; line-height: 1.6; color: #6E5F5A; }
.go-doc { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; margin-top: 10px; color: var(--g-accent); }
.go-note {
  display: flex; gap: 10px; align-items: flex-start; background: #F6E4DC;
  border-radius: 14px; padding: 13px 15px; margin-top: 22px;
  font-size: 13px; line-height: 1.55; color: #5E5148;
}
.go-note svg { flex: none; margin-top: 1px; color: var(--g-accent); }
.go-row { display: flex; justify-content: space-between; font-size: 14px; color: #6E5F5A; margin-bottom: 10px; }
.go-row--discount { color: #1F8A5B; }
.go-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 14px; margin-top: 6px; border-top: 1px solid #EFDDD4; }
.go-total > span { font-size: 16px; font-weight: 600; }
.go-total small { font-size: 12px; color: #9A8A84; font-weight: 400; }
.go-total strong { font-size: 24px; }
.go-paybtn { display: block; text-align: center; margin-top: 14px; padding: 14px; font-size: 15px; }
.ga-order__pay { padding: 9px 18px; font-size: 13.5px; }
.go-help { display: flex; flex-direction: column; gap: 9px; }
.go-help .g-btn { text-align: center; }
.go-help__ghost {
  display: block; text-align: center; background: #fff;
  border: 1.5px solid var(--g-border); color: var(--g-ink);
  font-weight: 600; font-size: 14.5px; padding: 13px; border-radius: var(--g-r-pill);
  transition: border-color 0.15s ease;
}
.go-help__ghost:hover { border-color: var(--g-accent); }
/* Zwrot po ustawowym terminie: przycisk zostaje na swoim miejscu, ale wygaszony —
   znikający przycisk kazałby się domyślać, co się stało. Powód obok, nie w dymku. */
.go-help__ghost.is-disabled { opacity: 0.45; cursor: not-allowed; pointer-events: none; }
.go-help__why { display: block; flex: 1 1 100%; margin-top: 8px; font-size: 13px; line-height: 1.5; color: var(--g-muted-2); }
.go-help__why a { color: var(--g-accent-hover); text-decoration: underline; }
.go-help__note { font-size: 12.5px; line-height: 1.55; color: var(--g-muted); margin-top: 14px; }
.go-help__note a { font-weight: 600; }
.go-back { display: block; text-align: center; font-size: 14px; font-weight: 500; color: #7A6A64; }
.go-back:hover { color: var(--g-accent); }
.ga-orders { display: flex; flex-direction: column; gap: 16px; }
.ga-order { background: #fff; border-radius: 20px; padding: clamp(18px, 2vw, 24px); box-shadow: var(--g-shadow-card); }
.ga-order__top { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; padding-bottom: 16px; border-bottom: 1px solid #EFDDD4; }
.ga-order__number { font-weight: 700; font-size: 16px; }
.ga-order__date { font-size: 13px; color: var(--g-muted-2); margin-left: 12px; }
.ga-status { font-size: 12.5px; font-weight: 600; padding: 6px 14px; border-radius: var(--g-r-pill); }
.ga-order__bottom { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; padding-top: 16px; }
.ga-order__summary { font-size: 14px; color: var(--g-muted); }
.ga-order__right { display: flex; align-items: center; gap: 16px; }
.ga-order__total { font-weight: 700; font-size: 17px; }
.ga-order__right a { font-size: 14px; font-weight: 600; }
.ga-orders__nav { display: flex; gap: 12px; margin-top: 20px; }
.ga-form { background: #fff; border-radius: 22px; padding: clamp(20px, 2.5vw, 30px); box-shadow: var(--g-shadow-card); }
.ga-form h2 { font-size: 19px; font-weight: 600; margin: 0 0 20px; letter-spacing: 0; }
.ga-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .ga-form__grid { grid-template-columns: 1fr; } .ga-form__grid .gw-field--wide { grid-column: span 1; } }
.ga-form .form-row { margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 6px; }
.ga-form .form-row label { font-size: 13px; color: var(--g-muted); }
.ga-form .input-text { background: var(--g-bg) !important; border-radius: 12px !important; width: 100%; }
.ga-form__invoice { margin-top: 22px; }
.ga-form__password { margin-top: 22px; border-top: 1px solid #EFDDD4; padding-top: 18px; }
.ga-form__password summary { cursor: pointer; font-weight: 600; font-size: 15px; margin-bottom: 14px; }
.ga-form__submit { margin: 22px 0 0 !important; }
/* Podgląd hasła — natywny przycisk Woo: woocommerce.js dokleja .show-password-input
   do KAŻDEGO <span class="password-input">, ikonę i pozycję daje woocommerce-layout.css.
   Szablony motywu dostarczają tylko ten wrapper (jak przy prefiksie telefonu).
   Pierwsza reguła jest konieczna: .ga-login__field span i .gw-login .gz-field > span
   stylują tekst etykiety i złapałyby też wrapper, przesuwając ikonę. */
.ga-login__field .password-input,
.gw-login .gz-field > .password-input { font-size: inherit; color: inherit; }
.woocommerce form .show-password-input::before { opacity: 0.55; }

/* te same metryki co .gs-grid w shop.css — ulubione mają wyglądać jak półka sklepu */
.ga-wish { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: clamp(16px, 2vw, 24px); }

/* ===== Logowanie / rejestracja / reset hasła wg Logowanie.dc (ga-login) ===== */
.ga-login { width: 100%; max-width: 460px; margin: 0 auto; padding-block: clamp(8px, 2vw, 24px); }
/* powiadomienia nad logowaniem/rejestracją — wąska karta jak mockup, nie pełna szerokość */
body.woocommerce-account:not(.logged-in) .gn-notice { max-width: 460px; margin-inline: auto; }
.ga-login__head { text-align: center; margin-bottom: 28px; }
.ga-login__head h1 { font-size: clamp(28px, 4vw, 38px); letter-spacing: -0.02em; margin: 0 0 8px; }
.ga-login__head p { font-size: 15px; color: var(--g-muted-2); margin: 0; }
.ga-login__card { background: #fff; border-radius: 24px; padding: clamp(24px, 3vw, 34px); box-shadow: 0 24px 56px -40px rgba(150, 90, 75, 0.45); }
.ga-login__card form { display: flex; flex-direction: column; gap: 16px; }
.ga-login__field { display: flex; flex-direction: column; gap: 6px; }
.ga-login__field span { font-size: 13px; color: var(--g-muted); }
.ga-login__field input {
  border: 1.5px solid var(--g-border); border-radius: 12px; padding: 14px 16px;
  font-size: 16px; font-family: var(--g-font); outline: none; background: var(--g-bg); color: var(--g-ink); width: 100%;
}
.ga-login__field input:focus { border-color: var(--g-accent); }
.ga-login__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13.5px; }
.ga-login__remember { display: inline-flex; align-items: center; gap: 8px; color: var(--g-muted); cursor: pointer; }
.ga-login__remember input { accent-color: var(--g-accent); width: 16px; height: 16px; }
.ga-login__forgot { font-size: 13.5px; font-weight: 600; }
.ga-login__terms { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--g-muted); line-height: 1.5; cursor: pointer; }
.ga-login__terms input { accent-color: var(--g-accent); width: 16px; height: 16px; margin-top: 2px; flex: none; }
.ga-login__submit { width: 100%; margin-top: 6px; font-size: 16px; padding: 16px; }
.ga-login__switch { text-align: center; font-size: 14.5px; color: var(--g-muted); margin: 22px 0 0; }
.ga-login__switch button {
  background: none; border: 0; cursor: pointer; font-family: var(--g-font);
  font-size: 14.5px; font-weight: 600; color: var(--g-accent); padding: 0;
}
.ga-login__switch button:hover, .ga-login__switch a:hover { color: var(--g-accent-hover); }

/* walidacja na żywo pól kasy (e-mail / kod pocztowy / numer domu) — spójna z telefonem */
.woocommerce form .form-row input.input-text.gw-invalid { border-color: #B3402F; }

/* karta „Zwrot w toku" w szczegółach zamówienia — akcentowa obwódka, spokojne tło */
.go-card--return { border-left: 3px solid var(--g-accent); display: flex; flex-direction: column; gap: 4px; }
.go-card--return a { text-decoration: underline; }

/* ---------- Pozycja koszyka niedostępna + ekran zablokowanej kasy (29.08) ---------- */
/* Wyprzedany produkt musi być widoczny przy SWOJEJ pozycji — sam komunikat u góry
   nie mówi, której rzeczy dotyczy. Przygaszamy zdjęcie i cenę, ale NIE tekst
   ani przycisku „Usuń": to jest dokładnie to, co klientka ma teraz zrobić. */
.gw-item.is-unavailable { background: #FDF6F4; border-color: #E7C3BA; }
.gw-item.is-unavailable .gw-item__thumb img { opacity: .45; filter: grayscale(.5); }
.gw-item.is-unavailable .gw-item__total,
.gw-item.is-unavailable .gw-item__qty { opacity: .5; }
.gw-item.is-unavailable .gw-item__remove { color: #A03D2B; font-weight: 600; opacity: 1; }
.gw-item__out { margin-top: 6px; }

.gw-cart-errors {
  background: #fff; border: 1px solid var(--g-line, #EFDDD4); border-radius: 24px;
  padding: clamp(28px, 4vw, 44px); max-width: 620px; margin: clamp(20px, 4vw, 44px) auto;
  box-shadow: var(--g-shadow-card); text-align: center;
}
.gw-cart-errors__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 54px; height: 54px; border-radius: 50%; background: #FBEDEA; color: #A03D2B; margin-bottom: 18px;
}
.gw-cart-errors h2 { margin: 0 0 12px; font-size: clamp(21px, 3vw, 27px); }
.gw-cart-errors p { margin: 0 0 24px; color: var(--g-muted-dark); line-height: 1.6; }
.gw-cart-errors__actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; align-items: center; }
.gw-cart-errors__link { color: var(--g-muted-dark); font-size: 14.5px; text-decoration: underline; text-underline-offset: 3px; }
.gw-cart-errors__link:hover { color: var(--g-accent); }
/* komunikaty Woo wypisujemy teraz w kontenerze — pas nie idzie już przez cały ekran */
.gw-cart .woocommerce-notices-wrapper,
.gw-checkout-wrap .woocommerce-notices-wrapper { margin-bottom: 18px; }

/* Dopłata przy metodzie płatności — przy prawej krawędzi, jak cena przy metodach
   dostawy (jej decyzja 29.08). margin-left:auto wypycha ją na koniec wiersza,
   a ikona bramki zostaje tuż przed nią. */
.gw-pay__fee {
  margin-left: auto; padding: 3px 11px; border-radius: 999px;
  background: var(--g-surface-soft); color: var(--g-accent-hover);
  font-size: 13.5px; font-weight: 600; white-space: nowrap;
}
/* gdy bramka ma ikonę, plakietka i tak trzyma się prawej — ikona idzie przed nią */
.gw-payment__list li.wc_payment_method > label img { margin-left: 0; }
