:root {
    --ah-purple: #4a145e;
    --ah-slate: #55555e;
    --wc-secondary: #55555e;
    --wc-secondary-text: #fff;
    --wc-highlight: #4a145e;
    --wc-form-border-color: #000;
    --wc-form-border-radius: 3px;
}
body.woocommerce div.product p.price,
body.woocommerce div.product span.price,
body.woocommerce div.product .price .amount,
body.woocommerce div.product .stock.in-stock,
body.woocommerce ul.products li.product .price { color: var(--ah-purple); }
body .woocommerce .button:not(.alt),
body.woocommerce .button:not(.alt),
body .woocommerce #respond input#submit,
body .woocommerce input.button:not(.alt),
body .wpcf7 input[type="submit"] {
    background-color: var(--ah-slate);
    color: #fff;
    border: 0;
    border-radius: 3px;
    padding: .618em 1em;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
}
body .woocommerce .button:not(.alt):hover,
body.woocommerce .button:not(.alt):hover,
body .wpcf7 input[type="submit"]:hover { background-color: #000; color: #fff; }
body .woocommerce .button:not(.alt):disabled,
body.woocommerce .button:not(.alt):disabled,
body .woocommerce .button:not(.alt).disabled {
    background-color: var(--ah-slate);
    color: #fff;
    opacity: .45;
    cursor: not-allowed;
}
body .woocommerce :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) a.button {
    background-color: #f00;
    color: #fff;
}
body .woocommerce :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) a.button:hover { background-color: #000; }
body.woocommerce div.product .woocommerce-tabs ul.tabs li,
body.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--ah-slate); }
body.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active) {
    background: var(--ah-slate);
    border-color: var(--ah-slate);
    color: #fff;
}
body.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active) a { color: #fff; }
body.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active)::before { box-shadow: 2px 2px 0 var(--ah-slate); border-color: var(--ah-slate); }
body.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active)::after { box-shadow: -2px 2px 0 var(--ah-slate); border-color: var(--ah-slate); }
body.woocommerce nav.woocommerce-pagination ul li a:is(:hover,:focus),
body.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ah-slate); color: #fff; }
body.woocommerce #reviews #comments ol.commentlist li img.avatar { background: var(--ah-slate); border-color: var(--ah-slate); }
body .woocommerce .widget_shopping_cart .total,
body .woocommerce.widget_shopping_cart .total { border-top-color: var(--ah-slate); }
body .woocommerce .cart-collaterals .cart_totals tr :is(td,th) { border-top-color: var(--ah-slate); }
body :is(.woocommerce,.wpcf7,.search-form,.ah-not-found,.variations_form) :is(input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="number"],input[type="search"],input[type="url"],select,textarea) {
    box-sizing: border-box;
    min-height: 44px;
    padding: 10px 12px !important;
    border: 1px solid #000 !important;
    border-radius: 3px !important;
    background: #fff !important;
    color: #222 !important;
    box-shadow: none;
}
body :is(.woocommerce,.wpcf7,.search-form,.ah-not-found,.variations_form) :is(input,select,textarea):focus-visible {
    outline: 2px solid #000;
    outline-offset: 2px;
}
body .woocommerce .woocommerce-invalid :is(input.input-text,select),
body .wpcf7 .wpcf7-not-valid { border-color: #b81c23 !important; }
body .select2-container--default .select2-selection--single {
    height: 44px;
    border: 1px solid #000;
    border-radius: 3px;
    background: #fff;
}
body .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 12px; color: #222; }
body .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }
body .select2-container--focus .select2-selection,
body .select2-container--open .select2-selection { outline: 2px solid #000; outline-offset: 2px; }
body .select2-dropdown { border-color: #000; }
body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--ah-slate); color: #fff; }
body.error404 .ah-not-found {
    box-sizing: border-box;
    min-height: calc(100svh - 180px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 45px 20px;
    text-align: center;
}
.ah-not-found .ah-not-found-tag { width: 150px; height: auto; margin: 0 0 8px; }
.ah-not-found h1 { font-size: 27px; margin: 0; }
.ah-not-found p { font-size: 14px; margin: 0; }
.ah-not-found .ah-not-found-shop,
.ah-not-found .ah-not-found-search button {
    display: inline-block;
    padding: .75em 1.25em;
    border: 1px solid #000;
    border-radius: 3px;
    background: #000;
    color: #fff;
    font: inherit;
    text-decoration: none;
}
.ah-not-found .ah-not-found-shop:hover,
.ah-not-found .ah-not-found-search button:hover { background: var(--ah-slate); }
.ah-not-found .ah-not-found-search { display: flex; gap: 8px; width: 100%; max-width: 420px; margin-top: 8px; }
.ah-not-found .ah-not-found-search input { min-width: 0; width: 100%; flex: 1; font-size: 14px; }
.ah-not-found .ah-not-found-search button { flex: 0 0 auto; font-size: 14px; }
.ah-not-found a:focus-visible,.ah-not-found button:focus-visible { outline: 2px solid #000; outline-offset: 4px; }
