:root {
    --gs-primary: #2e7d32;
    --gs-primary-dark: #1b5e20;
    --gs-dark: #1a1a2e;
    --gs-accent: #4caf50;
}

body { font-family: 'Poppins', sans-serif; color: #333; }

/* Top bar */
.top-bar { background: var(--gs-dark); color: #fff; font-size: 0.85rem; padding: 8px 0; }
.top-bar a { color: #fff; text-decoration: none; }
.top-bar a:hover { color: var(--gs-accent); }

/* Navbar */
.navbar-shop { background: #fff; box-shadow: 0 2px 15px rgba(0,0,0,.08); padding: 12px 0; }
.navbar-brand-shop { font-weight: 700; font-size: 1.5rem; color: var(--gs-dark) !important; }
.navbar-brand-shop span { color: var(--gs-primary); }
.nav-link-shop { font-weight: 500; color: #444 !important; padding: 8px 16px !important; border-radius: 6px; transition: all .2s; }
.nav-link-shop:hover, .nav-link-shop.active { color: var(--gs-primary) !important; background: rgba(46,125,50,.08); }
.btn-shop-primary { background: var(--gs-primary); border-color: var(--gs-primary); color: #fff; font-weight: 600; }
.btn-shop-primary:hover { background: var(--gs-primary-dark); border-color: var(--gs-primary-dark); color: #fff; }
.btn-shop-outline { border: 2px solid var(--gs-primary); color: var(--gs-primary); font-weight: 600; }
.btn-shop-outline:hover { background: var(--gs-primary); color: #fff; }
.cart-badge { position: absolute; top: -5px; right: -8px; background: var(--gs-primary); color: #fff; font-size: 0.7rem; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }

/* Hero */
.hero-carousel .carousel-item { height: 520px; }
.hero-carousel .carousel-item img { object-fit: cover; height: 100%; width: 100%; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(26,26,46,.85) 0%, rgba(26,26,46,.4) 100%); display: flex; align-items: center; }
.hero-content h1 { font-size: 3rem; font-weight: 700; color: #fff; }
.hero-content p { font-size: 1.2rem; color: rgba(255,255,255,.9); }

/* Section titles */
.section-title { text-align: center; margin-bottom: 3rem; }
.section-title h2 { font-weight: 700; font-size: 2rem; color: var(--gs-dark); position: relative; display: inline-block; }
.section-title h2::after { content: ''; display: block; width: 60px; height: 4px; background: var(--gs-primary); margin: 12px auto 0; border-radius: 2px; }
.section-title p { color: #777; margin-top: 12px; }

/* Category cards */
.category-card { border: none; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,.08); transition: transform .3s, box-shadow .3s; text-decoration: none; color: inherit; display: block; }
.category-card:hover { transform: translateY(-6px); box-shadow: 0 12px 30px rgba(0,0,0,.15); color: inherit; }
.category-card img { height: 200px; object-fit: cover; width: 100%; }
.category-card .card-body { padding: 1.25rem; }
.category-card .badge-count { background: rgba(46,125,50,.1); color: var(--gs-primary); font-weight: 600; }

/* Product cards */
.product-card { border: none; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,.08); transition: transform .3s, box-shadow .3s; height: 100%; }
.product-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,.12); }
.product-card .card-img-top { height: 220px; object-fit: cover; }
.product-card .price { font-size: 1.25rem; font-weight: 700; color: var(--gs-primary); }
.product-card .card-body { display: flex; flex-direction: column; }
.product-card .card-footer-actions { margin-top: auto; padding-top: 1rem; }

/* Testimonials */
.testimonial-card { background: #fff; border-radius: 12px; padding: 1.5rem; box-shadow: 0 4px 20px rgba(0,0,0,.06); height: 100%; }
.testimonial-card .stars { color: #fbbf24; }
.testimonial-avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 3px solid var(--gs-primary); }

/* Stats / CTA */
.stats-section { background: linear-gradient(135deg, var(--gs-dark) 0%, #16213e 100%); color: #fff; padding: 4rem 0; }
.stat-box { background: rgba(255,255,255,.1); border-radius: 12px; padding: 1.5rem; text-align: center; backdrop-filter: blur(10px); }
.stat-box .number { font-size: 2.5rem; font-weight: 700; color: var(--gs-accent); }

/* Footer */
.footer-shop { background: var(--gs-dark); color: rgba(255,255,255,.8); padding: 3rem 0 1rem; }
.footer-shop h5 { color: #fff; font-weight: 600; margin-bottom: 1rem; }
.footer-shop a { color: rgba(255,255,255,.7); text-decoration: none; }
.footer-shop a:hover { color: var(--gs-accent); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 1.5rem; margin-top: 2rem; }

/* Page headers */
.page-header { background: linear-gradient(135deg, var(--gs-dark), #16213e); color: #fff; padding: 3rem 0; margin-bottom: 2rem; }
.page-header h1 { font-weight: 700; margin: 0; }

/* Filters sidebar */
.filter-card { border: none; border-radius: 12px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.filter-card .card-header { background: var(--gs-dark); color: #fff; font-weight: 600; border-radius: 12px 12px 0 0 !important; }

/* Cart & checkout */
.cart-item { border-radius: 12px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.order-summary { border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,.08); position: sticky; top: 100px; }

/* Product detail */
.product-gallery-main { border-radius: 12px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,.1); }
.product-gallery-thumb { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; cursor: pointer; border: 2px solid transparent; }
.product-gallery-thumb.active { border-color: var(--gs-primary); }

/* Editorial content and publications */
.content-illustration { width: 100%; height: 340px; object-fit: cover; border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.rich-content { line-height: 1.85; font-size: 1.05rem; }
.rich-content p { text-align: justify; margin-bottom: 1.15rem; }
.rich-content h2, .rich-content h3, .rich-content h4 { color: var(--gs-dark); font-weight: 700; margin: 1.6rem 0 .8rem; }
.rich-content blockquote { border-left: 4px solid var(--gs-primary); background: #f7f9f7; padding: 1rem 1.25rem; }
.publication-card { border: 0; border-radius: 14px; overflow: hidden; box-shadow: 0 5px 22px rgba(0,0,0,.09); transition: transform .25s, box-shadow .25s; }
.publication-card:hover { transform: translateY(-5px); box-shadow: 0 12px 32px rgba(0,0,0,.15); }
.publication-card .card-img-top { height: 230px; object-fit: cover; }
.publication-hero { width: 100%; max-height: 480px; object-fit: cover; border-radius: 14px; box-shadow: 0 8px 28px rgba(0,0,0,.12); }
.publication-sidebar { position: sticky; top: 105px; }
.sidebar-publication { display: flex; gap: 12px; padding: 10px 0; color: #333; text-decoration: none; border-bottom: 1px solid #eee; }
.sidebar-publication:last-child { border-bottom: 0; }
.sidebar-publication:hover { color: var(--gs-primary); }
.sidebar-publication img { width: 76px; height: 58px; object-fit: cover; border-radius: 7px; flex: 0 0 auto; }
.sidebar-publication span { font-size: .9rem; font-weight: 600; }
.sidebar-publication small { display: block; color: #888; font-weight: 400; margin-top: 4px; }
@media (max-width: 767px) { .content-illustration { height: 230px; } .publication-sidebar { position: static; } }
