/* Theme Name: Botiga Child — Promet Aroma Theme URI: https://prometaroma.hr Description: Child theme za Botiga Pro. CSS tokeni izvučeni iz Claude Design mockupa (lipanj 2026). Author: Nevena Template: botiga Version: 1.0.0 */ /* ============================================================ 1. DESIGN TOKENS Sve vrijednosti izvučene iz Promet Aroma - demo.html ============================================================ */ :root { /* --- Boje (Brand paleta) --- */ --pa-ink: #0A0A0A; /* primarna crna — tekst, primarni gumb */ --pa-wood: #452607; /* tamno drvo — stat brojevi, akcenti */ --pa-wood-dark: #1A1206; /* najtamnija varijanta — overlay tekst */ --pa-wood-mid: #3A2A16; /* border na tamnoj pozadini */ --pa-leather: #543B21; /* koža — newsletter sekcija pozadina */ --pa-leather-2: #6E5235; /* border inputa na tamnoj pozadini */ --pa-bronze: #B27746; /* bronca — eyebrow, ikone, akcenti, linkovi */ --pa-bronze-dark:#C98C57; /* bronca hover */ --pa-alert: #D81616; /* jedino za akciju/popust/greška/badge */ --pa-white: #FFFFFF; /* --- Siva/neutralna skala (topla, ne plavo-hladna) --- */ --pa-bg: #EDE7DC; /* body pozadina (page background) */ --pa-bg-card: #FFFFFF; /* kartice */ --pa-bg-section: #EDE7DC; /* alternativne sekcije */ --pa-border: #E4DDCF; /* default border — kartice, input, header */ --pa-border-2: #DBD2C2; /* sekundarni divider */ --pa-text-body: #574B3C; /* tijelo teksta — paragrafi */ --pa-text-muted: #8A8073; /* sekundarni tekst, caption, cijena/jed */ --pa-text-light: #9A9082; /* placeholder, disabled */ --pa-text-price-old: #9A9082; /* stara cijena (precrtana) */ --pa-bg-header-scroll: rgba(255,255,255,0.96); /* sticky header */ /* --- Fontovi --- */ --pa-font-display: 'Fraunces', serif; /* naslovi, logo, cijene */ --pa-font-body: 'Karla', system-ui, sans-serif; /* UI, tekst, gumbi */ --pa-font-mono: 'JetBrains Mono', monospace; /* brojevi, SKU, spec, eyebrow */ /* --- Spacing (4px baza) --- */ --pa-space-1: 4px; --pa-space-2: 8px; --pa-space-3: 12px; --pa-space-4: 16px; --pa-space-6: 24px; --pa-space-8: 32px; --pa-space-10: 40px; --pa-space-12: 48px; --pa-space-14: 56px; --pa-space-16: 64px; --pa-space-18: 72px; --pa-space-20: 80px; /* --- Layout --- */ --pa-container: 1280px; --pa-container-pad-desktop: 32px; --pa-container-pad-mobile: 16px; /* --- Border radius --- */ --pa-radius-none: 0px; /* kartice, slike — oštar rub */ --pa-radius-btn: 2px; /* gumbi, inputi, mali elementi */ --pa-radius-modal: 4px; /* modali, popupi */ /* --- Sjene (minimalne, samo funkcionalne) --- */ --pa-shadow-none: none; --pa-shadow-sm: 0 1px 3px rgba(10,10,10,0.08); --pa-shadow-md: 0 4px 12px rgba(10,10,10,0.12); --pa-shadow-lg: 0 12px 32px rgba(10,10,10,0.18); /* --- Animacije --- */ --pa-duration-fast: 150ms; --pa-duration-base: 180ms; /* mockup koristi .18s */ --pa-duration-slow: 400ms; --pa-ease-out: cubic-bezier(0.16, 1, 0.3, 1); /* --- Z-index --- */ --pa-z-dropdown: 100; --pa-z-header: 200; --pa-z-nav: 300; --pa-z-modal: 410; --pa-z-toast: 500; } /* ============================================================ 2. GOOGLE FONTS IMPORT Fraunces + Karla + JetBrains Mono (self-host woff2 radi GDPR ako je potrebno — zamijeni @import s @font-face) ============================================================ */ @import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@400;500;600;700&family=Karla:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap'); /* ============================================================ 3. BASE / RESET ============================================================ */ body { font-family: var(--pa-font-body); background-color: var(--pa-bg); color: var(--pa-ink); } ::selection { background: var(--pa-bronze); color: var(--pa-wood-dark); } *, *::before, *::after { box-sizing: border-box; } /* ============================================================ 4. TIPOGRAFIJA ============================================================ */ /* Display / Naslovi */ h1, h2, h3, h4, .pa-display { font-family: var(--pa-font-display); color: var(--pa-ink); } h1 { font-size: clamp(2.25rem, 4vw + 1rem, 3.625rem); /* mockup: 58px */ font-weight: 600; line-height: 1.02; letter-spacing: -0.025em; } h2 { font-size: clamp(1.875rem, 3vw + 0.5rem, 2.5rem); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; } h3 { font-size: clamp(1.1875rem, 2vw, 1.875rem); /* mockup: 30px */ font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; } h4 { font-size: 1.1875rem; /* 19px — category card, blog title */ font-weight: 600; line-height: 1.25; } /* Eyebrow label — sekcijski naslovi iznad H */ .pa-eyebrow { font-family: var(--pa-font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--pa-bronze); } /* Micro eyebrow — announcement bar, header subtitle */ .pa-eyebrow-xs { font-family: var(--pa-font-mono); font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--pa-bronze); } /* Body */ p, li, td, th { font-family: var(--pa-font-body); font-size: 1rem; line-height: 1.6; color: var(--pa-text-body); } /* Caption / Meta */ .pa-caption { font-family: var(--pa-font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--pa-text-muted); } /* Tehnički podaci — specifikacije, SKU, cijena/jedinica */ .pa-mono, .pa-spec, .pa-sku, .pa-price-unit { font-family: var(--pa-font-mono); } /* ============================================================ 5. CONTAINER ============================================================ */ .pa-container { max-width: var(--pa-container); margin: 0 auto; padding-left: var(--pa-container-pad-desktop); padding-right: var(--pa-container-pad-desktop); } @media (max-width: 767px) { .pa-container { padding-left: var(--pa-container-pad-mobile); padding-right: var(--pa-container-pad-mobile); } } /* ============================================================ 6. ANNOUNCEMENT BAR ============================================================ */ .pa-announcement-bar { background: var(--pa-ink); color: var(--pa-white); } .pa-announcement-bar .pa-announcement-inner { max-width: var(--pa-container); margin: 0 auto; padding: 9px var(--pa-container-pad-desktop); display: flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--pa-font-mono); font-size: 11.5px; letter-spacing: 0.06em; } /* ============================================================ 7. HEADER — override Botiga defaults ============================================================ */ /* Sticky header pozadina na scrollu */ .botiga-sticky-header, .site-header.is-sticky { background: var(--pa-bg-header-scroll) !important; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--pa-border) !important; box-shadow: none !important; /* Botiga dodaje sjenu, mi je ne želimo */ } /* Logo tipografija */ .site-branding .site-title, .site-branding .site-title a { font-family: var(--pa-font-display) !important; font-size: 23px !important; font-weight: 600 !important; letter-spacing: -0.02em !important; color: var(--pa-ink) !important; text-decoration: none; } /* Logo eyebrow tagline */ .site-branding .site-description { font-family: var(--pa-font-mono) !important; font-size: 9px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; color: var(--pa-bronze) !important; } /* Navigacija — menu items */ .main-navigation a { font-family: var(--pa-font-body); font-size: 14px; font-weight: 500; color: var(--pa-ink); text-decoration: none; letter-spacing: 0.01em; transition: color var(--pa-duration-fast) ease; } .main-navigation a:hover, .main-navigation .current-menu-item > a { color: var(--pa-bronze); } /* "Akcije" link u meniju — crvena (označen u mockupu) */ .main-navigation .menu-item-akcije > a { color: var(--pa-alert); font-weight: 600; } /* Icon gumbi (search, account, wishlist) */ .botiga-header-icons .header-icon, .botiga-header__icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--pa-ink); border-radius: var(--pa-radius-btn); transition: background var(--pa-duration-fast) ease, color var(--pa-duration-fast) ease; } .botiga-header-icons .header-icon:hover, .botiga-header__icon:hover { background: rgba(10,10,10,0.06); color: var(--pa-bronze); } /* Cart icon badge */ .botiga-header__cart-count, .cart-count { background: var(--pa-alert) !important; color: var(--pa-white) !important; border-radius: 9px !important; font-family: var(--pa-font-mono) !important; font-size: 9px !important; font-weight: 600 !important; min-width: 16px; height: 16px; padding: 0 3px; } /* Wishlist icon — ako je activan */ .botiga-header__wishlist-count { background: var(--pa-alert) !important; color: var(--pa-white) !important; border-radius: 9px !important; font-family: var(--pa-font-mono) !important; font-size: 9px !important; font-weight: 600 !important; } /* ============================================================ 8. GUMBI ============================================================ */ /* Primary CTA */ .button, .wp-block-button__link, .btn-primary, input[type="submit"], .single_add_to_cart_button, .checkout-button { font-family: var(--pa-font-body) !important; font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0.01em !important; padding: 15px 28px !important; background: var(--pa-ink) !important; color: var(--pa-white) !important; border: none !important; border-radius: var(--pa-radius-btn) !important; cursor: pointer; transition: background var(--pa-duration-base) ease !important; text-decoration: none; } .button:hover, .wp-block-button__link:hover, .btn-primary:hover, input[type="submit"]:hover, .single_add_to_cart_button:hover, .checkout-button:hover { background: var(--pa-wood) !important; color: var(--pa-white) !important; } /* "Dodaj u košaricu" na product listi — manji */ .woocommerce ul.products li.product .button, .loop-add-to-cart .button { font-size: 13px !important; font-weight: 600 !important; padding: 11px 12px !important; width: 100%; letter-spacing: 0.02em !important; } /* Secondary / Outline gumb */ .btn-secondary, .button.alt, .woocommerce-Button { font-family: var(--pa-font-body) !important; font-size: 15px !important; font-weight: 600 !important; padding: 14px 28px !important; background: transparent !important; color: var(--pa-ink) !important; border: 1px solid var(--pa-ink) !important; border-radius: var(--pa-radius-btn) !important; transition: background var(--pa-duration-base) ease !important; } .btn-secondary:hover, .button.alt:hover { background: rgba(10,10,10,0.06) !important; } /* Newsletter gumb (bronca pozadina) */ .pa-newsletter-btn { padding: 14px 24px; background: var(--pa-bronze); color: var(--pa-wood-dark); border: none; border-radius: var(--pa-radius-btn); font-family: var(--pa-font-body); font-size: 14px; font-weight: 700; cursor: pointer; white-space: nowrap; transition: background var(--pa-duration-base) ease; } .pa-newsletter-btn:hover { background: var(--pa-bronze-dark); } /* Disabled stanje */ .button:disabled, .button[disabled] { opacity: 0.4; cursor: not-allowed; } /* Focus — accessibility */ .button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible { outline: 2px solid var(--pa-bronze); outline-offset: 2px; } /* ============================================================ 9. FORME / INPUTI ============================================================ */ input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], select, textarea { font-family: var(--pa-font-body); font-size: 14px; color: var(--pa-ink); background: var(--pa-white); border: 1px solid var(--pa-border); border-radius: var(--pa-radius-btn); padding: 12px 16px; height: 48px; outline: none; transition: border-color var(--pa-duration-fast) ease; } textarea { height: auto; min-height: 120px; resize: vertical; } input:focus, select:focus, textarea:focus { border-color: var(--pa-bronze); box-shadow: 0 0 0 2px rgba(178,119,70,0.15); } input::placeholder, textarea::placeholder { color: var(--pa-text-light); } /* Newsletter input (na tamnoj pozadini) */ .pa-newsletter-input { width: 280px; padding: 14px 16px; background: var(--pa-white); border: 1px solid var(--pa-leather-2); border-radius: var(--pa-radius-btn); font-family: var(--pa-font-body); font-size: 14px; color: var(--pa-ink); outline: none; } /* ============================================================ 10. PRODUCT CARD Najvažnija ponavljajuća komponenta — dosljedna kroz cijeli sajt ============================================================ */ /* Kartica wrapper */ .woocommerce ul.products li.product, .pa-product-card { background: var(--pa-bg-card); border: 1px solid var(--pa-border); border-radius: var(--pa-radius-none); /* oštar rub */ font-family: var(--pa-font-body); transition: border-color var(--pa-duration-base) ease; height: 100%; position: relative; } .woocommerce ul.products li.product:hover, .pa-product-card:hover { border-color: var(--pa-bronze); box-shadow: none; /* nema sjene, samo promjena border boje */ } /* Badge — Akcija */ .woocommerce ul.products li.product .onsale, .pa-badge-sale { position: absolute; top: 10px; left: 10px; background: var(--pa-alert); color: var(--pa-white); font-family: var(--pa-font-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 8px; border-radius: 0; /* oštro, ne pill */ margin: 0; z-index: 2; } /* Badge — Bestseller / Featured */ .pa-badge-bestseller { position: absolute; top: 10px; left: 10px; background: var(--pa-bronze); color: var(--pa-wood-dark); /* NE bijeli tekst — kontrast ne prolazi */ font-family: var(--pa-font-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 8px; z-index: 2; } /* Wishlist gumb na kartici */ .pa-card-wishlist, .yith-wcwl-add-to-wishlist.on-loop { position: absolute; top: 8px; right: 8px; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.92); border: 1px solid var(--pa-border); border-radius: 0; /* oštar */ cursor: pointer; transition: border-color var(--pa-duration-fast) ease; z-index: 2; } .pa-card-wishlist:hover { border-color: var(--pa-bronze); } /* Kategorija label na kartici (eyebrow) */ .woocommerce ul.products li.product .pa-card-category, .pa-card-category { font-family: var(--pa-font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pa-bronze); display: block; margin-bottom: 4px; } /* Naziv proizvoda */ .woocommerce ul.products li.product .woocommerce-loop-product__title, .pa-card-title { font-family: var(--pa-font-display); font-size: 16px; font-weight: 500; line-height: 1.25; color: var(--pa-ink); text-decoration: none; letter-spacing: -0.01em; margin: 0; } /* Cijena — stara (precrtana) */ .woocommerce ul.products li.product .price del, .pa-price-old { font-family: var(--pa-font-mono); font-size: 13px; color: var(--pa-text-price-old); text-decoration: line-through; } /* Cijena — nova / akcijska */ .woocommerce ul.products li.product .price ins, .pa-price-sale { font-family: var(--pa-font-mono); font-size: 17px; font-weight: 600; color: var(--pa-alert); text-decoration: none; margin-left: 8px; } /* Cijena — regularna */ .woocommerce ul.products li.product .price, .pa-price-regular { font-family: var(--pa-font-mono); font-size: 17px; font-weight: 600; color: var(--pa-ink); } /* Cijena po jedinici (npr. €/kg za kavu) */ .pa-price-unit, .woocommerce .price .price-unit { font-family: var(--pa-font-mono); font-size: 10px; color: var(--pa-text-muted); letter-spacing: 0.02em; display: block; margin-top: 2px; } /* Card content padding */ .woocommerce ul.products li.product .product-inner, .pa-card-body { padding: 12px 14px 14px; } /* ============================================================ 11. PRODUCT PAGE ============================================================ */ /* Naziv (H1) na product page */ .product_title.entry-title { font-family: var(--pa-font-display); font-size: clamp(1.875rem, 3vw, 2.5rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; color: var(--pa-ink); } /* Brend label iznad naslova */ .pa-product-brand-label { font-family: var(--pa-font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pa-bronze); display: block; margin-bottom: var(--pa-space-2); } /* Cijena na product page */ .woocommerce div.product p.price, .woocommerce div.product span.price { font-family: var(--pa-font-mono); font-size: 1.5rem; font-weight: 600; color: var(--pa-ink); } .woocommerce div.product p.price del { font-size: 1rem; color: var(--pa-text-price-old); } .woocommerce div.product p.price ins { color: var(--pa-alert); text-decoration: none; } /* Omnibus napomena (najniža cijena 30 dana) */ .pa-omnibus-note, .omnibus-lowest-price { font-family: var(--pa-font-mono); font-size: 11px; letter-spacing: 0.04em; color: var(--pa-text-muted); display: block; margin-top: var(--pa-space-1); } /* Stat/specifikacija blokovi (npr. 16 bara, 0.9 L, 30 god.) */ .pa-stat-value { font-family: var(--pa-font-mono); font-size: 22px; font-weight: 600; color: var(--pa-wood); } .pa-stat-label { font-family: var(--pa-font-mono); font-size: 11px; color: var(--pa-text-muted); letter-spacing: 0.04em; } /* ============================================================ 12. SEKCIJE — naslovi i raspored ============================================================ */ /* Standardni section naslov + eyebrow */ .pa-section-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: var(--pa-space-6); } .pa-section-title { font-family: var(--pa-font-display); font-size: clamp(1.875rem, 3vw, 2.25rem); /* mockup: 30px */ font-weight: 600; letter-spacing: -0.02em; margin: 6px 0 0; } /* Centrirani section naslov */ .pa-section-title--center { text-align: center; margin: 0 0 var(--pa-space-6); } /* "Pogledaj sve →" link */ .pa-section-link { font-family: var(--pa-font-body); font-size: 14px; font-weight: 600; color: var(--pa-ink); text-decoration: none; border-bottom: 2px solid var(--pa-bronze); padding-bottom: 3px; transition: color var(--pa-duration-fast) ease; } .pa-section-link:hover { color: var(--pa-bronze); } /* Sekcija spacing */ .pa-section { padding: var(--pa-space-16) 0; } @media (max-width: 767px) { .pa-section { padding: var(--pa-space-8) 0; } } /* ============================================================ 13. USP / TRUST SEKCIJA (tamna pozadina) ============================================================ */ .pa-usp-section { background: var(--pa-ink); padding: var(--pa-space-12) 0; } .pa-usp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; } .pa-usp-item { display: flex; flex-direction: column; gap: 12px; padding-right: var(--pa-space-6); border-right: 1px solid var(--pa-wood-mid); } .pa-usp-item:last-child { border-right: none; padding-right: 0; } .pa-usp-icon { color: var(--pa-bronze); } .pa-usp-title { font-family: var(--pa-font-display); font-size: 17px; line-height: 1.45; color: var(--pa-white); margin: 0 0 4px; } .pa-usp-text { font-family: var(--pa-font-mono); font-size: 11px; color: var(--pa-text-muted); letter-spacing: 0.04em; } @media (max-width: 767px) { .pa-usp-grid { grid-template-columns: repeat(2, 1fr); } .pa-usp-item { border-right: none; padding-right: 0; border-bottom: 1px solid var(--pa-wood-mid); padding-bottom: var(--pa-space-3); } .pa-usp-item:last-child { border-bottom: none; } } /* ============================================================ 14. NEWSLETTER SEKCIJA (koža pozadina) ============================================================ */ .pa-newsletter-section { background: var(--pa-leather); padding: 48px 56px; } .pa-newsletter-title { font-family: var(--pa-font-display); font-size: 28px; font-weight: 600; color: var(--pa-white); margin: 0 0 8px; } .pa-newsletter-subtitle { font-family: var(--pa-font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--pa-text-muted); } .pa-newsletter-form { display: flex; gap: 0; } @media (max-width: 767px) { .pa-newsletter-section { padding: var(--pa-space-8) var(--pa-space-4); } .pa-newsletter-form { flex-direction: column; gap: var(--pa-space-2); } .pa-newsletter-input { width: 100%; } } /* ============================================================ 15. CATEGORY CARDS ============================================================ */ .pa-category-card { display: block; text-decoration: none; border: 1px solid var(--pa-border); background: var(--pa-white); transition: border-color var(--pa-duration-base) ease; position: relative; overflow: hidden; } .pa-category-card:hover { border-color: var(--pa-bronze); } .pa-category-card img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform var(--pa-duration-slow) ease; } .pa-category-card:hover img { transform: scale(1.03); } .pa-category-card-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(10,10,10,0.6), transparent); padding: 24px 18px 18px; } .pa-category-card-title { font-family: var(--pa-font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pa-bronze); display: block; } .pa-category-card-name { font-family: var(--pa-font-display); font-size: 19px; font-weight: 600; line-height: 1.25; color: var(--pa-white); margin: 8px 0 0; } /* ============================================================ 16. BREADCRUMB ============================================================ */ .woocommerce-breadcrumb, .breadcrumb, .pa-breadcrumb { font-family: var(--pa-font-body); font-size: 13px; color: var(--pa-text-muted); padding: var(--pa-space-3) 0; } .woocommerce-breadcrumb a, .breadcrumb a { color: var(--pa-text-muted); text-decoration: none; transition: color var(--pa-duration-fast) ease; } .woocommerce-breadcrumb a:hover, .breadcrumb a:hover { color: var(--pa-bronze); } .woocommerce-breadcrumb .separator, .breadcrumb .separator { margin: 0 6px; color: var(--pa-border-2); } /* ============================================================ 17. WOOCOMMERCE OVERRIDE — opće ============================================================ */ /* Ukloni default Botiga/Woo plavu, zamijeni s our paletom */ .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { background-color: var(--pa-ink) !important; color: var(--pa-white) !important; border-radius: var(--pa-radius-btn) !important; font-family: var(--pa-font-body) !important; font-weight: 600 !important; } .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background-color: var(--pa-wood) !important; color: var(--pa-white) !important; } /* Woo notice / info poruke */ .woocommerce-info { border-top-color: var(--pa-bronze) !important; } .woocommerce-info::before { color: var(--pa-bronze) !important; } /* Star rating */ .woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--pa-bronze); } /* ============================================================ 18. FOOTER ============================================================ */ .site-footer, #colophon { background: var(--pa-ink); color: var(--pa-white); font-family: var(--pa-font-body); font-size: 14px; } .site-footer a { color: var(--pa-text-muted); text-decoration: none; transition: color var(--pa-duration-fast) ease; } .site-footer a:hover { color: var(--pa-bronze); } .site-footer .widget-title { font-family: var(--pa-font-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--pa-bronze); margin-bottom: var(--pa-space-4); } /* ============================================================ 19. ANIMACIJE — fade-in na scroll ============================================================ */ @keyframes pa-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } .pa-fade-in { animation: pa-fade-in var(--pa-duration-slow) var(--pa-ease-out) both; } /* Poštuj prefers-reduced-motion */ @media (prefers-reduced-motion: reduce) { .pa-fade-in, *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } } /* ============================================================ 20. RESPONSIVE HELPERS ============================================================ */ @media (max-width: 1279px) { :root { --pa-container-pad-desktop: 32px; } } @media (max-width: 767px) { /* Sakrij tekst u announcement baru ako je predugačak */ .pa-announcement-bar .pa-hide-mobile { display: none; } /* Horizontalni scroll za product grids na mobile */ .pa-grid-scroll-mobile { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 8px; } .pa-grid-scroll-mobile > * { flex: 0 0 75vw; max-width: 280px; scroll-snap-align: start; } /* Sticky add-to-cart traka na dnu (mobile) */ .pa-sticky-atc { position: fixed; bottom: 0; left: 0; right: 0; z-index: var(--pa-z-header); background: var(--pa-white); border-top: 1px solid var(--pa-border); padding: 12px var(--pa-container-pad-mobile); display: flex; align-items: center; gap: 12px; box-shadow: var(--pa-shadow-md); transform: translateY(100%); transition: transform var(--pa-duration-base) ease; } .pa-sticky-atc.is-visible { transform: translateY(0); } } /* ============================================================ 21. MIGRIRANI STILOVI (stari Customizer CSS — čišćeno i usklađeno) Originalni CSS pretvoren u tokene i dodan ovdje. Datum migracije: lipanj 2026. ============================================================ */ /* --- Gumbi — border radius (potvrda iz Design Systema) --- */ .button, .wp-element-button { border-radius: var(--pa-radius-btn) !important; /* 2px */ } /* --- Specifični gumbi na stranicama --- */ .gumb-telefon a.wp-element-button, .gumb-mail a.wp-element-button { border-color: var(--pa-white); border-radius: var(--pa-radius-btn) !important; background-color: var(--pa-alert); } .gumb-onama a.wp-element-button, .gumb-shop a.wp-element-button { border-color: var(--pa-white); border-radius: var(--pa-radius-btn) !important; background-color: var(--pa-leather); } a.gumb-kontakt { border-color: var(--pa-white); border-radius: var(--pa-radius-btn) !important; background-color: var(--pa-bronze); } /* --- Badge "Na sniženju" (onsale) --- */ span.onsale { border-radius: 0; background: var(--pa-alert); color: var(--pa-white); font-family: var(--pa-font-mono); font-size: 10px !important; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; top: 10px !important; left: 10px !important; padding: 4px 8px !important; height: auto; width: auto; text-align: center; line-height: 1.4; } div.product-gallery-summary span.onsale { border-radius: 0; background: var(--pa-alert); color: var(--pa-white); font-family: var(--pa-font-mono); font-size: 11px !important; font-weight: 600; top: 0 !important; left: 0 !important; padding: 5px 10px !important; height: auto; width: auto; } /* --- Cart header ikona badge --- */ .site-header-cart .count-number, .header-wishlist-icon .count-number { background: var(--pa-alert); border: 1px solid var(--pa-alert); } /* --- Product naslovi — ZAMJENA Roboto s Fraunces --- */ ul.products li.product .botiga-wc-loop-product__title, ul.products li.product .woocommerce-loop-product__title, ul.products li.product .wc-block-grid__product-title, ul.wc-block-grid__products li.product .woocommerce-loop-product__title, ul.wc-block-grid__products li.wc-block-grid__product .woocommerce-loop-product__title { font-family: var(--pa-font-display) !important; /* Fraunces — zamjena za Roboto */ font-size: var(--bt-font-size-prod-card-title, 16px); font-weight: 500; letter-spacing: -0.01em; text-transform: none; text-decoration: none; word-break: break-word; transition: color 300ms ease; margin-bottom: 5px !important; } /* --- Product card spacing --- */ ul.wc-block-grid__products li.product > *, ul.products li.product > * { margin-bottom: 5px !important; } /* --- Add to cart gumb na listi --- */ .add_to_cart_button { font-family: var(--pa-font-body); font-size: 13px !important; font-weight: 600 !important; padding: 11px 12px !important; letter-spacing: 0.02em; } .add_to_cart_button.added { display: none !important; } .added_to_cart { color: var(--pa-ink) !important; background-color: var(--pa-white); font-family: var(--pa-font-body); font-size: 13px !important; padding: 5px 15px !important; text-decoration: underline !important; text-transform: uppercase !important; } /* --- Product card — CROSS-FADE hover (zamjena zoom efekta) --- Zahtijeva: drugi data-* image na loop kartici (Botiga Pro opcija) Kada Botiga Pro ima opciju "secondary image on hover" — ovo radi automatski. Ako ne, zadržaj kao fallback opacity promjenu. */ .loop-image-wrap { overflow: hidden; position: relative; } /* Ukloni stari zoom */ .loop-image-wrap:hover { transform: none; } /* Cross-fade: primarna slika se blago stanjuje na hover kartice */ .loop-image-wrap img.wp-post-image { transition: opacity var(--pa-duration-base) ease; opacity: 1; } li.product:hover .loop-image-wrap img.wp-post-image { opacity: 0; /* fade out primarne — sekundarna dolazi ispod */ } /* Sekundarna slika (Botiga Pro "secondary image" klasa) */ .loop-image-wrap img.secondary-image, .loop-image-wrap .botiga-secondary-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity var(--pa-duration-base) ease; } li.product:hover .loop-image-wrap img.secondary-image, li.product:hover .loop-image-wrap .botiga-secondary-img { opacity: 1; } /* Fallback: ako nema sekundarne slike, zadrži primarnu vidljivom */ li.product:hover .loop-image-wrap img.wp-post-image:only-child { opacity: 1; } /* --- Cijena — ne lomi se u liniju --- */ @media screen and (min-width: 720px) { span.amount { white-space: nowrap; } } /* --- Cijena s uključenim porezom --- */ .includes_tax span.woocommerce-Price-amount { font-size: 1rem !important; } /* --- Sortiranje dropdown --- */ .woocommerce-sorting-wrapper select { padding: 10px 35px 10px 20px !important; font-size: 0.9em; max-width: 220px; min-height: auto; } /* --- Loop add to cart pozicija --- */ .loop-image-wrap > .add_to_cart_button { top: 60% !important; } .loop-image-wrap > .loop-button-wrap.button-layout3 { top: 65% !important; } /* --- Content wrapper --- */ .content-wrapper { margin-top: 10px !important; margin-bottom: 10px !important; } /* --- Košarica / Cart --- */ .woocommerce-cart .cart_totals th { text-transform: none !important; font-size: 15px !important; font-weight: 400; letter-spacing: 0 !important; } .woocommerce-cart .cart_totals th, .woocommerce-cart .cart_totals td { padding-right: 15px !important; } .woocommerce-cart table { word-break: normal; } table.shop_table_responsive tr td::before { padding-right: 6px !important; } /* --- Checkout — shipping prikaz --- */ .checkout-wrapper #shipping_method .woocommerce-Price-amount { position: inherit !important; } .checkout-wrapper #shipping_method > li { padding-right: 0px !important; } /* --- Accordion (opis proizvoda) --- */ .botiga-tabs-position-default .botiga-accordion { margin-top: 30px !important; margin-bottom: 10px !important; } .botiga-accordion__header { color: var(--pa-ink); font-family: var(--pa-font-body); font-weight: 600; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.03em; } .botiga-accordion__body-content { padding-left: 50px !important; } .botiga-accordion__item { border: 0px !important; } .botiga-accordion-additional_information { padding-left: 50px !important; } table.woocommerce-product-attributes th, table.woocommerce-product-attributes td, table.woocommerce-product-attributes tr { border: 0px !important; } /* --- Related / Upsell / Recently viewed --- */ .related.products, .upsells.products, .recently-viewed-products { padding-top: 30px !important; padding-bottom: 10px !important; } .single-product .site-main > .product > section.products:last-child { margin-bottom: 0 !important; } /* --- "Nema na zalihi" gumb --- */ ul.products.columns-5 li.product .button-layout2 .button { background-color: var(--pa-ink); opacity: 0.5; } .product-equal-height ul.products li.product .add_to_cart_button { opacity: 1 !important; } /* --- Linija separator --- */ hr.linija-siva { background-color: var(--pa-border); margin-bottom: 1.5em; margin-top: 1.5em; height: 1px; border: none; } /* --- Sticky add to cart pozadina --- */ .botiga-single-sticky-add-to-cart-wrapper.position-bottom { bottom: 0; transition: ease bottom 300ms; background-color: rgba(255, 255, 255, 0.96); backdrop-filter: blur(8px); border-top: 1px solid var(--pa-border); } /* --- Back to top --- */ .back-to-top { padding: 5px; } /* --- Footer razmak (mobile) --- */ .bhfb-above_footer_row { padding-top: 15px; padding-bottom: 15px; } /* --- Botiga credits boja --- */ .bhfb .botiga-credits { color: var(--pa-text-muted); font-size: 0.9em; } /* --- Monri / WSPay logos --- */ img.monripay { height: 40px; } div.monrilogos { text-align: center !important; } .bhfb-column-1 { align-items: center !important; } /* --- Partner/brand logo skaliranje --- */ img.image-prometaroma, img.image-pellini, img.image-gaggia { max-width: 80%; } /* --- Kontakt ikone --- */ .icon-address { padding-left: 44px; background: url('/wp-content/uploads/2023/11/icon-address.png') no-repeat left top; padding-top: 0; } .icon-mail { padding-left: 44px; background: url('/wp-content/uploads/2023/11/icon-mail.png') no-repeat left top; padding-top: 8px; } .icon-phone { padding-left: 44px; background: url('/wp-content/uploads/2023/11/icon-phone.png') no-repeat left top; padding-top: 7px; } .icon-mobile { padding-left: 44px; background: url('/wp-content/uploads/2023/11/icon-mobile.png') no-repeat left top; padding-top: 10px; } /* --- Cookie consent (CookieYes) --- */ .cky-btn-revisit-wrapper { background: var(--pa-wood) !important; } .cky-btn-accept { background: var(--pa-wood) !important; color: var(--pa-white) !important; border: 2px solid var(--pa-wood) !important; } .cky-btn-reject, .cky-btn-preferences, .cky-btn-customize { color: var(--pa-wood) !important; background: transparent !important; border: 2px solid var(--pa-wood) !important; } /* --- Dropdown mobilni meni razmak --- */ .botiga-dropdown .botiga-dropdown-ul { padding-top: 20px; } /* --- Widget razmaci --- */ .widget { margin: 0 0 5px; padding-bottom: 5px; } /* --- Gap između Gutenberg kolona --- */ :where(.wp-block-columns.is-layout-flex) { gap: 0.5em !important; } /* --- WC block grid image padding --- */ .wc-block-grid__products .wc-block-grid__product-image { padding-bottom: 5px !important; } .loop-image-wrap { padding-bottom: 5px !important; } /* ============================================================ 22. MOBILNI FIX-EVI (migrirani) ============================================================ */ @media (max-width: 767px) { /* Galerija proizvoda — puna širina */ .single-product div.product .woocommerce-product-gallery, .single-product div.product .product-gallery-summary, .single-product div.product .flex-viewport { width: 100% !important; max-width: 100% !important; } /* Makni višak prostora ispod galerije */ .woocommerce div.product div.images, .woocommerce-product-gallery, .woocommerce-product-gallery__wrapper { margin-bottom: 0 !important; padding-bottom: 0 !important; min-height: auto !important; } /* Mobilni meni razmak */ .mobile-menu, .offcanvas-menu, .sidr-inner { padding-top: 60px !important; } .sidr-close, .offcanvas-close { top: 20px !important; right: 20px !important; } }