/*
Theme Name:  OneSouk
Theme URI:   https://onesouk.co.za
Description: OneSouk — South Africa's Islamic shopping platform. Clean white store theme. WooCommerce and Elementor ready.
Author:      OneSouk
Version:     3.0.0
License:     GNU General Public License v2 or later
Text Domain: onesouk
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Inter', sans-serif !important; color: #1a1a1a; background: #fff; font-size: 15px; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { color: #1D9E75; text-decoration: none; }
a:hover { color: #0F6E56; }

/* ── ELEMENTOR FULL WIDTH ── */
.elementor-section.elementor-section-full_width,
.elementor-section { padding-left: 0 !important; padding-right: 0 !important; width: 100% !important; }
body.elementor-page .site-main { padding: 0 !important; margin: 0 !important; }
.e-con, .e-con-inner { padding: 0; }
body.elementor-page #page, body.elementor-page #content { padding: 0; margin: 0; }

/* ── BANNER ── */
.os-banner { background: #1a1a1a; color: #aaa; text-align: center; padding: 9px 16px; font-size: 12px; letter-spacing: 0.04em; }
.os-banner a { color: #aaa; }

/* ── NAV ── */
.os-nav { display: flex; align-items: center; justify-content: space-between; padding: 16px 48px; background: #fff; border-bottom: 1px solid #e8e8e4; position: sticky; top: 0; z-index: 9999; box-shadow: 0 1px 0 #e8e8e4; }
.os-logo { display: flex; align-items: center; gap: 7px; text-decoration: none; }
.os-logo-dot { width: 8px; height: 8px; border-radius: 50%; background: #E07020; }
.os-logo-text { font-size: 20px; font-weight: 600; color: #1a1a1a; letter-spacing: -0.3px; }
.os-logo-text span { color: #E07020; }
.os-nav-links { display: flex; gap: 32px; list-style: none; }
.os-nav-links a { font-size: 14px; color: #555; text-decoration: none; transition: color 0.2s; }
.os-nav-links a:hover, .os-nav-links a.active { color: #1a1a1a; }
.os-nav-right { display: flex; align-items: center; gap: 20px; }
.os-nav-search { font-size: 20px; color: #888; cursor: pointer; }
.os-nav-cart { font-size: 14px; color: #1a1a1a; font-weight: 500; text-decoration: none; display: flex; align-items: center; gap: 6px; }
.os-nav-cart-count { background: #1D9E75; color: #fff; font-size: 11px; font-weight: 600; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }

/* ── BUTTONS ── */
.os-btn { background: #1D9E75; color: #fff !important; border: none; padding: 13px 28px; border-radius: 8px; font-size: 14px; font-weight: 500; font-family: 'Inter', sans-serif; cursor: pointer; text-decoration: none; display: inline-block; transition: background 0.2s; }
.os-btn:hover { background: #18876A; }
.os-btn-dark { background: #1a1a1a; color: #fff !important; border: none; padding: 13px 28px; border-radius: 8px; font-size: 14px; font-weight: 500; font-family: 'Inter', sans-serif; cursor: pointer; text-decoration: none; display: inline-block; transition: background 0.2s; }
.os-btn-dark:hover { background: #333; }
.os-btn-outline { background: #fff; color: #1a1a1a !important; border: 1px solid #e8e8e4; padding: 13px 24px; border-radius: 8px; font-size: 14px; font-family: 'Inter', sans-serif; cursor: pointer; text-decoration: none; display: inline-block; transition: border-color 0.2s; }
.os-btn-outline:hover { border-color: #aaa; }

/* ── HERO ── */
.os-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; padding: 72px 48px; border-bottom: 1px solid #e8e8e4; }
.os-hero-tag { display: inline-flex; align-items: center; gap: 7px; background: #FEF0E6; border-radius: 20px; padding: 5px 14px; font-size: 12px; color: #E07020; font-weight: 500; margin-bottom: 20px; }
.os-hero-tag-dot { width: 6px; height: 6px; border-radius: 50%; background: #E07020; }
.os-hero h1 { font-size: 42px; font-weight: 600; color: #1a1a1a; line-height: 1.15; margin-bottom: 16px; letter-spacing: -0.8px; }
.os-hero h1 span { color: #1D9E75; }
.os-hero-desc { font-size: 16px; color: #555; line-height: 1.75; margin-bottom: 32px; max-width: 440px; font-weight: 300; }
.os-hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.os-hero-img { background: #F4F4F0; border-radius: 16px; height: 340px; display: flex; align-items: center; justify-content: center; border: 1px solid #e8e8e4; overflow: hidden; }
.os-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.os-hero-placeholder { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.os-hero-placeholder-icon { width: 80px; height: 80px; background: #1D9E75; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 36px; }
.os-hero-placeholder-text { font-size: 14px; color: #888; font-weight: 500; }

/* ── TRUST BAR ── */
.os-trust { display: grid; grid-template-columns: repeat(4, 1fr); background: #FAFAF8; border-bottom: 1px solid #e8e8e4; }
.os-trust-item { display: flex; align-items: center; gap: 12px; padding: 20px 24px; border-right: 1px solid #e8e8e4; }
.os-trust-item:last-child { border-right: none; }
.os-trust-icon { width: 38px; height: 38px; background: #E1F5EE; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 20px; }
.os-trust-title { font-size: 13px; font-weight: 500; color: #1a1a1a; margin-bottom: 2px; }
.os-trust-sub { font-size: 11px; color: #aaa; }

/* ── STORE SECTION ── */
.os-store { padding: 56px 48px; }
.os-store-header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 28px; }
.os-store-title { font-size: 22px; font-weight: 600; color: #1a1a1a; letter-spacing: -0.3px; }
.os-store-link { font-size: 14px; color: #1D9E75; font-weight: 500; }
.os-store-link:hover { text-decoration: underline; }

/* ── PRODUCT GRID ── */
.os-products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }
.os-product-card { border: 1px solid #e8e8e4; border-radius: 14px; overflow: hidden; background: #fff; transition: box-shadow 0.2s, transform 0.2s; }
.os-product-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,0.08); transform: translateY(-2px); }
.os-product-card-img { height: 220px; background: #F4F4F0; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.os-product-card-img img { width: 100%; height: 100%; object-fit: cover; }
.os-product-card-badge { position: absolute; top: 12px; left: 12px; background: #E1F5EE; color: #0F6E56; font-size: 11px; font-weight: 500; padding: 4px 12px; border-radius: 20px; }
.os-product-card-body { padding: 18px; }
.os-product-card-name { font-size: 15px; font-weight: 600; color: #1a1a1a; margin-bottom: 5px; }
.os-product-card-desc { font-size: 12px; color: #888; line-height: 1.6; margin-bottom: 16px; font-weight: 300; }
.os-product-card-footer { display: flex; align-items: center; justify-content: space-between; }
.os-product-card-price { font-size: 17px; font-weight: 700; color: #1a1a1a; }
.os-product-card-price-na { font-size: 14px; color: #ccc; }
.os-product-card-btns { display: flex; gap: 8px; }
.os-product-card-btn { background: #1D9E75; color: #fff; border: none; padding: 8px 14px; border-radius: 7px; font-size: 12px; font-weight: 500; font-family: 'Inter', sans-serif; cursor: pointer; text-decoration: none; transition: background 0.2s; display: inline-block; }
.os-product-card-btn:hover { background: #18876A; color: #fff; }
.os-product-card-btn-outline { background: transparent; color: #555; border: 1px solid #e8e8e4; padding: 8px 12px; border-radius: 7px; font-size: 12px; font-family: 'Inter', sans-serif; cursor: pointer; text-decoration: none; display: inline-block; transition: border-color 0.2s; }
.os-product-card-btn-outline:hover { border-color: #aaa; color: #1a1a1a; }

/* ── CATEGORIES ── */
.os-categories { padding: 0 48px 56px; }
.os-categories-title { font-size: 22px; font-weight: 600; color: #1a1a1a; margin-bottom: 20px; letter-spacing: -0.3px; }
.os-categories-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.os-category-card { background: #FAFAF8; border: 1px solid #e8e8e4; border-radius: 12px; padding: 24px 16px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-decoration: none; transition: box-shadow 0.2s, transform 0.2s; }
.os-category-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.06); transform: translateY(-1px); }
.os-category-icon { width: 44px; height: 44px; background: #E1F5EE; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.os-category-label { font-size: 13px; font-weight: 500; color: #1a1a1a; text-align: center; }
.os-category-count { font-size: 11px; color: #aaa; }

/* ── ABOUT STRIP ── */
.os-about { background: #F4F4F0; padding: 40px 48px; display: flex; align-items: center; gap: 24px; border-top: 1px solid #e8e8e4; border-bottom: 1px solid #e8e8e4; }
.os-about-icon { width: 52px; height: 52px; background: #E1F5EE; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 24px; }
.os-about-title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin-bottom: 6px; }
.os-about-desc { font-size: 14px; color: #666; line-height: 1.7; font-weight: 300; }

/* ── PAGE HERO ── */
.os-page-hero { background: #F4F4F0; padding: 48px; border-bottom: 1px solid #e8e8e4; }
.os-page-hero-label { font-size: 11px; letter-spacing: 0.1em; color: #aaa; text-transform: uppercase; margin-bottom: 8px; }
.os-page-hero h1 { font-size: 32px; font-weight: 600; letter-spacing: -0.3px; color: #1a1a1a; }

/* ── POLICY PAGES ── */
.os-policy-wrap { max-width: 760px; margin: 0 auto; padding: 56px 48px; }
.os-policy-wrap h2 { font-size: 18px; font-weight: 600; color: #1a1a1a; margin: 36px 0 12px; padding-bottom: 8px; border-bottom: 1px solid #e8e8e4; }
.os-policy-wrap h3 { font-size: 15px; font-weight: 600; color: #1a1a1a; margin: 20px 0 8px; }
.os-policy-wrap p { font-size: 14px; color: #444; line-height: 1.8; margin-bottom: 14px; }
.os-policy-wrap ul, .os-policy-wrap ol { margin: 10px 0 16px 24px; }
.os-policy-wrap li { font-size: 14px; color: #444; line-height: 1.8; margin-bottom: 6px; }
.os-policy-updated { font-size: 12px; color: #aaa; margin-bottom: 32px; }
.os-policy-highlight { background: #E1F5EE; border-left: 3px solid #1D9E75; padding: 16px 20px; margin-bottom: 28px; border-radius: 0 8px 8px 0; }
.os-policy-highlight p { color: #0F6E56; margin: 0; }
.os-policy-note { background: #FEF9E7; border: 1px solid #F5E6B0; border-radius: 8px; padding: 14px 18px; font-size: 13px; color: #888; line-height: 1.7; margin: 16px 0; }
.os-policy-contact { background: #F4F4F0; border-radius: 12px; padding: 24px 28px; margin-top: 36px; }
.os-policy-contact h3 { font-size: 15px; font-weight: 600; margin-bottom: 14px; border: none; padding: 0; }
.os-policy-contact-row { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #444; margin-bottom: 8px; }
.os-policy-contact-row a { color: #1D9E75; }
.os-policy-steps { border: 1px solid #e8e8e4; border-radius: 12px; overflow: hidden; margin: 16px 0 20px; }
.os-policy-step { display: flex; align-items: flex-start; gap: 16px; padding: 14px 18px; border-bottom: 1px solid #e8e8e4; }
.os-policy-step:last-child { border-bottom: none; }
.os-policy-step-num { width: 26px; height: 26px; border-radius: 50%; background: #E1F5EE; color: #1D9E75; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.os-policy-step-text { font-size: 14px; color: #444; line-height: 1.6; }
.os-warranty-badge { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid #e8e8e4; border-radius: 20px; padding: 5px 14px; font-size: 12px; font-weight: 500; margin-bottom: 14px; }
.os-warranty-dot { width: 7px; height: 7px; border-radius: 50%; background: #1D9E75; }
.os-shipping-table { width: 100%; border-collapse: collapse; margin: 16px 0 24px; }
.os-shipping-table th { background: #F4F4F0; font-size: 12px; font-weight: 600; color: #555; text-transform: uppercase; letter-spacing: 0.06em; padding: 11px 16px; text-align: left; border-bottom: 1px solid #e8e8e4; }
.os-shipping-table td { font-size: 14px; color: #444; padding: 12px 16px; border-bottom: 1px solid #f0f0f0; }
.os-shipping-table tr:last-child td { border-bottom: none; }

/* ── CONTACT PAGE ── */
.os-contact-wrap { max-width: 760px; margin: 0 auto; padding: 56px 48px; }
.os-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 36px; }
.os-contact-card { background: #F4F4F0; border-radius: 12px; padding: 20px; display: flex; gap: 14px; align-items: flex-start; }
.os-contact-card-icon { font-size: 22px; flex-shrink: 0; }
.os-contact-card-label { font-size: 11px; color: #aaa; margin-bottom: 4px; }
.os-contact-card-value { font-size: 14px; font-weight: 500; color: #1a1a1a; }
.os-contact-card-value a { color: #1D9E75; text-decoration: none; }
.os-form-wrap { background: #F4F4F0; border-radius: 12px; padding: 32px; }
.os-form-wrap h2 { font-size: 18px; font-weight: 600; margin-bottom: 20px; }
.os-field { margin-bottom: 16px; }
.os-field label { display: block; font-size: 13px; font-weight: 500; color: #555; margin-bottom: 6px; }
.os-field input, .os-field textarea, .os-field select { width: 100%; border: 1px solid #ddd; border-radius: 7px; padding: 11px 14px; font-size: 14px; font-family: 'Inter', sans-serif; background: #fff; transition: border-color 0.2s; }
.os-field input:focus, .os-field textarea:focus, .os-field select:focus { border-color: #1D9E75; outline: none; box-shadow: 0 0 0 3px rgba(29,158,117,0.1); }
.os-field textarea { height: 130px; resize: vertical; }

/* ── WOOCOMMERCE ── */
.woocommerce ul.products li.product { border: 1px solid #e8e8e4 !important; border-radius: 14px !important; overflow: hidden !important; padding: 0 !important; transition: box-shadow 0.2s, transform 0.2s !important; background: #fff !important; }
.woocommerce ul.products li.product:hover { box-shadow: 0 8px 32px rgba(0,0,0,0.08) !important; transform: translateY(-2px) !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px !important; font-weight: 600 !important; padding: 14px 16px 4px !important; color: #1a1a1a !important; font-family: 'Inter', sans-serif !important; }
.woocommerce ul.products li.product .price { font-size: 17px !important; font-weight: 700 !important; padding: 0 16px 4px !important; color: #1a1a1a !important; }
.woocommerce ul.products li.product a.button, .woocommerce ul.products li.product .button { background: #1D9E75 !important; color: #fff !important; border: none !important; border-radius: 7px !important; font-size: 13px !important; font-weight: 500 !important; font-family: 'Inter', sans-serif !important; margin: 10px 16px 16px !important; padding: 10px 18px !important; width: calc(100% - 32px) !important; display: block !important; text-align: center !important; transition: background 0.2s !important; }
.woocommerce ul.products li.product a.button:hover { background: #18876A !important; }
.woocommerce div.product .product_title { font-size: 28px !important; font-weight: 700 !important; letter-spacing: -0.5px !important; font-family: 'Inter', sans-serif !important; color: #1a1a1a !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 26px !important; font-weight: 700 !important; color: #1D9E75 !important; }
.woocommerce div.product form.cart .single_add_to_cart_button { background: #1D9E75 !important; color: #fff !important; border: none !important; border-radius: 8px !important; font-size: 15px !important; font-weight: 500 !important; font-family: 'Inter', sans-serif !important; padding: 14px 32px !important; transition: background 0.2s !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: #18876A !important; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 15px !important; color: #555 !important; line-height: 1.75 !important; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout #order_review { border-radius: 12px !important; border: 1px solid #e8e8e4 !important; padding: 24px !important; background: #FAFAF8 !important; }
.woocommerce a.checkout-button, .woocommerce .cart_totals .checkout-button { background: #1D9E75 !important; color: #fff !important; border: none !important; border-radius: 8px !important; font-size: 15px !important; font-weight: 500 !important; padding: 14px !important; width: 100% !important; display: block !important; text-align: center !important; transition: background 0.2s !important; }
.woocommerce #payment #place_order { background: #1D9E75 !important; color: #fff !important; border: none !important; border-radius: 8px !important; font-size: 16px !important; font-weight: 600 !important; font-family: 'Inter', sans-serif !important; padding: 16px !important; width: 100% !important; transition: background 0.2s !important; }
.woocommerce #payment #place_order:hover { background: #18876A !important; }
.woocommerce-message { background: #E1F5EE !important; border-top: 3px solid #1D9E75 !important; color: #0F6E56 !important; border-radius: 0 0 8px 8px !important; }
.woocommerce span.onsale { background: #E07020 !important; border-radius: 6px !important; font-size: 11px !important; font-weight: 600 !important; padding: 4px 10px !important; }
.woocommerce .star-rating span::before { color: #E07020 !important; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { border-color: #e8e8e4 !important; border-radius: 6px !important; }
.woocommerce nav.woocommerce-pagination ul li a:focus, .woocommerce nav.woocommerce-pagination ul li a:hover, .woocommerce nav.woocommerce-pagination ul li span.current { background: #1D9E75 !important; color: #fff !important; border-color: #1D9E75 !important; }
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], textarea, select { font-family: 'Inter', sans-serif !important; border: 1px solid #ddd !important; border-radius: 7px !important; padding: 10px 14px !important; font-size: 14px !important; transition: border-color 0.2s !important; }
input:focus, textarea:focus, select:focus { border-color: #1D9E75 !important; outline: none !important; box-shadow: 0 0 0 3px rgba(29,158,117,0.1) !important; }

/* ── FOOTER ── */
.os-footer { background: #1a1a1a; padding: 48px; }
.os-footer-top { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 32px; margin-bottom: 32px; }
.os-footer-brand { font-size: 18px; font-weight: 700; color: #fff; margin-bottom: 5px; }
.os-footer-brand span { color: #E07020; }
.os-footer-tagline { font-size: 12px; color: #555; }
.os-footer-col h4 { font-size: 11px; font-weight: 500; color: #444; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 14px; }
.os-footer-col a { display: block; font-size: 13px; color: #555; text-decoration: none; margin-bottom: 8px; transition: color 0.2s; }
.os-footer-col a:hover { color: #aaa; }
.os-footer-bottom { border-top: 1px solid #222; padding-top: 20px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.os-footer-copy { font-size: 12px; color: #333; }

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .os-nav { padding: 14px 20px; }
  .os-nav-links { display: none; }
  .os-hero { grid-template-columns: 1fr; padding: 48px 20px; gap: 28px; }
  .os-hero h1 { font-size: 30px; }
  .os-hero-img { height: 220px; }
  .os-trust { grid-template-columns: repeat(2, 1fr); }
  .os-trust-item { border-bottom: 1px solid #e8e8e4; }
  .os-store { padding: 40px 20px; }
  .os-categories { padding: 0 20px 40px; }
  .os-about { padding: 32px 20px; flex-direction: column; }
  .os-footer { padding: 32px 20px; }
  .os-footer-top { grid-template-columns: 1fr 1fr; gap: 24px; }
  .os-page-hero { padding: 32px 20px; }
  .os-policy-wrap { padding: 32px 20px; }
  .os-contact-wrap { padding: 32px 20px; }
  .os-contact-grid { grid-template-columns: 1fr; }
}
