/* W.A. Clarke — clean, Nike-inspired storefront styling
   OpenCart 4.1 / Bootstrap 5. Install after existing theme styles.
   Version 1.0 | Designed to preserve product gallery / stock / 360 scripts.
*/
:root {
  --wa-black: #111111;
  --wa-charcoal: #262626;
  --wa-muted: #707072;
  --wa-border: #dedee0;
  --wa-soft: #f5f5f5;
  --wa-radius: 10px;
}

/* Typography and page canvas */
body { color: var(--wa-black); background: #fff; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--wa-black); font-weight: 650; letter-spacing: -.025em; line-height: 1.2; }
h1, .h1 { font-size: clamp(1.8rem, 2.7vw, 2.5rem); }
h2, .h2 { font-size: clamp(1.45rem, 2.1vw, 2rem); }
h3, .h3 { font-size: 1.28rem; }
#content { min-width: 0; }
#content > h1:first-child { margin-bottom: 1.5rem; }
a { color: var(--wa-black); text-underline-offset: .2em; }
a:hover { color: var(--wa-muted); }

/* Header: white background, strong black text rather than a black banner */
header, header .container, header .container-fluid { background: #fff; }
header { border-bottom: 1px solid #ededed; }
header a, header .btn, header .dropdown-toggle { color: var(--wa-black); }
header a:hover, header .btn:hover { color: var(--wa-muted); }
header #logo img { max-height: 78px; width: auto; }
#top { background: var(--wa-soft); border-bottom: 0; color: var(--wa-charcoal); }
#top a, #top .btn, #top .dropdown-toggle { color: var(--wa-charcoal); }
#top a:hover, #top .btn:hover { color: #000; }

/* Main navigation — clean white menu with bold readable labels */
#menu, #menu.navbar { background: #fff !important; box-shadow: none; border: 0; border-bottom: 1px solid #e9e9e9; border-radius: 0; }
#menu .nav-link, #menu .navbar-nav > li > a, #menu .navbar-brand,
#menu .navbar-toggler { color: var(--wa-black) !important; font-weight: 600; letter-spacing: .005em; }
#menu .nav-link:hover, #menu .navbar-nav > li > a:hover,
#menu .nav-link:focus { color: var(--wa-muted) !important; background: transparent !important; }
#menu .dropdown-menu { background: #fff; border: 1px solid var(--wa-border); border-radius: 12px; padding: .55rem; box-shadow: 0 12px 30px rgba(0,0,0,.09); }
#menu .dropdown-item { border-radius: 7px; color: var(--wa-black); }
#menu .dropdown-item:hover, #menu .dropdown-item:focus { background: var(--wa-soft); color: #000; }

/* Buttons, including category, search, cart, checkout and account pages */
.btn { font-weight: 600; border-radius: 999px; padding: .66rem 1.25rem; transition: background-color .16s ease, border-color .16s ease, color .16s ease; }
.btn-primary, .btn-success, .btn-info, .btn-dark,
.btn-check:checked + .btn-outline-primary { color: #fff !important; background: var(--wa-black) !important; border-color: var(--wa-black) !important; }
.btn-primary:hover, .btn-success:hover, .btn-info:hover, .btn-dark:hover,
.btn-primary:focus-visible, .btn-success:focus-visible, .btn-info:focus-visible, .btn-dark:focus-visible { color: #fff !important; background: #383838 !important; border-color: #383838 !important; }
.btn-secondary, .btn-light, .btn-outline-secondary, .btn-outline-primary {
  color: var(--wa-black); background: #fff; border-color: #d6d6d6;
}
.btn-secondary:hover, .btn-light:hover, .btn-outline-secondary:hover, .btn-outline-primary:hover {
  color: var(--wa-black); background: var(--wa-soft); border-color: #c1c1c1;
}
.btn:disabled, .btn.disabled { opacity: .5; cursor: not-allowed; }
.btn:focus-visible, a:focus-visible, .form-control:focus-visible, .form-select:focus-visible { outline: 2px solid #111; outline-offset: 3px; box-shadow: none; }
/* Preserve essential red/destructive and warning action meanings */
.btn-danger { background: #b42318; border-color: #b42318; color: #fff; }
.btn-danger:hover { background: #912018; border-color: #912018; color: #fff; }
.btn-warning { color: #1b1b1b; }
/* Icon-only image/gallery controls stay compact */
#product-image-thumbnails .btn, #spin360-viewer .btn, .product-photo-thumb,
#product-image-stage .gallery-arrow, #product-image-stage .gallery-nav button { padding: 0; }

/* Search: pill search field with matching action */
#search .form-control, header #search input { background: var(--wa-soft); border-color: transparent; border-radius: 999px 0 0 999px; }
#search .btn { border-radius: 0 999px 999px 0; }

/* Forms & product option selectors */
.form-label, label { color: var(--wa-black); font-weight: 600; }
.form-control, .form-select { border: 1px solid var(--wa-border); border-radius: 8px; min-height: 44px; color: var(--wa-black); background-color: #fff; }
.form-control:focus, .form-select:focus { border-color: var(--wa-black); box-shadow: 0 0 0 1px var(--wa-black); }
.form-check-input:checked { background-color: #111; border-color: #111; }
.form-check-input:focus { border-color: #111; box-shadow: 0 0 0 .15rem rgba(17,17,17,.12); }
#product #button-cart { min-height: 48px; border-radius: 999px; padding-left: 1.8rem; padding-right: 1.8rem; }
#product .input-group > .form-control { min-width: 65px; }

/* Cards and product listings — unobtrusive, photographic treatment */
.product-thumb { border: 0; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: none; }
.product-thumb .image { background: var(--wa-soft); border-radius: 10px; overflow: hidden; }
.product-thumb .image img { width: 100%; height: auto; }
.product-thumb .description, .product-thumb .content { color: var(--wa-black); }
.product-thumb h4, .product-thumb h4 a { font-size: 1.02rem; font-weight: 650; line-height: 1.4; color: var(--wa-black); text-decoration: none; }
.product-thumb .price { color: var(--wa-black); font-size: 1.05rem; font-weight: 650; }
.product-thumb .price-old { color: var(--wa-muted); font-weight: 400; }
.product-thumb .button-group { background: transparent; border: 0; }
.product-thumb .button-group button { border-radius: 999px; }

/* Breadcrumbs, pagination and information blocks */
.breadcrumb { background: transparent; padding: .8rem 0 1.5rem; margin: 0; font-size: .87rem; }
.breadcrumb a, .breadcrumb-item, .breadcrumb-item.active { color: var(--wa-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--wa-black); }
.nav-tabs { border-bottom: 1px solid var(--wa-border); gap: .35rem; }
.nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: var(--wa-muted); font-weight: 600; }
.nav-tabs .nav-link:hover { color: var(--wa-black); }
.nav-tabs .nav-link.active { color: var(--wa-black); border-bottom-color: var(--wa-black); background: transparent; }
.pagination .page-link { color: var(--wa-black); border-color: var(--wa-border); }
.pagination .page-item.active .page-link { color: #fff; background: var(--wa-black); border-color: var(--wa-black); }
.card { border-color: #ededed; border-radius: 12px; }
.card-header { background: var(--wa-soft); color: var(--wa-black); font-weight: 650; }
.list-group-item.active { background: var(--wa-black); border-color: var(--wa-black); }
.alert-success { color: #155724; }

/* Footer typography and spacing */
footer { margin-top: 3rem; padding-top: 2.5rem; }
footer h5, footer h4 { font-size: 1rem; font-weight: 700; letter-spacing: 0; }

@media (max-width: 767px) {
  h1, .h1 { font-size: 1.85rem; }
  .btn { padding: .6rem 1rem; }
  #menu .navbar-nav { padding: .4rem 0; }
  #content > h1:first-child { margin-bottom: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .btn { transition: none; }
}

/* W.A. Clarke category introduction */

.wac-category-intro {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 35px;
    align-items: start;
    padding: 30px;
    margin: 15px 0 35px;
    background: #f7f7f7;
    border-radius: 12px;
}

.wac-category-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100px;
    padding: 20px;
    background: #fff;
    border-radius: 8px;
}

.wac-category-logo img {
    width: 100%;
    max-width: 100px;
    height: auto;
    max-height: 170px;
    object-fit: contain;
}

.wac-category-info {
    min-width: 0;
}

.wac-category-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #888;
    margin-bottom: 8px;
}

.wac-category-info h1 {
    font-size: 32px;
    font-weight: 700;
    color: #222;
    margin: 0 0 15px;
}

.wac-category-description,
.wac-category-description p,
.wac-category-description div {
    font-size: 15px;
    line-height: 1.75;
    color: #555;
    text-align: left !important;
}

.wac-category-description p {
    margin: 0 0 12px;
}

.wac-category-description strong,
.wac-category-description b {
    color: #222;
    font-weight: 600;
}

.wac-category-description h2,
.wac-category-description h3,
.wac-category-description h4 {
    text-align: left !important;
    font-size: 17px;
    font-weight: 600;
    margin: 20px 0 8px;
}

@media (max-width: 767px) {
    .wac-category-intro {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 20px;
    }

    .wac-category-logo {
        min-height: 100px;
    }

    .wac-category-info h1 {
        font-size: 26px;
    }
}
/* Product tags */

.wac-product-tags {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #e5e5e5;
}

.wac-product-tags h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 15px;
}

.wac-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.wac-tag {
    display: inline-block;
    padding: 7px 14px;
    background: #f4f4f4;
    color: #444 !important;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    font-size: 12px;
    text-decoration: none !important;
}

.wac-tag:hover {
    background: #111;
    color: #fff !important;
    border-color: #111;
}
/* Force product tag links to black */

#product-product .wac-product-tags a,
#product-product .wac-product-tags a:link,
#product-product .wac-product-tags a:visited {
    color: #000000 !important;
    text-decoration: none !important;
}

#product-product .wac-product-tags a:hover {
    color: #ffffff !important;
    background-color: #111111 !important;
}

/* Existing OpenCart product tag links */

#product-product a[href*="product/search"][href*="tag="] {
    color: #000000 !important;
    text-decoration: none !important;
}

/* Mobile Categories menu */
@media (max-width: 991px) {

    /* Categories wording */
    #menu #category {
        color: #111111 !important;
        -webkit-text-fill-color: #111111 !important;
        font-weight: 600 !important;
        font-size: 18px !important;
        text-shadow: none !important;
    }

    /* Hamburger button */
    #menu .navbar-toggler {
        background: #f5f5f5 !important;
        border: 1px solid #dddddd !important;
        border-radius: 8px !important;
        padding: 10px 14px !important;
        color: #111111 !important;
    }

    /* Three horizontal lines */
    #menu .navbar-toggler .fa-bars {
        color: #111111 !important;
        font-size: 20px !important;
        opacity: 1 !important;
    }

    /* White navigation background */
    #menu.navbar {
        background: #ffffff !important;
    }
}
/* WAC - mobile product grid */
@media screen and (max-width: 767px) {
    #product-category #product-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    #product-category #product-list > .col {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}
