body :is(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .button, .elementor-button, .wp-block-button__link, .wp-element-button, .ast-custom-button, .hfe-infocard-button, .gw-card-arrow, .gw-catalog-all, .gw-catalog-action, .gw-special-all, #masthead .menu-item-1756 > .menu-link):not(#gw-contact-float, #gw-back-to-top, #masthead .ast-menu-toggle, #masthead .dropdown-menu-toggle) {
    outline: 1px solid #a88645;
    outline-offset: -1px;
}
body :is(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"], .button, .elementor-button, .wp-block-button__link, .wp-element-button, .ast-custom-button, .hfe-infocard-button, .gw-card-arrow, .gw-catalog-all, .gw-catalog-action, .gw-special-all):not(#gw-contact-float, #gw-back-to-top):focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
#gw-back-to-top {
    outline: 1px solid #a88645;
    outline-offset: -1px;
}
body #gwlo-open,
body #gwd-open {
    outline: 2px solid #efd28a;
    outline-offset: -2px;
}
:is(#gwlo-open, #gwd-open)[data-gw-has-items] {
    background-color: #103f2f;
    color: #fff;
}
.gw-cart-symbol {
    width: 1.2em;
    height: 1.2em;
    flex: 0 0 auto;
    vertical-align: -.22em;
    margin-inline-end: .28em;
    stroke: currentColor;
    fill: none;
}
[data-gw-has-items] .gw-cart-symbol .gw-cart-basket {
    fill: currentColor;
}
:is(#gwlo-open, #gwd-open)[data-gw-has-items] :is(#gwlo-count, #gwd-count) {
    background: #efd28a;
    color: #123b2a;
    border-radius: .42em;
    padding: .12em .45em;
}

/* Reuse the button gold on content photos, cards and banners. */
main {
    --gw-gold-edge: #a88645;
}
main :is(img, .gw-catalog-card, .gw-solution-card, .gw-product, .gw-special, .gw-green-friday, .gw-video-card,
    .wp-block-cover, .gw-inner-hero, .elementor-element-db1012d, .elementor-element-343a7a7,
    .elementor-element-9b0003c, .elementor-element-8f310cd) {
    outline: 1px solid var(--gw-gold-edge);
    outline-offset: -1px;
}
main :is(.gw-catalog-card, .gw-solution-card, .gw-product, .gw-video-card) {
    /* Color the existing card edge where a theme border is present. */
    border-color: var(--gw-gold-edge);
}
main :is(.gw-catalog-card, .gw-solution-card, .gw-product, .gw-video-card) img {
    /* The thumbnail shares the card's outer edge. */
    outline: none;
}
main figure:has(> :is(a, img)):focus-within a:focus-visible,
main :is(.gw-catalog-card, .gw-solution-card, .gw-product, .gw-video-card) a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

main :is(#gwlo-intro, #gwd-intro, .gwlo-status, .gwd-status),
body.page:not(.elementor-page) main .entry-content .gw-product-enquiry {
    border-color: var(--gw-gold-edge);
}

.gw-cart-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-inline-start: auto;
    flex-shrink: 0;
}
.gw-cart-clear[hidden] {
    display: none;
}
.gw-cart-clear {
    font-size: .82rem;
}
@media (max-width: 480px) {
    :is(.gwlo-header, .gwd-header) {
        flex-wrap: wrap;
    }
}

/* Match the photo frame to the adjacent vertical video, excluding its caption. */
body.page:not(.elementor-page) #content .entry-content .gw-plant-media > figure.gw-article-photo:has(img) {
    position: relative;
    aspect-ratio: 9 / 16;
    overflow: hidden;
    border-radius: 12px;
    background: #102a1d;
}
body.page:not(.elementor-page) #content .entry-content .gw-plant-media > figure.gw-article-photo:has(img) > a {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
}
body.page:not(.elementor-page) #content .entry-content .gw-plant-media > figure.gw-article-photo:has(img) img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    border-radius: 12px !important;
}
main .gw-plant-video-card {
    outline: 1px solid var(--gw-gold-edge);
    outline-offset: -1px;
    border-color: var(--gw-gold-edge);
}
main :is(.gw-plant-video-card, .gw-video-card) img {
    outline: none;
}

:is(#gwlo-open.gwlo-floating, #gwd-open.gwd-floating):not([data-gw-has-items]) {
    display: none;
}

.gw-cart-next {
    display: block;
    width: 100%;
    margin: 0 0 12px;
}
.gw-cart-next[hidden] {
    display: none;
}
.gw-cart-form-heading {
    margin-block: 0 10px;
    scroll-margin-block-start: 16px;
}

#masthead .custom-logo-link img {
    outline: 1px solid #a88645;
    outline-offset: -1px;
}

/* Compact version of the service cards for the home page. */
body.home #content .gw-solution-grid > .gw-solution-card {
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgb(15 55 35 / .07);
    overflow: hidden;
    gap: 0 !important;
}
body.home #content .gw-solution-grid > .gw-solution-card > .gw-solution-body {
    padding: 16px clamp(14px, 2vw, 22px) !important;
    gap: 12px !important;
}
