/* =========================================================
   OPG Kostešić — WooCommerce Cart + Checkout brand styling.
   Targetira WC Blocks (React-based) klase.
   :root tokeni duplicirani (Bee Jump pattern).
   ========================================================= */
:root {
    --opg-brand: #f7bd00;
    --opg-brand-dark: #eb6d2f;
    --opg-ink: #5a3733;
    --opg-ink-soft: #8b6a63;
    --opg-cream: #f9f4f0;
    --opg-white: #ffffff;
    --opg-line: rgba(90, 55, 51, 0.12);
    --opg-line-soft: rgba(90, 55, 51, 0.06);
    --opg-shadow-sm: 0 2px 8px rgba(90, 55, 51, 0.08);
    --opg-shadow-md: 0 8px 24px rgba(90, 55, 51, 0.12);
    --opg-font-heading: 'Signika Negative', system-ui, sans-serif;
    --opg-font-body: 'Open Sans', system-ui, sans-serif;
}

/* ---------- Page bg + base typography ---------- */

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-shop,
body.archive.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag,
body.single-product {
    background: var(--opg-cream, #f9f4f0);
    color: var(--opg-ink, #5a3733);
    font-family: var(--opg-font-body, system-ui, sans-serif);
}

body.woocommerce-cart #main,
body.woocommerce-checkout #main,
body.woocommerce-account #main,
body.woocommerce-shop #main,
body.archive.post-type-archive-product #main,
body.tax-product_cat #main,
body.tax-product_tag #main,
body.single-product #main {
    padding: 32px 16px 64px;
    max-width: 1280px;
    margin: 0 auto;
}

@media (min-width: 768px) {
    body.woocommerce-cart #main,
    body.woocommerce-checkout #main,
    body.woocommerce-account #main,
    body.woocommerce-shop #main,
    body.archive.post-type-archive-product #main,
    body.tax-product_cat #main,
    body.tax-product_tag #main,
    body.single-product #main {
        padding: 48px 32px 96px;
    }
}

/* WC Block layout container */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.woocommerce-account .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
    color: var(--opg-ink, #5a3733);
}

/* ---------- Headings ---------- */

.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-cart h2,
.wp-block-woocommerce-checkout h1,
.wp-block-woocommerce-checkout h2,
.wp-block-woocommerce-checkout h3,
.wc-block-components-title,
.wc-block-components-checkout-step__title,
.wc-block-components-totals-wrapper > *:first-child,
.woocommerce-account h1,
.woocommerce-account h2,
.woocommerce-account h3 {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
}

.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-checkout h1 {
    text-transform: uppercase;
    font-size: 1.6rem !important;
    margin-bottom: 24px !important;
}

@media (min-width: 1024px) {
    .wp-block-woocommerce-cart h1,
    .wp-block-woocommerce-checkout h1 {
        font-size: 2rem !important;
    }
}

/* Section step titles ("Contact information", "Billing address", ...) */
.wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-cart__totals-title {
    font-size: 1.05rem !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--opg-ink, #5a3733) !important;
    border-bottom: 2px solid var(--opg-brand, #f7bd00);
    padding-bottom: 10px;
    margin-bottom: 16px !important;
}

/* ---------- Cart product table ---------- */

.wc-block-cart-items,
.wc-block-cart-items__header {
    color: var(--opg-ink, #5a3733);
}

.wc-block-cart-items__header {
    border-bottom: 2px solid var(--opg-brand, #f7bd00);
    padding-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--opg-ink-soft, #8b6a63);
}

.wc-block-cart-items__row,
tr.wc-block-cart-items__row {
    border-bottom: 1px solid var(--opg-line-soft) !important;
}

.wc-block-cart-item__image img {
    border-radius: 8px;
    box-shadow: var(--opg-shadow-sm);
    background: var(--opg-white);
}

.wc-block-cart-item__product-name,
.wc-block-cart-item__name,
.wc-block-cart-item__name a {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
}

.wc-block-cart-item__name a:hover,
.wc-block-cart-item__name a:focus-visible {
    color: var(--opg-brand-dark, #eb6d2f) !important;
}

.wc-block-cart-item__short-description,
.wc-block-cart-item__product-metadata {
    color: var(--opg-ink-soft, #8b6a63) !important;
    font-size: 0.85rem;
    line-height: 1.5;
}

.wc-block-cart-item__total,
.wc-block-cart-item__price {
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 600;
}

/* Quantity selector */
.wc-block-components-quantity-selector {
    border: 1px solid var(--opg-line) !important;
    border-radius: 6px !important;
    background: var(--opg-white, #fff);
    overflow: hidden;
}

.wc-block-components-quantity-selector__button {
    color: var(--opg-ink, #5a3733) !important;
    background: transparent !important;
    transition: background 0.2s ease, color 0.2s ease;
}

.wc-block-components-quantity-selector__button:hover {
    background: var(--opg-cream, #f9f4f0) !important;
    color: var(--opg-brand-dark, #eb6d2f) !important;
}

.wc-block-components-quantity-selector__input {
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 600;
    background: transparent !important;
}

/* Remove (trash) icon */
.wc-block-cart-item__remove-link,
button.wc-block-cart-item__remove-link {
    color: var(--opg-ink-soft, #8b6a63) !important;
    transition: color 0.2s ease, transform 0.2s ease;
    background: transparent !important;
    border: 0 !important;
}

.wc-block-cart-item__remove-link:hover,
.wc-block-cart-item__remove-link:focus-visible {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    transform: scale(1.05);
}

/* ---------- Sidebar (totals + summary box) ---------- */

.wc-block-cart__sidebar,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-sidebar,
.wc-block-checkout__sidebar {
    background: var(--opg-white, #fff);
    border: 1px solid var(--opg-line);
    border-radius: 12px;
    padding: 20px 22px !important;
    box-shadow: var(--opg-shadow-sm);
}

@media (min-width: 768px) {
    .wc-block-cart__sidebar,
    .wp-block-woocommerce-checkout-order-summary-block,
    .wc-block-checkout__sidebar {
        padding: 24px 28px !important;
    }
}

.wc-block-components-totals-wrapper {
    border-color: var(--opg-line-soft) !important;
}

.wc-block-components-totals-item__label,
.wc-block-components-totals-coupon__button,
.wc-block-components-totals-footer-item__label {
    color: var(--opg-ink, #5a3733) !important;
    font-family: var(--opg-font-body, sans-serif);
}

.wc-block-components-totals-item__value,
.wc-block-components-formatted-money-amount {
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 700;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 1.2rem !important;
}

/* Coupon "Add coupons" expand */
.wc-block-components-totals-coupon-link,
.wc-block-components-totals-coupon button.components-button {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    text-decoration: none;
    font-weight: 600;
}

.wc-block-components-totals-coupon-link:hover {
    color: var(--opg-ink, #5a3733) !important;
}

/* ---------- Buttons (Proceed, Place Order, etc.) ---------- */

.wc-block-cart__submit-container .wc-block-components-button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.contained,
.wc-block-components-button--style-fill,
button.wc-block-components-button[type="submit"],
.woocommerce-button:not(.wc-block-cart-item__remove-link),
.button.button-primary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--opg-brand, #f7bd00) !important;
    color: var(--opg-white, #fff) !important;
    border: 0 !important;
    border-radius: 6px !important;
    font-family: var(--opg-font-heading, sans-serif) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.92rem !important;
    padding: 14px 28px !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    box-shadow: var(--opg-shadow-sm);
    width: auto;
}

.wc-block-cart__submit-container .wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button--style-fill:hover,
.woocommerce-button:not(.wc-block-cart-item__remove-link):hover,
.button.button-primary:hover {
    background: var(--opg-ink, #5a3733) !important;
    color: var(--opg-white, #fff) !important;
    box-shadow: var(--opg-shadow-md);
}

.wc-block-cart__submit-container,
.wp-block-woocommerce-proceed-to-checkout-block {
    margin-top: 16px;
    text-align: center;
}

.wc-block-cart__submit-container a,
.wp-block-woocommerce-proceed-to-checkout-block a {
    width: auto !important;
    display: inline-flex !important;
}

/* "Proceed to Checkout" link (if rendered as <a>) */
a.wc-block-cart__submit-container,
a.checkout-button,
.checkout-button {
    background: var(--opg-brand, #f7bd00) !important;
    color: var(--opg-white, #fff) !important;
    text-decoration: none !important;
    border-radius: 6px;
    padding: 14px 28px !important;
    font-family: var(--opg-font-heading, sans-serif);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    display: inline-flex;
    transition: background 0.2s ease;
}

a.checkout-button:hover {
    background: var(--opg-ink, #5a3733) !important;
}

/* "Return to Cart" link */
.wc-block-checkout__actions_row .wc-block-components-button--style-link,
.wc-block-checkout__actions a {
    color: var(--opg-ink-soft, #8b6a63) !important;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.wc-block-checkout__actions_row .wc-block-components-button--style-link:hover,
.wc-block-checkout__actions a:hover {
    color: var(--opg-brand-dark, #eb6d2f) !important;
}

/* ---------- Checkout form inputs ---------- */

.wc-block-components-text-input,
.wc-block-components-checkout-step__container .wc-block-components-text-input {
    margin-bottom: 12px;
}

.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-form input[type="text"],
.wc-block-components-form input[type="email"],
.wc-block-components-form input[type="tel"],
.wc-block-components-form input[type="number"],
.wc-block-components-combobox-control input,
.wc-block-components-select select,
select.components-select-control__input {
    background: var(--opg-white, #fff) !important;
    border: 1px solid var(--opg-line) !important;
    border-radius: 6px !important;
    color: var(--opg-ink, #5a3733) !important;
    font-family: var(--opg-font-body, sans-serif) !important;
    font-size: 0.95rem !important;
    padding: 14px 14px 6px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.wc-block-components-text-input input:focus,
.wc-block-components-text-input input:focus-visible,
.wc-block-components-form input:focus,
.wc-block-components-combobox-control input:focus,
.wc-block-components-select select:focus {
    border-color: var(--opg-brand-dark, #eb6d2f) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(235, 109, 47, 0.15) !important;
}

.wc-block-components-text-input label,
.wc-block-components-text-input .components-base-control__label {
    color: var(--opg-ink-soft, #8b6a63) !important;
    font-family: var(--opg-font-body, sans-serif) !important;
    font-size: 0.95rem !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label,
.wc-block-components-text-input input:not(:placeholder-shown) + label {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    font-size: 0.75rem !important;
}

/* Validation error text */
.wc-block-components-validation-error {
    color: #b91c1c !important;
    font-size: 0.8rem;
}

/* ---------- Radio buttons (payment options) ----------
   WC Blocks koristi grid layout interno (radio input | label content).
   NE diramo padding-left ni layout — samo bg, border, boje. Vertikalni
   padding stavljen kroz padding-block tako da ne razbijemo grid. */

.wc-block-components-radio-control__option,
.wc-block-components-payment-method-options .wc-block-components-radio-control__option {
    background: var(--opg-white, #fff) !important;
    border: 1px solid var(--opg-line) !important;
    border-radius: 8px !important;
    padding-block: 14px !important;
    margin-bottom: 10px !important;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.wc-block-components-radio-control__option:hover {
    border-color: var(--opg-brand, #f7bd00) !important;
}

.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control__option.is-selected,
.wc-block-components-radio-control__option--checked-option-highlighted {
    border-color: var(--opg-brand-dark, #eb6d2f) !important;
    background: rgba(247, 189, 0, 0.08) !important;
}

.wc-block-components-radio-control__input {
    accent-color: var(--opg-brand-dark, #eb6d2f);
}

.wc-block-components-radio-control__label,
.wc-block-components-radio-control__option-layout__label {
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 600;
}

.wc-block-components-radio-control__description,
.wc-block-components-radio-control__option-layout__description {
    color: var(--opg-ink-soft, #8b6a63) !important;
    font-size: 0.85rem;
    line-height: 1.5;
}

/* ---------- Checkbox ---------- */

.wc-block-components-checkbox__input {
    accent-color: var(--opg-brand-dark, #eb6d2f);
    width: 18px !important;
    height: 18px !important;
    border: 1px solid var(--opg-line) !important;
    border-radius: 4px !important;
}

.wc-block-components-checkbox__label,
.wc-block-components-checkbox label {
    color: var(--opg-ink, #5a3733) !important;
    font-size: 0.92rem;
}

/* ---------- Order summary (checkout sidebar) ----------
   Sidebar je usko (~280-340px na tablet/laptop). Default WC grid
   template-columns za order item nema dovoljno prostora za long
   product content, pa se tekst lomio po slovima. Forsiramo proper
   layout: image | content (1fr) | price. Description (full post
   content) potpuno sakriven — redundantan je jer korisnik je već
   to vidio u cart-u; order summary je samo kratki recap. */

.wc-block-components-order-summary-item {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) auto !important;
    column-gap: 12px !important;
    align-items: start !important;
    padding: 12px 0 !important;
}

@media (min-width: 768px) {
    .wc-block-components-order-summary-item {
        grid-template-columns: 64px minmax(0, 1fr) auto !important;
        column-gap: 14px !important;
    }
}

.wc-block-components-order-summary-item__image {
    width: 56px !important;
    height: 56px !important;
    flex-shrink: 0;
}

@media (min-width: 768px) {
    .wc-block-components-order-summary-item__image {
        width: 64px !important;
        height: 64px !important;
    }
}

.wc-block-components-order-summary-item__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: var(--opg-shadow-sm);
}

.wc-block-components-order-summary-item__quantity {
    background: var(--opg-ink, #5a3733) !important;
    color: var(--opg-white, #fff) !important;
}

.wc-block-components-order-summary-item__name,
.wc-block-components-order-summary-item__title {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 700 !important;
    font-size: 0.92rem !important;
    line-height: 1.3 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
    margin: 0 !important;
}

.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-order-summary-item__individual-price {
    color: var(--opg-ink-soft, #8b6a63) !important;
    font-size: 0.82rem !important;
    margin-top: 2px;
}

/* Sakrijemo full description u order summary — sidebar je usko.
   Ostale opg-news / product opise korisnik ima na cart i product page-u. */
.wc-block-components-order-summary-item__description {
    display: none !important;
}

.wc-block-components-product-price,
.wc-block-components-order-summary-item__total-price {
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 700 !important;
    font-size: 0.92rem !important;
    white-space: nowrap;
}

/* Order summary heading na tabletu — manji da ne lomi se */
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title {
    font-size: 1rem !important;
    line-height: 1.2;
}

/* ---------- Terms text ---------- */

.wc-block-checkout__terms,
.wc-block-checkout__terms-text {
    color: var(--opg-ink-soft, #8b6a63) !important;
    font-size: 0.85rem;
    line-height: 1.6;
}

.wc-block-checkout__terms a,
.wc-block-checkout__terms-text a {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.wc-block-checkout__terms a:hover {
    color: var(--opg-ink, #5a3733) !important;
}

/* ---------- Empty cart ---------- */

.wc-block-cart__empty-cart__title {
    font-family: var(--opg-font-heading, sans-serif);
    color: var(--opg-ink, #5a3733);
    text-transform: uppercase;
}

/* ---------- Notices ---------- */

.wc-block-components-notice-banner {
    border-radius: 8px !important;
    border-left-width: 4px !important;
}

.wc-block-components-notice-banner.is-info {
    border-left-color: var(--opg-brand, #f7bd00) !important;
    background: rgba(247, 189, 0, 0.08) !important;
}

.wc-block-components-notice-banner.is-error {
    border-left-color: #b91c1c !important;
}

.wc-block-components-notice-banner.is-success {
    border-left-color: #15803d !important;
}

/* =========================================================
   My Account — legacy WC shortcode templates (ne Blocks).
   Sidebar nav s branded linkovima, branded form inputs,
   password change fieldset, save button.
   ========================================================= */

/* Layout: flex sidebar | content (umjesto float-based default-a) —
   SAMO kad je korisnik ulogiran (kad postoji sidebar). U logged-out
   state-u (login/register page) WC outputa <h2>Login</h2> + <form>
   kao siblings, flex bi ih stavio side-by-side; želimo centriranu
   single-column karticu. */
body.logged-in.woocommerce-account .woocommerce {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    align-items: flex-start;
}

@media (min-width: 768px) {
    body.logged-in.woocommerce-account .woocommerce {
        gap: 40px;
        flex-wrap: nowrap;
    }
}

/* Logged-out: centriraj login formu, mali heading iznad. */
body:not(.logged-in).woocommerce-account .woocommerce {
    max-width: 540px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 100%;
    float: none !important;
    flex: 0 0 100%;
}

@media (min-width: 768px) {
    .woocommerce-account .woocommerce-MyAccount-navigation {
        width: 240px;
        flex: 0 0 240px;
    }
}

@media (min-width: 1024px) {
    .woocommerce-account .woocommerce-MyAccount-navigation {
        width: 280px;
        flex: 0 0 280px;
    }
}

.woocommerce-account .woocommerce-MyAccount-content {
    width: 100%;
    float: none !important;
    flex: 1 1 auto;
    min-width: 0;
}

/* Sidebar navigation — branded list */
.woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--opg-white, #fff);
    border: 1px solid var(--opg-line);
    border-radius: 12px;
    box-shadow: var(--opg-shadow-sm);
    overflow: hidden;
}

.woocommerce-MyAccount-navigation ul li {
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid var(--opg-line-soft);
    list-style: none !important;
}

.woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none;
}

.woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 14px 20px;
    color: var(--opg-ink, #5a3733) !important;
    text-decoration: none !important;
    font-family: var(--opg-font-heading, sans-serif);
    font-weight: 600;
    font-size: 0.92rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    transition: background 0.2s ease, color 0.2s ease, padding-left 0.2s ease;
    position: relative;
}

.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li a:focus-visible {
    background: var(--opg-cream, #f9f4f0);
    color: var(--opg-brand-dark, #eb6d2f) !important;
    padding-left: 24px;
}

.woocommerce-MyAccount-navigation ul li.is-active a {
    background: rgba(247, 189, 0, 0.12);
    color: var(--opg-brand-dark, #eb6d2f) !important;
    border-left: 3px solid var(--opg-brand-dark, #eb6d2f);
    padding-left: 17px;
}

/* Content area */
.woocommerce-MyAccount-content {
    background: var(--opg-white, #fff);
    border: 1px solid var(--opg-line);
    border-radius: 12px;
    padding: 24px;
    box-shadow: var(--opg-shadow-sm);
}

@media (min-width: 768px) {
    .woocommerce-MyAccount-content {
        padding: 32px;
    }
}

.woocommerce-MyAccount-content h1,
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3,
.woocommerce-MyAccount-content legend {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
    font-size: 1.1rem !important;
    margin: 0 0 16px !important;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--opg-brand, #f7bd00);
}

.woocommerce-MyAccount-content p {
    color: var(--opg-ink, #5a3733);
    line-height: 1.6;
}

.woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button) {
    color: var(--opg-brand-dark, #eb6d2f);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button):hover {
    color: var(--opg-ink, #5a3733);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Forms (Edit Account, Login, Register, Address) */
.woocommerce form .form-row,
.woocommerce-form-row {
    margin: 0 0 14px !important;
}

.woocommerce form .form-row label,
.woocommerce-form-row label,
.woocommerce form label {
    display: block;
    color: var(--opg-ink, #5a3733) !important;
    font-family: var(--opg-font-body, sans-serif);
    font-size: 0.88rem;
    font-weight: 600;
    margin: 0 0 6px;
    letter-spacing: 0.02em;
}

.woocommerce .required,
.woocommerce abbr.required {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    border: 0 !important;
    text-decoration: none !important;
    font-weight: 700;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-form-row input.input-text,
.woocommerce-Input,
.woocommerce input[type="text"]:not(.search-field),
.woocommerce input[type="email"],
.woocommerce input[type="password"],
.woocommerce input[type="tel"],
.woocommerce input[type="url"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select {
    width: 100%;
    background: var(--opg-white, #fff) !important;
    border: 1px solid var(--opg-line) !important;
    border-radius: 6px !important;
    padding: 12px 14px !important;
    color: var(--opg-ink, #5a3733) !important;
    font-family: var(--opg-font-body, sans-serif) !important;
    font-size: 0.95rem !important;
    line-height: 1.4;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: none !important;
    box-sizing: border-box;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-form-row input.input-text:focus,
.woocommerce input:focus-visible,
.woocommerce textarea:focus-visible,
.woocommerce select:focus-visible {
    border-color: var(--opg-brand-dark, #eb6d2f) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(235, 109, 47, 0.15) !important;
}

/* Password fieldset (Edit Account → Password change) */
.woocommerce-EditAccountForm fieldset,
.woocommerce form fieldset {
    border: 1px solid var(--opg-line) !important;
    border-radius: 8px !important;
    padding: 20px !important;
    margin: 24px 0 !important;
    background: rgba(247, 189, 0, 0.04);
}

.woocommerce-EditAccountForm legend,
.woocommerce form legend {
    padding: 0 8px;
    font-size: 1rem !important;
    background: var(--opg-white, #fff);
    border-radius: 4px;
}

/* Password show/hide eye icon (WC default uses ::before pseudo) */
.woocommerce-password-hint {
    color: var(--opg-ink-soft, #8b6a63);
    font-size: 0.82rem;
    line-height: 1.5;
    margin-top: 6px;
}

.show-password-input {
    color: var(--opg-ink-soft, #8b6a63) !important;
}

.show-password-input:hover,
.show-password-input.display-password {
    color: var(--opg-brand-dark, #eb6d2f) !important;
}

/* Save changes / Login / Register button */
.woocommerce-Button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce-MyAccount-content .button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: var(--opg-brand, #f7bd00) !important;
    color: var(--opg-white, #fff) !important;
    border: 0 !important;
    border-radius: 6px !important;
    font-family: var(--opg-font-heading, sans-serif) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.88rem !important;
    padding: 12px 24px !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: var(--opg-shadow-sm);
    text-shadow: none !important;
}

.woocommerce-Button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce-MyAccount-content .button:hover {
    background: var(--opg-ink, #5a3733) !important;
    color: var(--opg-white, #fff) !important;
    box-shadow: var(--opg-shadow-md);
}

/* Dashboard intro (welcome message) */
.woocommerce-MyAccount-content > p:first-of-type {
    font-size: 1rem;
    color: var(--opg-ink, #5a3733);
}

/* Orders / Downloads / Addresses tables */
.woocommerce-orders-table,
.woocommerce-MyAccount-orders,
.shop_table {
    width: 100%;
    border-collapse: collapse !important;
    border: 1px solid var(--opg-line) !important;
    border-radius: 8px;
    overflow: hidden;
}

.woocommerce-orders-table th,
.shop_table th {
    background: var(--opg-cream, #f9f4f0) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-family: var(--opg-font-heading, sans-serif);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.78rem !important;
    padding: 12px 14px !important;
    text-align: left;
}

.woocommerce-orders-table td,
.shop_table td {
    padding: 12px 14px !important;
    border-top: 1px solid var(--opg-line-soft) !important;
    color: var(--opg-ink, #5a3733);
    font-size: 0.92rem;
}

/* Empty states ("No order has been made yet") */
.woocommerce-Message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-message,
.woocommerce-noreviews {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: rgba(247, 189, 0, 0.08) !important;
    border-left: 4px solid var(--opg-brand, #f7bd00) !important;
    color: var(--opg-ink, #5a3733) !important;
    padding: 14px 18px !important;
    border-radius: 6px !important;
    list-style: none !important;
}

/* WC ubacuje icon kroz ::before pseudo (\e028, \e016 itd. iz vlastitog
   icon font-a). Na nekim postavkama font ne učita pa renderira blue
   tofu kvadratić preko teksta. Sakrij ih — boja border-left već
   nosi semantiku. */
.woocommerce-Message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-noreviews::before {
    display: none !important;
    content: none !important;
}

.woocommerce-error {
    background: rgba(185, 28, 28, 0.08) !important;
    border-left-color: #b91c1c !important;
    color: #7f1d1d !important;
}

.woocommerce-message {
    background: rgba(21, 128, 61, 0.08) !important;
    border-left-color: #15803d !important;
    color: #14532d !important;
}

/* Notice button (Browse products) — manji od main button-a */
.woocommerce-Message .button,
.woocommerce-info .button {
    flex-shrink: 0;
    padding: 10px 18px !important;
    font-size: 0.78rem !important;
}

/* =========================================================
   My Account — Login / Register page (logged-out state).
   Nema sidebar-a; centered card wrapper za login form(s).
   ========================================================= */

#customer_login,
.woocommerce-account .woocommerce > .u-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    justify-content: center;
    max-width: 960px;
    margin: 0 auto !important;
}

#customer_login::before,
#customer_login::after,
.u-columns::before,
.u-columns::after {
    display: none !important;
    content: none !important;
}

#customer_login .u-column1,
#customer_login .u-column2,
.u-columns > .col-1,
.u-columns > .col-2 {
    width: 100% !important;
    max-width: 460px;
    float: none !important;
    margin: 0 !important;
}

@media (min-width: 768px) {
    #customer_login.col2-set .u-column1,
    #customer_login.col2-set .u-column2 {
        flex: 1 1 0;
    }
}

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword {
    background: var(--opg-white, #fff);
    border: 1px solid var(--opg-line);
    border-radius: 12px;
    padding: 32px 28px !important;
    box-shadow: var(--opg-shadow-sm);
    width: 100%;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .woocommerce-form-login,
    .woocommerce-form-register,
    .woocommerce-ResetPassword {
        padding: 44px 40px !important;
    }
}

/* "Login" / "Register" h2 iznad forme */
.woocommerce-account:not(.logged-in) .woocommerce > h2,
#customer_login h2 {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 1.4rem !important;
    margin: 0 0 16px !important;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--opg-brand, #f7bd00);
    text-align: center;
}

/* Remember me checkbox + label */
.woocommerce-form-login__rememberme,
label.woocommerce-form__label-for-checkbox {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    color: var(--opg-ink, #5a3733);
    font-weight: 500;
    font-size: 0.88rem;
    margin-left: 12px;
}

.woocommerce-form__input-checkbox {
    accent-color: var(--opg-brand-dark, #eb6d2f);
    width: 16px;
    height: 16px;
}

/* Submit row — gumb + remember me u istoj liniji s gap-om */
.woocommerce-form-login .form-row,
.woocommerce-form-register .form-row {
    margin-bottom: 14px !important;
}

/* Lost password link */
.woocommerce-LostPassword,
p.woocommerce-LostPassword,
p.lost_password {
    margin: 16px 0 0 !important;
    font-size: 0.88rem;
}

.woocommerce-LostPassword a,
p.lost_password a {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    text-decoration: none !important;
    font-weight: 600;
    transition: color 0.2s ease;
}

.woocommerce-LostPassword a:hover,
.woocommerce-LostPassword a:focus-visible,
p.lost_password a:hover {
    color: var(--opg-ink, #5a3733) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* "Login" / "Register" page heading na vrhu (h1 iznad columns-a, ako WC
   doda) — već stiliran kroz .woocommerce-account h1 selektor iznad. */

/* =========================================================
   Shop archive (WC legacy template — `archive-product.php`).
   Targetira `.woocommerce ul.products li.product` markup.
   ========================================================= */

/* Stranica heading "Shop" / kategorija + result-count + sorting bar */
.woocommerce-products-header {
    margin: 0 0 32px;
}

.woocommerce-products-header__title,
.woocommerce-shop .page-title,
body.archive.post-type-archive-product .page-title {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700 !important;
    font-size: 1.6rem !important;
    margin: 0 0 12px !important;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--opg-brand, #f7bd00);
}

@media (min-width: 1024px) {
    .woocommerce-products-header__title,
    .woocommerce-shop .page-title,
    body.archive.post-type-archive-product .page-title {
        font-size: 2rem !important;
    }
}

/* Sakrij "Showing all X results" + "Default sorting" dropdown — user
   ne želi sortiranje ni count na shop arhivi. */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count,
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
    display: none !important;
}

/* Product grid — flexbox s explicit widths.
   ID selektor `#main` daje 1,0,0 specifičnost koja nadjača sve WC
   default rule-ove (max 0,5,3). Mirror WC-ovih `.columns-N`
   selektora s !important kao fallback. */
#main .woocommerce ul.products,
#main .woocommerce-page ul.products,
#main ul.products,
.woocommerce ul.products,
.woocommerce-page ul.products {
    clear: both !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    gap: 16px !important;
}

@media (min-width: 768px) {
    #main .woocommerce ul.products,
    #main .woocommerce-page ul.products,
    #main ul.products,
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        gap: 24px !important;
    }
}

@media (min-width: 1280px) {
    #main .woocommerce ul.products,
    #main .woocommerce-page ul.products,
    #main ul.products,
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        gap: 28px !important;
    }
}

/* Sakrij sve non-product children koje WC ili neki drugi plugin
   eventualno ubaci u ul.products (sentinel li, notice, separator). */
#main .woocommerce ul.products > *:not(.product),
#main ul.products > *:not(.product),
.woocommerce ul.products > *:not(.product) {
    display: none !important;
}

/* Override WC default percentage widths + floats na product LI-jevima.
   ID selektor `#main` (1,0,0) + mirror WC-ovih `.columns-N` rule-ova.
   Mobile: 2 kolone, Tablet: 3, Desktop: 4. Sve breakpointe + sve
   columns-N varijante koje WC može staviti na ul.products. */
#main .woocommerce ul.products li.product,
#main .woocommerce-page ul.products li.product,
#main ul.products li.product,
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products.columns-1 li.product,
.woocommerce ul.products.columns-2 li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce ul.products.columns-4 li.product,
.woocommerce ul.products.columns-5 li.product,
.woocommerce ul.products.columns-6 li.product,
.woocommerce-page ul.products.columns-1 li.product,
.woocommerce-page ul.products.columns-2 li.product,
.woocommerce-page ul.products.columns-3 li.product,
.woocommerce-page ul.products.columns-4 li.product,
.woocommerce-page ul.products.columns-5 li.product,
.woocommerce-page ul.products.columns-6 li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    padding: 18px !important;
    background: var(--opg-white, #fff);
    border: 1px solid var(--opg-line);
    border-radius: 12px;
    box-shadow: var(--opg-shadow-sm);
    text-align: center;
    display: flex !important;
    flex-direction: column !important;
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    box-sizing: border-box !important;
    /* Mobile: 2 kolone (16px gap → 50% - 8px po kartici) */
    width: calc(50% - 8px) !important;
    max-width: calc(50% - 8px) !important;
    flex: 0 0 calc(50% - 8px) !important;
}

/* WC-ovi nth-child(2n) float-right rule-ovi — neutraliziraj */
.woocommerce ul.products li.product:nth-child(2n),
.woocommerce-page ul.products li.product:nth-child(2n),
.woocommerce ul.products[class*="columns-"] li.product:nth-child(2n),
.woocommerce-page ul.products[class*="columns-"] li.product:nth-child(2n) {
    float: none !important;
    clear: none !important;
}

@media (min-width: 768px) {
    #main .woocommerce ul.products li.product,
    #main .woocommerce-page ul.products li.product,
    #main ul.products li.product,
    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product,
    .woocommerce ul.products.columns-1 li.product,
    .woocommerce ul.products.columns-2 li.product,
    .woocommerce ul.products.columns-3 li.product,
    .woocommerce ul.products.columns-4 li.product,
    .woocommerce ul.products.columns-5 li.product,
    .woocommerce ul.products.columns-6 li.product,
    .woocommerce-page ul.products.columns-1 li.product,
    .woocommerce-page ul.products.columns-2 li.product,
    .woocommerce-page ul.products.columns-3 li.product,
    .woocommerce-page ul.products.columns-4 li.product,
    .woocommerce-page ul.products.columns-5 li.product,
    .woocommerce-page ul.products.columns-6 li.product,
    .woocommerce ul.products[class*="columns-"] li.product,
    .woocommerce-page ul.products[class*="columns-"] li.product {
        /* 3 kolone, 24px gap × 2 = 48px; (100% - 48px) / 3 */
        width: calc((100% - 48px) / 3) !important;
        max-width: calc((100% - 48px) / 3) !important;
        flex: 0 0 calc((100% - 48px) / 3) !important;
    }
}

@media (min-width: 1280px) {
    #main .woocommerce ul.products li.product,
    #main .woocommerce-page ul.products li.product,
    #main ul.products li.product,
    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product,
    .woocommerce ul.products.columns-1 li.product,
    .woocommerce ul.products.columns-2 li.product,
    .woocommerce ul.products.columns-3 li.product,
    .woocommerce ul.products.columns-4 li.product,
    .woocommerce ul.products.columns-5 li.product,
    .woocommerce ul.products.columns-6 li.product,
    .woocommerce-page ul.products.columns-1 li.product,
    .woocommerce-page ul.products.columns-2 li.product,
    .woocommerce-page ul.products.columns-3 li.product,
    .woocommerce-page ul.products.columns-4 li.product,
    .woocommerce-page ul.products.columns-5 li.product,
    .woocommerce-page ul.products.columns-6 li.product,
    .woocommerce ul.products[class*="columns-"] li.product,
    .woocommerce-page ul.products[class*="columns-"] li.product {
        /* 4 kolone, 28px gap × 3 = 84px; (100% - 84px) / 4 */
        width: calc((100% - 84px) / 4) !important;
        max-width: calc((100% - 84px) / 4) !important;
        flex: 0 0 calc((100% - 84px) / 4) !important;
    }
}

.woocommerce ul.products li.product:hover {
    box-shadow: var(--opg-shadow-md);
    border-color: var(--opg-brand, #f7bd00);
    transform: translateY(-2px);
}

/* Product link wrapper — image + title */
.woocommerce ul.products li.product a {
    text-decoration: none !important;
    color: inherit !important;
    display: block;
}

/* Product image */
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: var(--opg-cream, #f9f4f0);
    border-radius: 8px;
    margin: 0 0 14px !important;
    padding: 8px;
    box-sizing: border-box;
    transition: transform 0.3s ease;
}

.woocommerce ul.products li.product:hover img {
    transform: scale(1.03);
}

/* Title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.3 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
}

@media (min-width: 768px) {
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 1.05rem !important;
    }
}

/* Price */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product span.price,
.woocommerce ul.products li.product .price .amount {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    font-family: var(--opg-font-body, sans-serif) !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    margin: 0 0 14px !important;
    display: block;
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none !important;
    color: var(--opg-brand-dark, #eb6d2f) !important;
    background: transparent !important;
}

.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price del .amount {
    color: var(--opg-ink-soft, #8b6a63) !important;
    opacity: 0.65;
    font-weight: 400 !important;
    font-size: 0.92rem !important;
}

/* Add to cart button (WC adds .button.add_to_cart_button.product_type_simple) */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.button.product_type_simple {
    margin-top: auto !important; /* push to bottom of flex column */
    background: var(--opg-brand, #f7bd00) !important;
    color: var(--opg-white, #fff) !important;
    font-family: var(--opg-font-heading, sans-serif) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.78rem !important;
    padding: 11px 18px !important;
    border-radius: 6px !important;
    border: 0 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease;
    box-shadow: var(--opg-shadow-sm);
    text-shadow: none !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.add_to_cart_button:hover {
    background: var(--opg-ink, #5a3733) !important;
    color: var(--opg-white, #fff) !important;
}

/* "Loading" + "Added" states (WC AJAX add-to-cart) */
.woocommerce ul.products li.product a.add_to_cart_button.loading {
    opacity: 0.7;
    pointer-events: none;
}

.woocommerce ul.products li.product a.add_to_cart_button.added {
    background: var(--opg-ink, #5a3733) !important;
}

.woocommerce ul.products li.product .added_to_cart {
    display: inline-block !important;
    margin: 8px 0 0 !important;
    color: var(--opg-brand-dark, #eb6d2f) !important;
    font-family: var(--opg-font-body, sans-serif) !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    text-transform: none;
    letter-spacing: 0;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.woocommerce ul.products li.product .added_to_cart:hover {
    color: var(--opg-ink, #5a3733) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* "Read more" / "Select options" buttons (variable products) */
.woocommerce ul.products li.product a.button.product_type_variable,
.woocommerce ul.products li.product a.button.product_type_grouped {
    /* Inherits from generic button styling above */
}

/* On Sale badge */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
    background: var(--opg-brand-dark, #eb6d2f) !important;
    color: var(--opg-white, #fff) !important;
    border-radius: 4px !important;
    padding: 5px 12px !important;
    font-family: var(--opg-font-heading, sans-serif) !important;
    font-size: 0.7rem !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700 !important;
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    z-index: 2;
    line-height: 1.2 !important;
    min-height: 0 !important;
    min-width: 0 !important;
}

/* Out of stock indicator */
.woocommerce ul.products li.product .out-of-stock {
    color: var(--opg-ink-soft, #8b6a63);
    font-style: italic;
    font-size: 0.85rem;
}

/* =========================================================
   Shop archive (WC Blocks — Product Collection / All Products).
   Markup: <ul class="wp-block-post-template wc-block-product-template">
            <li class="wc-block-product wp-block-post product type-product ...">
              ...content...
            </li>
   Različito od legacy <ul.products>; WC u 10.x koristi blokove
   po defaultu na shop arhivi. */

/* Grid wrapper */
#main .wp-block-post-template,
#main .wc-block-product-template,
.wp-block-post-template.wc-block-product-template,
.wp-block-woocommerce-product-collection .wp-block-post-template,
.wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
}

@media (min-width: 768px) {
    #main .wp-block-post-template,
    #main .wc-block-product-template,
    .wp-block-post-template.wc-block-product-template,
    .wp-block-woocommerce-product-collection .wp-block-post-template,
    .wc-block-grid__products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 24px !important;
    }
}

@media (min-width: 1280px) {
    #main .wp-block-post-template,
    #main .wc-block-product-template,
    .wp-block-post-template.wc-block-product-template,
    .wp-block-woocommerce-product-collection .wp-block-post-template,
    .wc-block-grid__products {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 28px !important;
    }
}

/* Individual product card (block markup) */
#main .wp-block-post-template > li,
#main .wp-block-post-template > .wp-block-post,
#main .wc-block-product-template > li,
.wp-block-post-template > li.product,
.wp-block-post-template > .wp-block-post,
.wc-block-product-template > li,
.wc-block-grid__products > li.wc-block-grid__product {
    background: var(--opg-white, #fff) !important;
    border: 1px solid var(--opg-line) !important;
    border-radius: 12px !important;
    box-shadow: var(--opg-shadow-sm) !important;
    padding: 18px !important;
    margin: 0 !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    list-style: none !important;
}

#main .wp-block-post-template > li:hover,
#main .wc-block-product-template > li:hover,
.wp-block-post-template > .wp-block-post:hover,
.wc-block-grid__products > li.wc-block-grid__product:hover {
    box-shadow: var(--opg-shadow-md) !important;
    border-color: var(--opg-brand, #f7bd00) !important;
    transform: translateY(-2px);
}

/* Product image inside block */
.wp-block-post-template .wp-block-woocommerce-product-image,
.wp-block-post-template .wp-block-post-featured-image,
.wc-block-product-template .wp-block-woocommerce-product-image,
.wc-block-grid__product-image,
.wp-block-post-template img,
.wc-block-product-template img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 14px !important;
}

.wp-block-post-template .wp-block-woocommerce-product-image img,
.wp-block-post-template .wp-block-post-featured-image img,
.wc-block-product-template .wp-block-woocommerce-product-image img,
.wc-block-grid__product-image img {
    width: 100% !important;
    aspect-ratio: 1 / 1;
    object-fit: contain !important;
    background: var(--opg-cream, #f9f4f0);
    border-radius: 8px;
    padding: 8px;
    box-sizing: border-box;
}

/* Product title (block) */
.wp-block-post-template .wp-block-post-title,
.wp-block-post-template .wc-block-product__title,
.wp-block-post-template .wp-block-woocommerce-product-title,
.wp-block-post-template .wc-block-grid__product-title,
.wc-block-product-template .wp-block-post-title,
.wc-block-grid__product-title {
    font-family: var(--opg-font-heading, sans-serif) !important;
    color: var(--opg-ink, #5a3733) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.3 !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
}

.wp-block-post-template .wp-block-post-title a,
.wc-block-product-template .wp-block-post-title a,
.wc-block-grid__product-title a,
.wp-block-post-template .wc-block-grid__product-link {
    color: var(--opg-ink, #5a3733) !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
}

.wp-block-post-template .wp-block-post-title a:hover {
    color: var(--opg-brand-dark, #eb6d2f) !important;
}

/* Product price (block) */
.wp-block-post-template .wp-block-woocommerce-product-price,
.wp-block-post-template .wc-block-components-product-price,
.wp-block-post-template .wc-block-grid__product-price,
.wc-block-grid__product-price {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    font-family: var(--opg-font-body, sans-serif) !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    margin: 0 0 14px !important;
    display: block !important;
}

.wp-block-post-template .wc-block-components-product-price__value,
.wc-block-grid__product-price .price {
    color: var(--opg-brand-dark, #eb6d2f) !important;
    font-weight: 700 !important;
}

/* Add to cart button (block) */
.wp-block-post-template .wp-block-button__link,
.wp-block-post-template .wc-block-components-product-button .wp-block-button__link,
.wp-block-post-template .wc-block-button-vertical-align__align-bottom .wp-block-button__link,
.wp-block-post-template a.wc-block-components-product-button__button,
.wc-block-grid__product .wp-block-button__link,
.wc-block-grid__product a.add_to_cart_button {
    margin-top: auto !important;
    background: var(--opg-brand, #f7bd00) !important;
    color: var(--opg-white, #fff) !important;
    font-family: var(--opg-font-heading, sans-serif) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.78rem !important;
    padding: 11px 18px !important;
    border-radius: 6px !important;
    border: 0 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease;
    box-shadow: var(--opg-shadow-sm);
    text-shadow: none !important;
    width: auto !important;
    align-self: stretch;
}

.wp-block-post-template .wp-block-button__link:hover,
.wp-block-post-template a.wc-block-components-product-button__button:hover,
.wc-block-grid__product .wp-block-button__link:hover {
    background: var(--opg-ink, #5a3733) !important;
    color: var(--opg-white, #fff) !important;
}

/* Product collection block — pagination, no-results, sortby */
.wp-block-woocommerce-product-collection-no-results,
.wp-block-query-pagination {
    text-align: center;
    margin-top: 32px;
}

/* Sakrij sort/dropdown unutar block markup-a (parallel s legacy) */
.wp-block-woocommerce-catalog-sorting,
.wc-block-product-sort-select,
.wc-block-active-filters,
.wp-block-woocommerce-product-result-count {
    display: none !important;
}

/* Pagination (donja) */
.woocommerce nav.woocommerce-pagination {
    margin-top: 40px;
    text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
    border: 0 !important;
    display: inline-flex;
    gap: 8px;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: 0 !important;
    margin: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    background: var(--opg-white, #fff) !important;
    color: var(--opg-ink, #5a3733) !important;
    border: 1px solid var(--opg-line) !important;
    border-radius: 6px !important;
    padding: 8px 14px !important;
    font-weight: 600 !important;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--opg-brand, #f7bd00) !important;
    color: var(--opg-white, #fff) !important;
    border-color: var(--opg-brand, #f7bd00) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--opg-brand-dark, #eb6d2f) !important;
    color: var(--opg-white, #fff) !important;
    border-color: var(--opg-brand-dark, #eb6d2f) !important;
}

/* Empty shop state */
.woocommerce-info.woocommerce-no-products-found {
    /* uses generic .woocommerce-info styling iznad */
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
    .wc-block-components-button,
    .wc-block-components-quantity-selector__button,
    .wc-block-cart-item__remove-link,
    .wc-block-components-text-input input,
    .wc-block-components-radio-control__option,
    .wc-block-cart-item__name a,
    .wc-block-checkout__actions a {
        transition: none !important;
    }
}
