/* Alpha Prime — design system overrides (see DESIGN.md)
   White + deep forest green, expert & trustworthy. Reference: Leafwell. */

:root {
    --gardon-base: #1e6b40;            /* deep forest green (was #2ab939) */
    --gardon-base-rgb: 30, 107, 64;
    --gardon-gray: #5b665b;            /* darkened for AA contrast */
    --ap-ink: var(--gardon-black, #192919);
    --ap-sage: var(--gardon-primary, #e9efe5);
    --ap-border: var(--gardon-bdr-color, #d5ddcf);
    --ap-shadow: 0 14px 34px rgba(25, 41, 25, .10);
    --ap-radius: 16px;
    --ap-gold: #c9a24a;
}

/* ---------- Section rhythm ---------- */
.ap-section { padding: clamp(56px, 9vw, 110px) 0; }
.ap-section .section-title { margin-bottom: clamp(28px, 4vw, 48px); }
.ap-section .section-title__title { text-wrap: balance; }

/* ---------- Hero (dark, product photo melts into the background) ---------- */
.ap-hero {
    padding: clamp(56px, 8vw, 110px) 0 clamp(48px, 7vw, 96px);
    background:
        radial-gradient(1100px 560px at 78% 18%, rgba(201, 162, 74, .12), transparent 62%),
        linear-gradient(158deg, #1c2e1e 0%, #142115 52%, #0f1a10 100%);
}
.ap-hero__badge {
    display: inline-block; font-size: .8rem; font-weight: 600; letter-spacing: .02em;
    color: var(--ap-gold); border: 1px solid rgba(201, 162, 74, .45);
    border-radius: 999px; padding: 6px 16px; margin-bottom: 22px;
}
.ap-hero__title {
    font-size: clamp(2.4rem, 5.2vw, 4rem);
    line-height: 1.06; letter-spacing: -0.02em; text-wrap: balance;
    color: #fff; font-weight: 800; margin-bottom: 18px;
}
.ap-hero__subtitle { font-size: 1.125rem; line-height: 1.7; color: rgba(255, 255, 255, .72); max-width: 46ch; margin-bottom: 30px; }
.ap-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.ap-hero__btn { padding-left: 34px; padding-right: 34px; }
.ap-hero__link { color: rgba(255, 255, 255, .85); font-weight: 500; text-decoration: underline; text-underline-offset: 4px; }
.ap-hero__link:hover { color: var(--ap-gold); }
.ap-hero__trust { list-style: none; margin: 34px 0 0; padding: 0; display: grid; gap: 13px; }
.ap-hero__trust li { display: flex; align-items: center; gap: 10px; font-size: .95rem; color: rgba(255, 255, 255, .88); font-weight: 500; }
.ap-hero__trust svg { flex: 0 0 auto; color: #6fbf8e; }
.ap-hero__media { position: relative; margin-top: 38px; }
@media (min-width: 992px) { .ap-hero__media { margin-top: 0; } }
.ap-hero__img {
    width: 100%; height: auto; border-radius: 22px;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .55), 0 0 0 1px rgba(201, 162, 74, .18);
}
/* first-load choreography (enhance-only: content is visible without it) */
@media (prefers-reduced-motion: no-preference) {
    .ap-hero__badge, .ap-hero__title, .ap-hero__subtitle, .ap-hero__actions, .ap-hero__trust { animation: ap-rise .7s cubic-bezier(.22,.61,.36,1) both; }
    .ap-hero__title { animation-delay: .07s; }
    .ap-hero__subtitle { animation-delay: .14s; }
    .ap-hero__actions { animation-delay: .21s; }
    .ap-hero__trust { animation-delay: .28s; }
    .ap-hero__media { animation: ap-fade 1s ease-out both .18s; }
}
@keyframes ap-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes ap-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Category & effect tiles ---------- */
.ap-categories .row, .ap-effects .row { row-gap: 18px; }
.ap-categories__card, .ap-effects__card {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
    min-height: 112px; padding: 26px 14px; border-radius: var(--ap-radius); text-align: center;
    background: #fff; border: 1px solid var(--ap-border);
    color: var(--ap-ink); font-weight: 600;
    transition: transform .25s cubic-bezier(.22,.61,.36,1), box-shadow .25s cubic-bezier(.22,.61,.36,1), border-color .25s;
}
.ap-categories__card:hover, .ap-effects__card:hover {
    transform: translateY(-4px); box-shadow: var(--ap-shadow);
    background: var(--gardon-base); border-color: var(--gardon-base); color: #fff;
}
.ap-categories__card:hover .ap-categories__icon,
.ap-categories__card:hover .ap-categories__name,
.ap-effects__card:hover .ap-effects__icon,
.ap-effects__card:hover .ap-effects__name { color: #fff; }
.ap-categories__name, .ap-effects__name { font-size: .95rem; color: inherit; }
.ap-categories__icon, .ap-effects__icon { display: inline-flex; color: var(--gardon-base); transition: color .25s; }
.ap-categories__icon svg, .ap-effects__icon svg { width: 30px; height: 30px; }
.ap-effects { background: var(--ap-sage); }

/* ---------- Product cards ---------- */
.ap-featured .row { row-gap: 26px; }
.ap-product-card {
    display: flex; flex-direction: column; height: 100%;
    padding: 14px 14px 20px; border-radius: var(--ap-radius);
    background: #fff; border: 1px solid var(--ap-border);
    transition: transform .25s cubic-bezier(.22,.61,.36,1), box-shadow .25s cubic-bezier(.22,.61,.36,1);
}
.ap-product-card:hover { transform: translateY(-4px); box-shadow: var(--ap-shadow); }
.ap-product-card img { border-radius: 10px; width: 100%; height: auto; }
.ap-product-card__title { font-size: 1.02rem; line-height: 1.35; color: var(--ap-ink); margin: 14px 0 4px; font-weight: 600; }
.ap-product-card:hover .ap-product-card__title { color: var(--gardon-base); }
.ap-product-card__price { margin-top: auto; font-weight: 700; color: var(--ap-ink); font-size: 1.05rem; }
.ap-product-card__potency, .woocommerce ul.products li.product .ap-product-card__potency {
    display: inline-block; align-self: flex-start; font-size: .78rem; font-weight: 600;
    padding: 3px 12px; border-radius: 999px; margin: 6px 0 10px;
    background: var(--ap-sage); color: var(--gardon-base); border: 1px solid rgba(30, 107, 64, .25);
}

/* ---------- Trust band ---------- */
.ap-trust { background: var(--ap-ink); }
.ap-trust__title { color: #fff; font-size: clamp(1.6rem, 3vw, 2.1rem); letter-spacing: -0.01em; margin-bottom: 14px; text-wrap: balance; }
.ap-trust__text { color: rgba(255, 255, 255, .78); max-width: 62ch; margin: 0 auto; line-height: 1.7; }
.ap-trust__pillars { margin-top: clamp(36px, 5vw, 56px); row-gap: 30px; }
.ap-trust__pillar { text-align: center; padding: 0 18px; }
.ap-trust__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 58px; height: 58px; border-radius: 50%; margin-bottom: 16px;
    color: #6fbf8e; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14);
}
.ap-trust__pillar-title { color: #fff; font-size: 1.05rem; font-weight: 600; margin-bottom: 6px; }
.ap-trust__pillar-text { color: rgba(255, 255, 255, .66); font-size: .92rem; line-height: 1.6; margin: 0; }

/* ---------- Featured head ---------- */
.ap-featured__head {
    display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 10px;
    margin-bottom: clamp(24px, 3.5vw, 40px);
}
.ap-featured__head .section-title { margin-bottom: 0; }
.ap-featured__all { font-weight: 600; color: var(--gardon-base); text-decoration: underline; text-underline-offset: 4px; }

/* ---------- About: story + image ---------- */
.ap-about { padding: clamp(56px, 8vw, 96px) 0; background: #fff; }
.ap-about__content h2 {
    font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -0.01em; color: var(--ap-ink); margin-bottom: 18px; text-wrap: balance;
}
.ap-about__content p { color: var(--gardon-gray); font-size: 1.05rem; line-height: 1.75; max-width: 60ch; margin-bottom: 18px; }
.ap-about__img, .ap-about__coa img {
    width: 100%; height: auto; border-radius: var(--ap-radius); box-shadow: var(--ap-shadow);
}

/* ---------- About: animated stat tiles ---------- */
.ap-about-stats { padding: clamp(40px, 6vw, 72px) 0; background: var(--ap-sage); }
.ap-stat { text-align: center; padding: 0 16px; }
.ap-stat__number {
    display: flex; align-items: baseline; justify-content: center; gap: 2px;
    font-size: clamp(2.4rem, 5vw, 3.4rem); font-weight: 800; letter-spacing: -0.02em;
    color: var(--gardon-base); margin-bottom: 8px; font-variant-numeric: tabular-nums;
}
.ap-stat__affix { font-size: 0.6em; font-weight: 700; }
.ap-stat__label { color: var(--ap-ink); font-weight: 500; font-size: .95rem; }

/* ---------- Contact ---------- */
.ap-hero--center .container { max-width: 760px; }
.ap-hero__subtitle--center { max-width: none; margin-left: auto; margin-right: auto; }

.ap-contact { padding: clamp(56px, 8vw, 96px) 0; background: #fff; }
.ap-contact__content p { color: var(--gardon-gray); font-size: 1.05rem; line-height: 1.75; margin-bottom: 18px; }
.ap-contact__content a { color: var(--gardon-base); font-weight: 600; }
.ap-contact__cards { display: flex; flex-direction: column; gap: 14px; margin-top: 28px; }
.ap-contact__card {
    display: flex; align-items: center; gap: 16px; padding: 18px 20px;
    background: var(--ap-sage); border-radius: var(--ap-radius); color: var(--ap-ink);
    transition: transform .2s ease, box-shadow .2s ease;
}
a.ap-contact__card:hover { transform: translateY(-3px); box-shadow: var(--ap-shadow); }
.ap-contact__icon {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; border-radius: 50%; background: #fff; color: var(--gardon-base);
}
.ap-contact__label { display: block; font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--gardon-gray); }
.ap-contact__value { display: block; font-weight: 600; font-size: 1.05rem; }

.ap-contact__form-card {
    background: var(--ap-sage); border-radius: 20px; padding: clamp(28px, 4vw, 44px);
}
.ap-contact__form-card .wpcf7-form p { margin-bottom: 16px; }
.ap-contact__form-card .wpcf7-form label { display: block; font-weight: 600; font-size: .9rem; color: var(--ap-ink); margin-bottom: 6px; }
.ap-contact__form-card .wpcf7-form input[type="text"],
.ap-contact__form-card .wpcf7-form input[type="email"],
.ap-contact__form-card .wpcf7-form input[type="tel"],
.ap-contact__form-card .wpcf7-form select,
.ap-contact__form-card .wpcf7-form textarea {
    width: 100%; padding: 12px 16px !important; border-radius: 10px !important;
    border: 1px solid var(--ap-border) !important; background: #fff !important;
    font-family: inherit; font-size: 1rem; color: var(--ap-ink); appearance: auto;
}
.ap-contact__form-card .wpcf7-form input:focus,
.ap-contact__form-card .wpcf7-form select:focus,
.ap-contact__form-card .wpcf7-form textarea:focus {
    outline: none; border-color: var(--gardon-base) !important;
}
.ap-contact__form-card .wpcf7-form input[type="submit"] {
    padding: 13px 30px !important; border-radius: 999px !important; border: none !important;
    background: var(--gardon-base) !important; color: #fff !important; font-weight: 600;
    text-transform: uppercase; letter-spacing: .02em; font-size: .9rem; cursor: pointer;
}
.ap-contact__form-card .wpcf7-form input[type="submit"]:hover { background: var(--ap-ink) !important; }
.ap-contact__form-card .wpcf7-spinner { margin-left: 12px; }
.ap-contact__form-card .wpcf7-not-valid-tip { color: #c0392b; font-size: .85rem; margin-top: 4px; }
.ap-contact__form-card .wpcf7-response-output { border-radius: 10px; margin-top: 18px; }

/* ---------- Closing CTA ---------- */
.ap-cta { padding: 0 0 clamp(56px, 9vw, 110px); background: #fff; }
.ap-cta .cta-one__inner {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 26px;
    background: var(--ap-sage); border-radius: 24px;
    padding: clamp(34px, 6vw, 64px) clamp(26px, 5vw, 60px);
}
.ap-cta .cta-one__title {
    color: var(--ap-ink); font-size: clamp(1.5rem, 3vw, 2rem);
    letter-spacing: -0.01em; margin: 0; max-width: 24ch; text-wrap: balance;
}

/* ---------- Shop filters ---------- */
.ap-filters { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin-bottom: 44px; }
.ap-filters__group { display: flex; flex-direction: column; gap: 6px; font-size: .85rem; font-weight: 600; color: var(--ap-ink); }
.ap-filters select {
    min-width: 160px; padding: 10px 14px; border-radius: 10px;
    border: 1px solid var(--ap-border); background: #fff; color: var(--ap-ink); font-weight: 500;
}
.ap-filters select:focus-visible { outline: 2px solid var(--gardon-base); outline-offset: 1px; }

/* ---------- Shop archive: toolbar + product grid ---------- */
.ap-shop-toolbar {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
    margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px solid var(--ap-border);
    font-size: .9rem; color: var(--gardon-gray);
}
.ap-shop-toolbar .woocommerce-ordering select {
    padding: 8px 12px; border-radius: 8px; border: 1px solid var(--ap-border);
    background: #fff; color: var(--ap-ink); font-size: .875rem;
}

.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 28px 22px;
    list-style: none; margin: 0 0 8px; padding: 0;
}
.woocommerce ul.products li.product {
    width: auto !important; float: none !important; margin: 0 !important;
    display: flex; flex-direction: column;
    background: #fff; border: 1px solid var(--ap-border); border-radius: var(--ap-radius);
    padding: 14px 14px 18px; transition: transform .2s ease, box-shadow .2s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--ap-shadow); }
.woocommerce ul.products li.product .product__all-img {
    position: relative; display: block; overflow: hidden;
    aspect-ratio: 1 / 1; border-radius: 10px; border: none; margin-bottom: 14px; background: var(--ap-sage);
}
.woocommerce ul.products li.product .product__all-img img {
    width: 100%; height: 100%; object-fit: cover; border-radius: 0;
    mix-blend-mode: normal; /* Gardon's default 'darken' blend distorts real product photography */
    transition: transform .4s cubic-bezier(.22,.61,.36,1);
}
.woocommerce ul.products li.product:hover .product__all-img img { transform: scale(1.045); }

.woocommerce ul.products li.product .product__all-content {
    display: flex; flex-direction: column; flex: 1; padding: 0; text-align: center;
}
.ap-product-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-bottom: 10px; }
.ap-chip {
    display: inline-block; font-size: .72rem; font-weight: 600; letter-spacing: .01em;
    padding: 3px 10px; border-radius: 999px; line-height: 1.6;
}
.ap-chip--strain { background: var(--ap-ink); color: #fff; }
.ap-chip--effect { background: var(--ap-sage); color: var(--gardon-base); border: 1px solid rgba(30, 107, 64, .2); }
.ap-chip--potency { background: #fff; color: var(--ap-ink); border: 1px solid var(--ap-border); }

.woocommerce ul.products li.product .product__all-title {
    font-size: 1.02rem; line-height: 1.35; color: var(--ap-ink); font-weight: 700; margin: 0 0 6px;
}
.woocommerce ul.products li.product .product__all-title a { color: inherit; }
.woocommerce ul.products li.product .price {
    display: block; font-weight: 700; color: var(--ap-ink); font-size: 1.05rem; margin-top: auto; padding-top: 6px;
}
.woocommerce ul.products li.product .product__add-to-cart { margin-top: 12px; }
.woocommerce ul.products li.product .button {
    display: block; width: 100%; text-align: center; font-size: .85rem;
    padding: 10px 14px; border-radius: 8px; background: var(--gardon-base); color: #fff; font-weight: 600;
}
.woocommerce ul.products li.product .button:hover { background: var(--ap-ink); }
.woocommerce ul.products li.product .products__all-icon-boxes:empty { display: none; }
.woocommerce nav.woocommerce-pagination { margin-top: 36px; text-align: center; }

/* ---------- Single product info block ---------- */
.ap-cannabis-info { margin: 18px 0; padding: 20px; border-radius: 14px; background: var(--ap-sage); }
.ap-badges a {
    display: inline-block; font-size: .8rem; font-weight: 600; padding: 3px 12px; border-radius: 999px;
    margin: 0 6px 6px 0; background: #fff; color: var(--gardon-base);
    border: 1px solid rgba(30, 107, 64, .3);
}
.ap-potency { font-weight: 700; color: var(--ap-ink); margin: 8px 0; }
.ap-coa-btn { margin-top: 10px; }

/* ---------- Age gate ---------- */
.ap-age-locked { overflow: hidden; }
.ap-age-gate {
    position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center;
    background: rgba(25, 41, 25, .96);
}
.ap-age-gate__box { max-width: 430px; width: 92%; text-align: center; background: #fff; border-radius: 20px; padding: 46px 34px; }
.ap-age-gate__logo { max-height: 60px; width: auto; margin-bottom: 22px; }
.ap-age-gate__title { font-size: 1.7rem; letter-spacing: -0.01em; color: var(--ap-ink); margin-bottom: 10px; }
.ap-age-gate__text { font-size: .95rem; color: var(--gardon-gray); margin-bottom: 24px; }
.ap-age-gate__actions { display: flex; flex-direction: column; gap: 12px; align-items: center; }
.ap-age-gate__exit { font-size: .875rem; text-decoration: underline; color: var(--gardon-gray); }

/* ---------- Page-header banner (Shop / single product / etc.) ----------
   Gardon's own .in_plugin variant sets padding: 297px 0 140px -- sized for
   a full-bleed background photo we don't use here. Both classes share
   specificity (0,1,0) so the two-class selector below wins outright. */
.page-header__inner.in_plugin,
.page-header__inner {
    /* .main-header-two (logo/nav) is absolutely positioned, top:20px, floating
       over this banner -- padding-top must clear it or the title collides. */
    padding: 140px 0 50px;
}
.page-header__inner h2 { font-size: 2.1rem; line-height: 1.25; margin-bottom: 0; }

/* ---------- Header: fixed, solidifies + hides-on-scroll-down ---------- */
.main-header-two {
    position: fixed; /* was absolute (scrolls away); fixed lets JS hide/show it on scroll */
}
.main-header-two.is-scrolled {
    top: 0; left: 0; right: 0;
    background: var(--ap-ink);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
}
.main-header-two.is-hidden { transform: translateY(-110%); }
@media (prefers-reduced-motion: reduce) {
    .main-header-two { transition: none; }
}

/* ---------- Header: 3-column grid (nav | centered logo | icons) ---------- */
.main-menu-two__wrapper-inner {
    display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px;
}
.ap-header-left { display: flex; align-items: center; gap: 28px; justify-self: start; }
.main-menu-two__logo { justify-self: center; }
.ap-header-icons {
    justify-self: end; display: flex; align-items: center; gap: 6px;
    list-style: none; padding: 0; margin: 0;
}
.ap-header-icons a, .ap-header-icons button {
    display: flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, .32);
    background: rgba(255, 255, 255, .14); color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .22);
    transition: background .2s, border-color .2s, color .2s;
}
.ap-header-icons a:hover, .ap-header-icons button:hover, .ap-search-toggle.is-open {
    background: rgba(255, 255, 255, .26); border-color: rgba(255, 255, 255, .45); color: #fff;
}
.ap-header-icons svg { width: 21px; height: 21px; }
/* Same viewBox/CSS box as account+cart, but the circle+handle drew much
   smaller within it (~55% fill vs ~80%) -- bump the rendered size directly
   since redrawing the path only shifted the visual size by <1px. */
.ap-header-icons svg.ap-icon-search { width: 29px; height: 29px; }
.ap-cart-link { position: relative; }
.ap-cart-count {
    position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 3px;
    border-radius: 999px; background: var(--ap-gold); color: var(--ap-ink);
    font-size: .65rem; font-weight: 700; line-height: 16px; text-align: center;
}

.ap-megamenu-toggle {
    display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px;
    border: 1px solid rgba(255, 255, 255, .38); border-radius: 999px;
    background: rgba(255, 255, 255, .16); color: #fff; font-weight: 600; font-size: .9rem;
    text-transform: uppercase; letter-spacing: .03em;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .22);
    transition: background .2s, border-color .2s;
}
.ap-megamenu-toggle:hover, .ap-megamenu-toggle.is-open { background: rgba(255, 255, 255, .28); border-color: rgba(255, 255, 255, .55); }
.ap-megamenu-toggle svg { width: 18px; height: 18px; }
.ap-megamenu-toggle .ap-megamenu-toggle__icon-close { display: none; }
.ap-megamenu-toggle.is-open .ap-megamenu-toggle__icon-open { display: none; }
.ap-megamenu-toggle.is-open .ap-megamenu-toggle__icon-close[hidden] { display: block; }

.ap-megamenu {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 998;
    background: #fff; border-top: 1px solid var(--ap-border);
    box-shadow: 0 24px 48px rgba(0, 0, 0, .18);
}
.ap-megamenu__grid {
    display: grid; grid-template-columns: 1.4fr 1fr 0.9fr; gap: 44px;
    padding: clamp(28px, 4vw, 48px) 0;
}
.ap-megamenu__label {
    font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
    color: var(--gardon-gray); margin-bottom: 16px;
}
.ap-megamenu__cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ap-megamenu__cat {
    display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
    padding: 16px 8px; border-radius: 14px; background: var(--ap-sage); color: var(--ap-ink);
    font-size: .85rem; font-weight: 600; transition: background .2s, color .2s;
}
.ap-megamenu__cat:hover { background: var(--gardon-base); color: #fff; }
.ap-megamenu__cat-icon { color: var(--gardon-base); }
.ap-megamenu__cat:hover .ap-megamenu__cat-icon { color: #fff; }
.ap-megamenu__filters { display: flex; flex-direction: column; gap: 28px; }
.ap-pill {
    display: inline-block; padding: 7px 16px; border-radius: 999px; margin: 0 8px 8px 0;
    border: 1px solid var(--ap-border); color: var(--ap-ink); font-size: .82rem; font-weight: 600;
    transition: background .2s, color .2s, border-color .2s;
}
.ap-pill:hover { background: var(--ap-ink); border-color: var(--ap-ink); color: #fff; }
.ap-megamenu__promo {
    position: relative; display: block; border-radius: 16px; overflow: hidden; min-height: 220px;
    background: var(--ap-ink);
}
.ap-megamenu__promo img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.ap-megamenu__promo-cta {
    position: absolute; left: 16px; bottom: 16px; z-index: 1;
    background: #fff; color: var(--ap-ink); font-weight: 700; font-size: .82rem;
    padding: 8px 18px; border-radius: 999px;
}

/* Overlays the header itself (same position, same height) instead of
   dropping a new panel below it -- covers the nav row while search is open. */
.ap-search-panel {
    position: absolute; inset: 0; z-index: 1000;
    /* Matches .ap-hero's exact background (both layers: the gold radial
       glow + the linear gradient), not just an approximate flat color.
       background-attachment:fixed makes the gradient's percentages resolve
       against the viewport instead of this element's own (narrower, inset)
       box -- .main-header-two is inset 100px each side while .ap-hero spans
       edge-to-edge, so without this the "78% 18%" glow would land in a
       different spot and one side would read as a mismatched tone. */
    background:
        radial-gradient(1100px 560px at 78% 18%, rgba(201, 162, 74, .12), transparent 62%),
        linear-gradient(158deg, #1c2e1e 0%, #142115 52%, #0f1a10 100%);
    background-attachment: fixed;
    display: flex; align-items: center;
}
.ap-search-panel .container { width: 100%; }
.ap-search-form {
    display: flex; align-items: center; gap: 12px;
    max-width: 720px; margin: 0 auto; padding: 6px 10px 6px 20px;
    background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
}
.ap-search-form__icon { flex: 0 0 auto; width: 19px; height: 19px; color: rgba(255, 255, 255, .55); }
.ap-search-form input[type="search"].ap-search-form__input {
    flex: 1; min-width: 0; background: transparent !important; border: none !important; outline: none;
    color: #fff; font-size: 1rem; padding: 12px 0; border-radius: 0;
}
.ap-search-form__input::placeholder { color: rgba(255, 255, 255, .45); }
.ap-search-form input[type="search"]::-webkit-search-decoration,
.ap-search-form input[type="search"]::-webkit-search-cancel-button,
.ap-search-form input[type="search"]::-webkit-search-results-button,
.ap-search-form input[type="search"]::-webkit-search-results-decoration { display: none; }
/* Gardon's global `button { padding: .6em 1em .4em; background: #eceae0; ... }`
   reset (style.css ~L394) fights this circular icon button on several
   properties even though our class selector should out-specificity a bare
   element selector -- !important settles it without touching the parent. */
.ap-search-form__close {
    flex: 0 0 auto !important; display: flex !important; align-items: center; justify-content: center;
    width: 34px !important; height: 34px !important; padding: 0 !important;
    border-radius: 50% !important; border: none !important;
    background: transparent !important; color: rgba(255, 255, 255, .7) !important;
}
.ap-search-form__close:hover { background: rgba(255, 255, 255, .12) !important; color: #fff !important; }
.ap-search-form__close svg { width: 17px; height: 17px; display: block; }

@media (max-width: 991px) {
    .ap-megamenu-toggle span, .ap-header-icons { display: none; }
    .ap-megamenu__grid { grid-template-columns: 1fr; gap: 28px; }
    .ap-megamenu__cat-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Header over dark hero (front page only) ---------- */
.home .main-header-two .main-menu__list > li > a { color: rgba(255, 255, 255, .88); }
.home .main-header-two .main-menu__list > li > a:hover,
.home .main-header-two .main-menu__list > li.current-menu-item > a { color: var(--ap-gold); }

/* ---------- Footer ---------- */
.ap-footer { background: var(--ap-ink); padding-top: clamp(48px, 7vw, 80px); }
.ap-footer__main {
    display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: clamp(32px, 5vw, 64px);
    padding-bottom: clamp(36px, 6vw, 56px);
}
.ap-footer__logo { max-height: 44px; width: auto; margin-bottom: 18px; }
.ap-footer__logo-text { display: inline-block; font-size: 1.3rem; font-weight: 700; color: #fff; margin-bottom: 18px; }
.ap-footer__brand p { color: rgba(255, 255, 255, .6); font-size: .95rem; line-height: 1.7; max-width: 34ch; }
.ap-footer__col h4 {
    color: var(--ap-gold); font-size: .8rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .06em; margin-bottom: 20px;
}
.ap-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ap-footer__col-grid { grid-template-columns: 1fr 1fr; column-gap: 20px; }
.ap-footer__col a { color: rgba(255, 255, 255, .75); font-size: .95rem; }
.ap-footer__col a:hover { color: #fff; }
.ap-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding: 22px 0; }
.ap-footer__bottom p { margin: 0; color: rgba(255, 255, 255, .55); font-size: .85rem; text-align: center; }
@media (max-width: 767px) {
    .ap-footer__main { grid-template-columns: 1fr; text-align: center; }
    .ap-footer__brand p { max-width: none; margin-left: auto; margin-right: auto; }
}

/* ---------- Accessibility ---------- */
a:focus-visible, button:focus-visible { outline: 2px solid var(--gardon-base); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    .ap-categories__card, .ap-effects__card, .ap-product-card { transition: none; }
    .ap-categories__card:hover, .ap-effects__card:hover, .ap-product-card:hover { transform: none; }
}
