/* ==========================================================================
   GDS Lighting — Theme styles
   Recreates the exact visual design from the reference screenshots.
   ========================================================================== */

:root {
    --gds-green: #7cb342;
    --gds-green-dark: #6ba035;
    --gds-green-soft: #eaf4dc;
    --gds-blue: #2b6cb0;
    --gds-blue-dark: #245a96;
    --gds-navy: #1e3a8a;
    --gds-text: #1a202c;
    --gds-text-soft: #4a5568;
    --gds-text-muted: #718096;
    --gds-border: #e2e8f0;
    --gds-border-soft: #edf2f7;
    --gds-bg: #ffffff;
    --gds-bg-soft: #f7f9fc;
    --gds-bg-muted: #f1f4f8;
    --gds-card-bg: #ffffff;
    --gds-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
    --gds-shadow-md: 0 2px 6px rgba(15, 23, 42, 0.06);
    --gds-radius: 10px;
    --gds-radius-sm: 6px;
    --gds-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body.gds-theme {
    margin: 0;
    font-family: var(--gds-font);
    font-size: 15px;
    line-height: 1.55;
    color: var(--gds-text);
    background: var(--gds-bg);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--gds-green-dark); text-decoration: none; }
a:hover { color: var(--gds-green); }
button { font-family: inherit; cursor: pointer; }

.gds-container { max-width: 1280px; margin: 0 auto; padding: 0 32px; width: 100%; }

/* ---- Buttons ---- */
.gds-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 8px;
    padding: 10px 22px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 14px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
    white-space: nowrap;
    text-decoration: none;
}
.gds-btn-green { background: var(--gds-green); color: #fff; }
.gds-btn-green:hover { background: var(--gds-green-dark); color: #fff; }
.gds-btn-outline {
    background: #fff;
    color: var(--gds-text);
    border-color: var(--gds-border);
    border-radius: var(--gds-radius-sm);
    padding: 9px 18px;
    font-weight: 500;
}
.gds-btn-outline:hover { border-color: var(--gds-green); color: var(--gds-green-dark); }
.gds-btn-blue {
    background: var(--gds-blue);
    color: #fff;
    border-radius: var(--gds-radius-sm);
}
.gds-btn-blue:hover { background: var(--gds-blue-dark); color: #fff; }
.gds-btn-lg { padding: 12px 28px; font-size: 15px; }
.gds-btn-xl { padding: 14px 32px; font-size: 15.5px; }
.gds-btn-full { width: 100%; }

/* ---- Top announcement bar (dark blue) ---- */
.gds-announcement {
    background: #203273;
    color: #e7ecf8;
    font-size: 12.5px;
    padding: 8px 0;
    position: relative;
    z-index: 10;
}
.gds-announcement .gds-container {
    display: flex; align-items: center; justify-content: center; gap: 12px;
    text-align: center;
    position: relative;
    padding-right: 60px;
}
.gds-announcement-close {
    background: transparent; border: 0; color: #fff; font-size: 20px;
    position: absolute; right: 16px; top: 50%; transform: translateY(-50%);
    line-height: 1; padding: 4px 10px;
    cursor: pointer;
    z-index: 2;
}
.gds-announcement-close:hover { opacity: .75; }
.gds-shipping-bar { position: relative; z-index: 10; }

/* ---- Free shipping bar (green) ---- */
.gds-shipping-bar {
    background: var(--gds-green);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
}
.gds-shipping-bar .gds-container {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    padding: 7px 0;
    text-align: center;
}
.gds-shipping-bar .sep { opacity: .5; }
.gds-shipping-bar a { color: #fff; text-decoration: underline; }

/* ---- Header ---- */
.gds-header {
    background: #fff;
    border-bottom: 1px solid var(--gds-border-soft);
    position: sticky;
    top: 0;
    z-index: 50;
    box-shadow: 0 0 0 0 rgba(0,0,0,0);
    transition: box-shadow .2s ease;
}
.gds-header.is-scrolled { box-shadow: 0 2px 8px rgba(15,23,42,0.06); }
/* Push the sticky header below the WP admin bar when logged in */
body.admin-bar .gds-header { top: 32px; }
@media screen and (max-width: 782px) {
    body.admin-bar .gds-header { top: 46px; }
}
.gds-header-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: 14px 32px;
    min-width: 0;
}
.gds-logo-link { display: inline-flex; align-items: center; gap: 8px; color: var(--gds-text); font-weight: 700; font-size: 17px; }
.gds-logo-mark {
    width: 38px; height: 38px;
    background: var(--gds-bg-muted);
    border-radius: 8px;
    display: inline-flex; align-items: center; justify-content: center;
}

.gds-search {
    position: relative; max-width: 520px; width: 100%; justify-self: center;
    min-width: 0;
}
.gds-search input {
    width: 100%; padding: 10px 16px 10px 40px;
    border: 1px solid var(--gds-border);
    border-radius: 999px;
    background: var(--gds-bg-soft);
    font-size: 14px;
    color: var(--gds-text);
    outline: none;
    transition: border-color .15s ease, background .15s ease;
}
.gds-search input:focus { border-color: var(--gds-green); background: #fff; }
.gds-search-icon {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    color: var(--gds-text-muted); pointer-events: none;
}

.gds-header-actions { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.gds-action {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--gds-text-soft);
    font-size: 14px;
    font-weight: 500;
}
.gds-action:hover { color: var(--gds-green-dark); }
.gds-action svg { color: var(--gds-text-muted); }
.gds-cart { position: relative; }
.gds-cart svg { color: var(--gds-text-soft); }
.gds-cart-count {
    display: none;
    position: absolute;
    top: -6px;
    right: -10px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--gds-green);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    box-shadow: 0 0 0 2px #fff;
}
.gds-cart-count.is-visible { display: inline-block; }

.gds-menu-toggle {
    display: none;
    background: transparent; border: 0;
    width: 34px; height: 30px;
    flex-direction: column; justify-content: space-between;
    padding: 6px 4px;
}
.gds-menu-toggle span { display: block; height: 2px; width: 100%; background: var(--gds-text); border-radius: 2px; }

/* ---- Primary nav (category list) ---- */
.gds-primary-nav { border-top: 1px solid var(--gds-border-soft); background: #fff; position: relative; }
.gds-primary-nav .gds-container { padding-top: 0; padding-bottom: 0; }
.gds-nav-list {
    display: flex; gap: 28px; flex-wrap: wrap;
    list-style: none; margin: 0; padding: 0;
}
.gds-nav-list > li { position: relative; }
.gds-nav-list > li > a {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 12px 0;
    color: var(--gds-text-soft);
    font-size: 14px;
    font-weight: 500;
    border-bottom: 2px solid transparent;
}
.gds-nav-list > li > a:hover,
.gds-nav-list > li.current-menu-item > a,
.gds-nav-list > li.is-open > a,
.gds-nav-list > li:hover > a {
    color: var(--gds-green-dark);
    border-bottom-color: var(--gds-green);
}
.gds-nav-caret { transition: transform .15s ease; opacity: .7; }
.gds-nav-list > li:hover .gds-nav-caret,
.gds-nav-list > li.is-open .gds-nav-caret { transform: rotate(180deg); opacity: 1; }

/* ---- Mega dropdown ---- */
.gds-primary-nav .gds-dropdown {
    display: none;
    position: absolute;
    top: 100%; left: 0;
    min-width: 560px;
    max-width: calc(100vw - 64px);
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-top: 2px solid var(--gds-green);
    border-radius: 0 0 10px 10px;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
    padding: 18px 20px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s;
    z-index: 200;
}
.gds-primary-nav .gds-nav-list > li.is-open > .gds-dropdown {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity .15s ease, transform .15s ease, visibility 0s linear 0s;
}
/* Hover-triggered open is desktop-only — touch devices use the .is-open
   class set by JS so the menu doesn't flicker open on a tap. */
@media (hover: hover) and (pointer: fine) {
    .gds-primary-nav .gds-nav-list > li:hover > .gds-dropdown {
        display: block;
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        transition: opacity .15s ease, transform .15s ease, visibility 0s linear 0s;
    }
}
/* Defensive list resets so nested UL/LI never fall back to browser bullets */
.gds-primary-nav ul,
.gds-primary-nav li,
.gds-dropdown ul,
.gds-dropdown li,
.gds-nav-list .sub-menu,
.gds-nav-list .sub-menu li {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0;
}

/* ============================================================
   wp_nav_menu output: <ul class="sub-menu"> dropdowns
   (used when an Appearance → Menus menu is assigned to Primary)
   ============================================================ */
.gds-primary-nav .gds-nav-list .sub-menu {
    display: none;
    position: absolute;
    top: 100%; left: 0;
    min-width: 240px;
    max-width: calc(100vw - 64px);
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-top: 2px solid var(--gds-green);
    border-radius: 0 0 10px 10px;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
    padding: 10px 0;
    z-index: 200;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s;
}
.gds-primary-nav .gds-nav-list > li.is-open > .sub-menu,
.gds-primary-nav .gds-nav-list .menu-item.is-open > .sub-menu {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity .15s ease, transform .15s ease, visibility 0s linear 0s;
}
@media (hover: hover) and (pointer: fine) {
    .gds-primary-nav .gds-nav-list > li:hover > .sub-menu,
    .gds-primary-nav .gds-nav-list .menu-item:hover > .sub-menu {
        display: block;
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        transition: opacity .15s ease, transform .15s ease, visibility 0s linear 0s;
    }
}
.gds-primary-nav .gds-nav-list .sub-menu li {
    margin: 0;
    position: relative;
}
.gds-primary-nav .gds-nav-list .sub-menu a {
    display: block;
    padding: 8px 18px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--gds-text-soft);
    white-space: nowrap;
    border-bottom: 0 !important;
    line-height: 1.4;
}
.gds-primary-nav .gds-nav-list .sub-menu a:hover {
    color: var(--gds-green-dark);
    background: var(--gds-green-soft);
}
/* Nested sub-menu (3rd level) — flyout to the right */
.gds-primary-nav .gds-nav-list .sub-menu .sub-menu {
    top: 0;
    left: 100%;
    border-top: 2px solid var(--gds-green);
    border-radius: 0 10px 10px 10px;
    margin-top: -10px;
}
.gds-primary-nav .gds-nav-list .menu-item-has-children > a {
    padding-right: 26px;
    position: relative;
}
.gds-primary-nav .gds-nav-list > .menu-item-has-children > a::after {
    content: "";
    position: absolute;
    right: 6px; top: 50%;
    width: 6px; height: 6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-75%) rotate(45deg);
    opacity: .6;
}
.gds-primary-nav .gds-nav-list .sub-menu .menu-item-has-children > a::after {
    content: "›";
    position: absolute;
    right: 12px; top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    opacity: .5;
}
.gds-primary-nav .gds-nav-list .sub-menu .menu-item-has-children > a { padding-right: 28px; }

/* Flush-right the dropdowns that would otherwise overflow */
.gds-nav-list > li:nth-last-child(-n+2) .sub-menu { left: auto; right: 0; }
.gds-nav-list > li:nth-last-child(-n+2) .sub-menu .sub-menu { left: auto; right: 100%; border-radius: 10px 0 10px 10px; }
.gds-dropdown-inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 20px 28px;
}
.gds-dropdown-col { min-width: 0; }
.gds-dropdown-head {
    display: block;
    font-weight: 600;
    font-size: 13px;
    color: var(--gds-text);
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--gds-border-soft);
    letter-spacing: 0.01em;
}
.gds-dropdown-head:hover { color: var(--gds-green-dark); }
.gds-dropdown-list {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 6px;
}
.gds-dropdown-list a {
    display: block;
    font-size: 13px;
    color: var(--gds-text-soft);
    padding: 3px 0;
    line-height: 1.35;
}
.gds-dropdown-list a:hover { color: var(--gds-green-dark); }

/* Push the last couple of dropdowns flush-right so they don't overflow */
.gds-nav-list > li:nth-last-child(-n+2) .gds-dropdown { left: auto; right: 0; }

/* ---- Hero slider ---- */
.gds-hero {
    position: relative;
    overflow: hidden;
    background: #0b0b0b;
}
.gds-hero-track { position: relative; }
.gds-hero-slide {
    position: relative;
    min-height: 420px;
    background: linear-gradient(135deg, #3e2a1f 0%, #1f1510 100%);
    background-size: cover;
    background-position: center;
    display: none;
}
.gds-hero-slide.is-active { display: block; }
.gds-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.2) 55%, rgba(0,0,0,0) 100%);
}
.gds-hero-inner { position: relative; min-height: 420px; display: flex; align-items: center; }
.gds-hero-content { max-width: 540px; color: #fff; padding: 40px 0; }
.gds-hero-badge {
    display: inline-block;
    background: var(--gds-green);
    color: #fff;
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    margin-bottom: 18px;
}
.gds-hero-title {
    font-size: 44px;
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 14px;
    color: #fff;
}
.gds-hero-desc {
    font-size: 16px;
    margin: 0 0 24px;
    color: rgba(255,255,255,0.85);
    max-width: 440px;
}
.gds-hero-nav {
    position: absolute;
    top: 50%; transform: translateY(-50%);
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,0.9);
    border: 0;
    color: var(--gds-text);
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    box-shadow: var(--gds-shadow-sm);
}
.gds-hero-prev { left: 16px; }
.gds-hero-next { right: 16px; }
.gds-hero-dots {
    position: absolute;
    bottom: 16px; left: 0; right: 0;
    display: flex; justify-content: center; gap: 6px;
}
.gds-hero-dots button {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,0.4);
    border: 0;
    padding: 0;
}
.gds-hero-dots button.is-active { background: #fff; width: 22px; border-radius: 4px; }

/* ---- Product rows ---- */
.gds-row { padding: 42px 0 18px; }
.gds-row-head {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 18px;
}
.gds-row-title {
    font-size: 22px; font-weight: 700; margin: 0;
    color: var(--gds-text);
    letter-spacing: -0.01em;
}
.gds-view-all {
    color: var(--gds-green-dark);
    font-size: 13px;
    font-weight: 500;
}
.gds-view-all:hover { text-decoration: underline; }

.gds-row-slider { position: relative; }
.gds-row-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 4 * 18px) / 5);
    gap: 18px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    padding-bottom: 4px;
}
.gds-row-track::-webkit-scrollbar { display: none; }
.gds-row-track > .gds-product-card { scroll-snap-align: start; }
.gds-row-nav {
    position: absolute;
    top: 42%;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--gds-border);
    color: var(--gds-text-soft);
    display: inline-flex; align-items: center; justify-content: center;
    box-shadow: var(--gds-shadow-sm);
    cursor: pointer;
    z-index: 2;
    transition: color .15s, border-color .15s, box-shadow .15s;
}
.gds-row-prev { left: -14px; }
.gds-row-next { right: -14px; }
.gds-row-nav:hover { color: var(--gds-green-dark); border-color: var(--gds-green); box-shadow: var(--gds-shadow-md); }

/* ---- Product card ---- */
.gds-product-card {
    position: relative;
    background: var(--gds-card-bg);
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 14px 14px 16px;
    display: flex;
    flex-direction: column;
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.gds-product-card:hover {
    border-color: var(--gds-green);
    box-shadow: var(--gds-shadow-md);
    transform: translateY(-2px);
}
.gds-badge {
    position: absolute;
    top: 10px; left: 10px;
    z-index: 2;
    display: inline-block;
    padding: 3px 9px;
    border-radius: 4px;
    font-size: 10.5px;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.02em;
}
.badge-best { background: #7cb342; }
.badge-new { background: #00a884; }
.badge-hot { background: #e53e3e; }
.badge-popular { background: #9ccc65; color: #fff; }
.badge-default { background: #718096; }

.gds-card-media {
    background: var(--gds-bg-soft);
    border-radius: var(--gds-radius-sm);
    height: 140px;
    margin-bottom: 14px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    padding: 10px;
}
.gds-card-media img,
img.gds-card-image {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.gds-card-placeholder {
    width: 100px; height: 60px;
    background: linear-gradient(135deg, #e8ecf4 0%, #d8ddea 100%);
    border-radius: 4px;
    position: relative;
}
.gds-card-placeholder::after {
    content: "";
    position: absolute; inset: 14px;
    background: repeating-linear-gradient(45deg, #c9d0e0 0 4px, transparent 4px 10px);
    border-radius: 2px;
    opacity: .6;
}
.gds-card-body { display: flex; flex-direction: column; flex: 1; gap: 6px; }
.gds-card-title {
    margin: 0;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.32;
    color: var(--gds-text);
    min-height: 2.6em;
}
.gds-card-title a { color: inherit; }
.gds-card-sub {
    margin: 0;
    font-size: 12px;
    color: var(--gds-text-muted);
    line-height: 1.4;
}
.gds-card-spec {
    margin: 0 0 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--gds-green-dark);
}

/* ---- Breadcrumb ---- */
.gds-breadcrumb {
    padding: 18px 32px;
    font-size: 13px;
    color: var(--gds-text-muted);
    display: flex; align-items: center; gap: 8px;
    flex-wrap: wrap;
}
.gds-breadcrumb a { color: var(--gds-text-muted); }
.gds-breadcrumb a:hover { color: var(--gds-green-dark); }
.gds-breadcrumb .sep { color: #cbd5e0; }
.gds-breadcrumb span:last-child { color: var(--gds-text); font-weight: 500; }

/* ---- Single product ---- */
.gds-product { padding: 8px 0 48px; }
.gds-product-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
.gds-product-gallery {
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 24px;
}
.gds-product-image {
    background: var(--gds-bg-muted);
    border-radius: 12px;
    height: 560px;
    width: 100%;
    display: flex; align-items: center; justify-content: center;
    padding: 32px;
    overflow: hidden;
    box-sizing: border-box;
}
.gds-product-image img,
.gds-product-image > picture,
.gds-product-image > a {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}
.gds-product-image > picture img,
.gds-product-image > a img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.gds-product-placeholder {
    width: 260px; height: 120px;
    background: linear-gradient(135deg, #e8ecf4 0%, #c6cddb 100%);
    border-radius: 6px;
    position: relative;
}
.gds-product-placeholder::after {
    content: "";
    position: absolute; inset: 22px;
    background: repeating-linear-gradient(45deg, #b8c0d0 0 6px, transparent 6px 14px);
    border-radius: 3px;
    opacity: .7;
}
.gds-product-thumbs { display: flex; gap: 10px; margin-top: 14px; }
.gds-product-thumbs button {
    width: 62px; height: 62px;
    background: var(--gds-bg-muted);
    border: 1px solid var(--gds-border);
    border-radius: 6px;
    padding: 6px;
}
.gds-product-thumbs button.is-active { border-color: var(--gds-green); }
.gds-product-placeholder-sm {
    display: block; width: 100%; height: 100%;
    background: linear-gradient(135deg, #e8ecf4 0%, #c6cddb 100%);
    border-radius: 3px;
}

.gds-product-info {
    padding-top: 6px;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.gds-product-info .gds-quick-facts {
    flex: 1 1 auto;
}
.gds-product-eyebrow {
    display: inline-block;
    color: var(--gds-green-dark);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
}
.gds-product-title {
    font-size: 34px;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--gds-text);
    line-height: 1.18;
    letter-spacing: -0.015em;
}
.gds-product-sku { margin: 0 0 18px; color: var(--gds-text-muted); font-size: 13.5px; }
.gds-product-sku strong { color: var(--gds-text); font-weight: 600; }

.gds-spec-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.gds-spec-tag {
    display: inline-block;
    padding: 6px 12px;
    background: var(--gds-bg-muted);
    border: 1px solid var(--gds-border);
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    color: var(--gds-text-soft);
}

.gds-quick-facts {
    background: var(--gds-bg-soft);
    border: 1px solid var(--gds-border-soft);
    border-radius: 10px;
    padding: 20px 24px;
    margin-bottom: 20px;
}
.gds-quick-facts h3 {
    margin: 0 0 14px;
    font-size: 13px;
    font-weight: 700;
    color: var(--gds-text);
    letter-spacing: 0.06em;
}
.gds-quick-facts ul {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 10px;
}
.gds-quick-facts li {
    display: flex; align-items: flex-start; gap: 10px;
    font-size: 14px;
    color: var(--gds-text-soft);
}
.gds-check { flex-shrink: 0; margin-top: 2px; }

.gds-inquiry-note {
    text-align: center;
    font-size: 12.5px;
    color: var(--gds-text-muted);
    margin: 10px 0 0;
}

/* ---- Product price + Add to cart ----
   Big, bold, dark prices with tabular numerals so digits visually align.
   Sale prices get an accent color so they read as "the new price". */
.gds-product-price {
    font-size: 26px;
    font-weight: 800;
    color: var(--gds-text);
    margin: 0 0 16px;
    line-height: 1.15;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
}
.gds-product-price del {
    color: var(--gds-text-muted);
    font-weight: 500;
    margin-right: 10px;
    opacity: .7;
    font-size: 0.6em;
    vertical-align: 0.18em;
}
.gds-product-price ins {
    text-decoration: none;
    color: var(--gds-green-dark);
    font-weight: 800;
    background: transparent;
}
.gds-product-price .woocommerce-Price-currencySymbol { margin-right: 2px; font-weight: 700; }

.gds-card-price {
    margin: 8px 0 14px;
    font-size: 19px;
    font-weight: 800;
    color: var(--gds-text);
    line-height: 1.2;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
}
.gds-card-price del { color: var(--gds-text-muted); font-weight: 500; margin-right: 6px; opacity: .7; font-size: 0.78em; vertical-align: 0.1em; }
.gds-card-price ins { text-decoration: none; color: var(--gds-green-dark); font-weight: 800; background: transparent; }
.gds-card-price .woocommerce-Price-currencySymbol { margin-right: 1px; }

/* WooCommerce price-amount appearing in cart, mini-cart, and product loops —
   inherit from parent so .gds-card-price / .gds-product-price control size. */
.gds-card-price .woocommerce-Price-amount,
.gds-product-price .woocommerce-Price-amount,
.gds-price { font: inherit; color: inherit; }

.gds-add-to-cart-form { margin: 0 0 12px; }
.gds-qty-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
    width: 100%;
}
.gds-qty {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--gds-border);
    border-radius: var(--gds-radius-sm, 6px);
    background: #fff;
    overflow: hidden;
    flex: 0 0 auto;
}
.gds-qty-btn {
    width: 40px;
    background: #fff;
    border: 0;
    color: var(--gds-text);
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    padding: 0;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.gds-qty-btn:hover { background: var(--gds-bg-muted); color: var(--gds-green-dark); }
.gds-qty-btn:disabled { opacity: .4; cursor: not-allowed; }
.gds-qty-input {
    width: 56px;
    border: 0;
    border-left: 1px solid var(--gds-border);
    border-right: 1px solid var(--gds-border);
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    color: var(--gds-text);
    background: #fff;
    -moz-appearance: textfield;
    appearance: textfield;
    padding: 0 4px;
}
.gds-qty-input::-webkit-outer-spin-button,
.gds-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gds-qty-input:focus { outline: 0; background: var(--gds-bg-soft); }

.gds-btn-cart { flex: 1 1 auto; min-width: 0; }
.gds-btn-cart svg { flex-shrink: 0; }

/* Stack quote button a bit below the cart form */
.gds-add-to-cart-form + .gds-btn { margin-top: 4px; }

@media (max-width: 480px) {
    .gds-qty-row { flex-wrap: wrap; }
    .gds-btn-cart { width: 100%; }
}

/* ---- Floating WhatsApp chat button ---- */
.gds-whatsapp-fab {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 9990;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25d366;
    color: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .18), 0 2px 6px rgba(0, 0, 0, .12);
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.gds-whatsapp-fab:hover,
.gds-whatsapp-fab:focus {
    background: #1ebe5d;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .22), 0 3px 8px rgba(0, 0, 0, .14);
    outline: 0;
}
.gds-whatsapp-fab:focus-visible {
    box-shadow: 0 0 0 3px rgba(37, 211, 102, .35), 0 8px 20px rgba(0, 0, 0, .18);
}
.gds-whatsapp-fab svg { display: block; }

@media (max-width: 480px) {
    .gds-whatsapp-fab { right: 14px; bottom: 14px; width: 50px; height: 50px; }
    .gds-whatsapp-fab svg { width: 24px; height: 24px; }
}

/* ---- Variable product (variations form) ----
   The configurator panel groups attribute selectors, the live variant price,
   stock indicator, and the qty + add-to-cart row inside one soft card so
   shoppers see a single "configure your product" surface. */
.gds-product-variations {
    margin: 0 0 18px;
    padding: 18px 20px 20px;
    background: var(--gds-bg-muted, #f7f8f5);
    border: 1px solid var(--gds-border);
    border-radius: 14px;
}
.gds-configurator-head { margin: 0 0 12px; }
.gds-configurator-eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gds-green-dark);
    margin: 0 0 4px;
}
.gds-configurator-hint {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--gds-text-muted, #6b7280);
}
.gds-product-variations .variations_form { margin: 0; }
.gds-product-variations table.variations {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 14px;
}
.gds-product-variations table.variations th,
.gds-product-variations table.variations td {
    padding: 8px 0;
    vertical-align: middle;
    text-align: left;
    border: 0;
    background: transparent;
}
.gds-product-variations table.variations th {
    width: 38%;
}
.gds-product-variations table.variations th label {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--gds-text);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.gds-product-variations table.variations td { padding-left: 12px; }
.gds-product-variations select {
    width: 100%;
    min-height: 46px;
    padding: 10px 36px 10px 14px;
    border: 1px solid var(--gds-border);
    border-radius: 10px;
    background-color: #fff;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='1 1.5 6 6.5 11 1.5'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
    font-size: 15px;
    color: var(--gds-text);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.gds-product-variations select:hover { border-color: var(--gds-green); }
.gds-product-variations select:focus {
    outline: 0;
    border-color: var(--gds-green);
    box-shadow: 0 0 0 3px rgba(124, 179, 66, .18);
}
.gds-product-variations .reset_variations {
    display: inline-block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--gds-text-muted, #6b7280);
    text-decoration: underline;
}
.gds-product-variations .single_variation_wrap { margin: 6px 0 0; }
/* Selected-variant SKU display, prepended into .single_variation_wrap by JS
   so the shopper sees the chosen SKU right where they're picking options. */
.gds-variant-sku {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 10px;
    padding: 6px 12px;
    background: #fff;
    border: 1px solid var(--gds-border);
    border-radius: 999px;
    font-size: 12.5px;
    line-height: 1.2;
}
.gds-variant-sku[hidden] { display: none; }
.gds-variant-sku-label {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    color: var(--gds-text-muted, #6b7280);
    font-size: 10.5px;
}
.gds-variant-sku-value {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 13px;
    font-weight: 700;
    color: var(--gds-text);
    letter-spacing: .02em;
}
/* Variant price is the prominent confirmation that selection succeeded. */
.gds-product-variations .single_variation .price {
    display: block;
    margin: 4px 0 12px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--gds-border);
    border-left: 4px solid var(--gds-green);
    border-radius: 10px;
    font-size: 24px;
    font-weight: 800;
    color: var(--gds-text);
    line-height: 1.15;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
}
.gds-product-variations .single_variation .price del {
    color: var(--gds-text-muted);
    font-weight: 500;
    margin-right: 10px;
    opacity: .7;
    font-size: 0.6em;
    vertical-align: 0.18em;
}
.gds-product-variations .single_variation .price ins {
    text-decoration: none;
    color: var(--gds-green-dark);
    font-weight: 800;
    background: transparent;
}
.gds-product-variations .single_variation .price .woocommerce-Price-currencySymbol { margin-right: 2px; font-weight: 700; }
.gds-product-variations .woocommerce-variation-description {
    margin: 0 0 10px;
    font-size: 14px;
    color: var(--gds-text-muted, #6b7280);
}
.gds-product-variations .woocommerce-variation-availability { margin: 0 0 10px; }
/* Stock indicator pill — green check for in-stock, red dot for out. */
.gds-product-variations .stock {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 4px 10px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 999px;
    background: rgba(124, 179, 66, .12);
    color: var(--gds-green-dark);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.gds-product-variations .stock::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gds-green);
    box-shadow: 0 0 0 3px rgba(124, 179, 66, .18);
}
.gds-product-variations .stock.out-of-stock {
    background: rgba(229, 62, 62, .10);
    color: #b91c1c;
}
.gds-product-variations .stock.out-of-stock::before { background: #e53e3e; box-shadow: 0 0 0 3px rgba(229, 62, 62, .18); }
.gds-product-variations .variations_button {
    display: flex;
    gap: 12px;
    align-items: stretch;
    flex-wrap: nowrap;
    margin-top: 4px;
}
.gds-product-variations .variations_button .quantity {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: stretch;
    background: #fff;
    border: 1px solid var(--gds-border);
    border-radius: 999px;
    overflow: hidden;
}
.gds-product-variations .variations_button .quantity .qty {
    width: 64px;
    height: 46px;
    padding: 8px 4px;
    border: 0;
    background: transparent;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    color: var(--gds-text);
    -moz-appearance: textfield;
}
.gds-product-variations .variations_button .quantity .qty::-webkit-outer-spin-button,
.gds-product-variations .variations_button .quantity .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.gds-product-variations .variations_button .quantity .qty:focus { outline: 0; }
.gds-product-variations .single_add_to_cart_button {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 10px 24px;
    background: var(--gds-green);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: .04em;
    box-shadow: 0 6px 14px rgba(124, 179, 66, .25);
    transition: background-color .15s ease, transform .12s ease, box-shadow .15s ease;
}
.gds-product-variations .single_add_to_cart_button:hover {
    background: var(--gds-green-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(124, 179, 66, .32);
}
.gds-product-variations .single_add_to_cart_button:active { transform: translateY(0); }
.gds-product-variations .single_add_to_cart_button.disabled,
.gds-product-variations .single_add_to_cart_button:disabled {
    background: var(--gds-border);
    color: var(--gds-text-muted, #6b7280);
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

@media (max-width: 480px) {
    .gds-product-variations { padding: 16px; }
    .gds-product-variations table.variations,
    .gds-product-variations table.variations tbody,
    .gds-product-variations table.variations tr,
    .gds-product-variations table.variations th,
    .gds-product-variations table.variations td { display: block; width: 100%; }
    .gds-product-variations table.variations td { padding: 4px 0 10px; }
    .gds-product-variations .variations_button { flex-wrap: wrap; }
    .gds-product-variations .variations_button .quantity { width: 100%; justify-content: center; }
    .gds-product-variations .variations_button .quantity .qty { flex: 1 1 auto; width: auto; min-width: 80px; }
    .gds-product-variations .single_add_to_cart_button { width: 100%; }
}

/* ---- Sections ---- */
.gds-section { padding: 42px 0; }
.gds-section + .gds-section { padding-top: 20px; }
.gds-section-title {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 700;
    color: var(--gds-text);
}
.gds-section-sub {
    margin: 0 0 22px;
    color: var(--gds-text-muted);
    font-size: 14px;
}

/* ---- Frequently Used Together ---- */
.gds-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.gds-related-card {
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease;
}
.gds-related-card:hover { transform: translateY(-2px); color: inherit; }
.gds-related-card:hover { border-color: var(--gds-green); box-shadow: var(--gds-shadow-md); }
.gds-related-media {
    position: relative;
    background: var(--gds-bg-muted);
    height: 180px;
    display: flex; align-items: center; justify-content: center;
    padding: 32px 24px 24px;
    overflow: hidden;
}
.gds-related-media img,
.gds-related-media .gds-card-placeholder {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.gds-related-tag {
    position: absolute;
    top: 12px; left: 12px;
    z-index: 2;
    background: var(--gds-green);
    color: #fff;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12);
}
.gds-related-body { padding: 16px 18px 20px; }
.gds-related-body h3 {
    margin: 0 0 6px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--gds-text);
}

/* ---- Tabs ---- */
.gds-tech { background: var(--gds-bg-soft); }
.gds-tabs {
    display: flex;
    gap: 28px;
    border-bottom: 1px solid var(--gds-border);
    margin-bottom: 24px;
}
.gds-tab {
    display: inline-flex; align-items: center; gap: 6px;
    background: transparent;
    border: 0;
    padding: 12px 2px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--gds-text-muted);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color .15s ease, border-color .15s ease;
}
.gds-tab:hover { color: var(--gds-text); }
.gds-tab:focus-visible {
    outline: 2px solid var(--gds-green);
    outline-offset: 4px;
    border-radius: 2px;
}
.gds-tab.is-active {
    color: var(--gds-green-dark);
    border-bottom-color: var(--gds-green);
}
.gds-tab-panel { display: none; }
.gds-tab-panel.is-active { display: block; }

/* ---- Spec table ---- */
.gds-spec-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--gds-border);
}
.gds-spec-table thead th {
    text-align: left;
    font-size: 13px;
    font-weight: 600;
    padding: 12px 18px;
    background: var(--gds-bg-muted);
    color: var(--gds-text);
    border-bottom: 1px solid var(--gds-border);
}
.gds-spec-table tbody td {
    padding: 12px 18px;
    font-size: 13.5px;
    color: var(--gds-text-soft);
    border-bottom: 1px solid var(--gds-border-soft);
}
.gds-spec-table tbody td:first-child { color: var(--gds-text); font-weight: 500; width: 40%; }
.gds-spec-table tbody tr:last-child td { border-bottom: 0; }

/* ---- Applications ---- */
.gds-applications {
    background: #fff;
    border: 1px solid var(--gds-border);
    border-radius: 10px;
    padding: 22px 26px;
}
.gds-applications h3 {
    margin: 0 0 16px;
    font-size: 15px;
    font-weight: 700;
    color: var(--gds-text);
}
.gds-app-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}
.gds-app-grid ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.gds-app-grid li { display: flex; align-items: flex-start; gap: 8px; font-size: 13.5px; color: var(--gds-text-soft); }

/* ---- Downloads ---- */
.gds-downloads {
    background: #fff;
    border: 1px solid var(--gds-border);
    border-radius: 10px;
    padding: 22px 26px;
}
.gds-downloads h3 {
    margin: 0 0 16px;
    font-size: 15px;
    font-weight: 700;
}
.gds-download-row {
    display: flex; align-items: center; gap: 14px;
    padding: 14px 16px;
    border: 1px solid var(--gds-border-soft);
    border-radius: 8px;
    background: var(--gds-bg-soft);
}
.gds-download-icon {
    width: 36px; height: 36px;
    background: #fde8e8;
    border-radius: 6px;
    display: inline-flex; align-items: center; justify-content: center;
}
.gds-download-body { flex: 1; display: flex; flex-direction: column; }
.gds-download-body strong { font-size: 14px; color: var(--gds-text); font-weight: 600; }
.gds-download-body span { font-size: 12.5px; color: var(--gds-text-muted); }
.gds-download-btn {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--gds-border);
    color: var(--gds-text-soft);
    display: inline-flex; align-items: center; justify-content: center;
}
.gds-download-btn:hover { color: var(--gds-green-dark); border-color: var(--gds-green); }

/* ---- Footer ---- */
.gds-footer { background: var(--gds-bg-soft); border-top: 1px solid var(--gds-border-soft); margin-top: 40px; }
.gds-footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr 1.3fr;
    gap: 32px;
    padding: 48px 24px 40px;
}
.gds-footer-brand .gds-logo-mark { margin-bottom: 16px; }
.gds-footer-tag { font-size: 13px; color: var(--gds-text-soft); margin: 0 0 18px; line-height: 1.5; }
.gds-footer-contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--gds-text-soft); }
.gds-footer-contact li { display: flex; align-items: center; gap: 8px; }
.gds-footer-contact svg { color: var(--gds-text-muted); flex-shrink: 0; }

.gds-footer-col h4 {
    margin: 0 0 16px;
    font-size: 12px;
    font-weight: 700;
    color: var(--gds-text);
    letter-spacing: 0.08em;
}
.gds-footer-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.gds-footer-links a { color: var(--gds-text-soft); font-size: 13.5px; }
.gds-footer-links a:hover { color: var(--gds-green-dark); }

.gds-footer-sub { font-size: 12.5px; color: var(--gds-text-muted); margin: 0 0 12px; line-height: 1.5; }
.gds-newsletter { display: flex; gap: 8px; }
.gds-newsletter input {
    flex: 1;
    padding: 9px 12px;
    border: 1px solid var(--gds-border);
    border-radius: 6px;
    font-size: 13px;
    background: #fff;
    outline: none;
}
.gds-newsletter input:focus { border-color: var(--gds-green); }
.gds-newsletter button {
    padding: 9px 20px;
    border-radius: 6px;
    border: 0;
    background: var(--gds-green);
    color: #fff;
    font-weight: 600;
    font-size: 13px;
}
.gds-newsletter button:hover { background: var(--gds-green-dark); }

.gds-currency-switch { margin-top: 16px; }
.gds-currency-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gds-text-muted);
    margin: 0 0 6px;
}
.gds-currency-select {
    width: 100%;
    max-width: 240px;
    padding: 9px 12px;
    border: 1px solid var(--gds-border);
    border-radius: 6px;
    font-size: 13px;
    background: #fff;
    color: var(--gds-text);
    outline: none;
    cursor: pointer;
}
.gds-currency-select:focus { border-color: var(--gds-green); }

.gds-footer-social {
    list-style: none; padding: 0; margin: 14px 0 0;
    display: flex; gap: 10px;
}
.gds-footer-social a {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--gds-border);
    color: var(--gds-text-soft);
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.gds-footer-social a:hover { background: var(--gds-green); border-color: var(--gds-green); color: #fff; }

.gds-footer-bottom {
    border-top: 1px solid var(--gds-border-soft);
    padding: 16px 0;
    font-size: 12.5px;
    color: var(--gds-text-muted);
}
.gds-footer-bottom .gds-container {
    display: flex; justify-content: space-between; align-items: center;
}

/* ---- Archive / search / subcategory chips ---- */
.gds-archive { padding: 28px 0 60px; }
.gds-archive > .gds-container { padding-left: 32px; padding-right: 32px; }

/* Kill stray bullets in any main content area */
.gds-main ul, .gds-main ol { padding-left: 20px; }
.gds-main .gds-nav-list,
.gds-main .gds-nav-list ul,
.gds-main .gds-dropdown-list,
.gds-main .gds-footer-links,
.gds-main .gds-footer-contact,
.gds-main .gds-footer-social,
.gds-main .gds-spec-tags,
.gds-main .gds-subcat-chips { list-style: none; padding-left: 0; }

/* Defensive: any unstyled category list (WC raw output or similar) */
.gds-main .gds-archive ul.products,
.gds-main .gds-archive ul.product-categories { list-style: none !important; padding-left: 0 !important; }

/* Style WooCommerce-rendered content inside our theme wrapper */
.gds-wc ul.products {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    grid-auto-flow: row dense !important;  /* Backfill any empty cell so the
                                              first product doesn't render
                                              with an empty slot to its left. */
    gap: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
/* Hide any non-product element WC or a plugin renders inside <ul.products>
   (a stray <form>, <p>, or <noscript>) so it doesn't consume a grid cell.
   Targets the class instead of the tag so an `<li>` styled with extra
   classes (`outofstock`, `featured`, etc.) is never accidentally hidden. */
.gds-wc ul.products > *:not(.product) { display: none !important; }
/* WooCommerce core adds ::before / ::after clearfix pseudo-elements to
   ul.products for its float-based layout. With our grid override these
   pseudos become *grid items* and steal row 1 col 1 (and a trailing cell),
   creating the phantom empty slot at the top-left. Suppress them. */
.gds-wc ul.products::before,
.gds-wc ul.products::after {
    content: none !important;
    display: none !important;
}
.gds-wc ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 14px !important;
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    box-shadow: none !important;
    float: none !important;
    /* Defeat WC's .first { clear: both } and any explicit grid placement
       that pushes the first product into column 2+. */
    clear: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
    /* Flex column so the cart buttons sit pinned to the bottom of every card,
       regardless of how many lines the title or description wraps to. CSS grid
       stretches sibling cards to the tallest in the row, so this aligns the
       buttons across the whole row. */
    display: flex !important;
    flex-direction: column !important;
}
/* Make WC's outer link a flex column too so .price (its last child) can be
   pushed to the bottom of the link area with margin-top: auto. */
.gds-wc ul.products li.product .woocommerce-LoopProduct-link {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
}
.gds-wc ul.products li.product .woocommerce-LoopProduct-link .price {
    margin-top: auto !important;
}
/* Hard pin: regardless of what WC or a plugin tries, the first product
   rendered inside the loop must occupy row 1 col 1. */
body .gds-wc ul.products li.product:first-of-type,
body .gds-wc ul.products li.product.first {
    grid-column-start: 1 !important;
    grid-row-start: 1 !important;
}
.gds-wc ul.products li.product:hover { border-color: var(--gds-green); box-shadow: var(--gds-shadow-md); }
/* Image area on WC loop cards — style ONLY the <img>, not the wrapping link
   (which also contains title and price). */
.gds-wc ul.products li.product .woocommerce-LoopProduct-link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.gds-wc ul.products li.product img,
.gds-wc ul.products li.product .gds-card-image {
    width: 100% !important;
    height: 160px !important;
    object-fit: contain !important;
    background: var(--gds-bg-soft);
    border-radius: var(--gds-radius-sm);
    padding: 12px;
    margin: 0 0 12px !important;
    box-sizing: border-box;
    display: block;
}
.gds-wc ul.products li.product .gds-card-placeholder {
    width: 100%;
    height: 160px;
    background: var(--gds-bg-soft);
    border-radius: var(--gds-radius-sm);
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.gds-wc ul.products li.product .gds-card-placeholder::after {
    content: "";
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #e8ecf4 0%, #d8ddea 100%);
    border-radius: 4px;
}
.gds-wc ul.products li.product .woocommerce-loop-product__title {
    font-size: 14.5px; font-weight: 600; line-height: 1.32; padding: 0 !important; margin: 8px 0 4px;
    min-height: 2.6em;
}
.gds-wc ul.products li.product .price,
.gds-wc ul.products li.product .price .woocommerce-Price-amount,
.gds-wc ul.products li.product .price bdi {
    color: var(--gds-green-dark) !important;
    font-size: 19px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.01em !important;
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
}
.gds-wc ul.products li.product .price {
    margin: 8px 0 14px !important;
    display: block !important;
}
.gds-wc ul.products li.product .price del,
.gds-wc ul.products li.product .price del .woocommerce-Price-amount,
.gds-wc ul.products li.product .price del bdi {
    color: var(--gds-text-muted) !important;
    font-weight: 500 !important;
    font-size: 0.78em !important;
    opacity: .7 !important;
}
.gds-wc ul.products li.product .price del { margin-right: 6px !important; }
.gds-wc ul.products li.product .price ins,
.gds-wc ul.products li.product .price ins .woocommerce-Price-amount,
.gds-wc ul.products li.product .price ins bdi {
    background: transparent !important;
    text-decoration: none !important;
    font-weight: 800 !important;
    color: var(--gds-green-dark) !important;
}

/* ---- Loop add-to-cart + "View cart" link ----
   Both buttons share the SAME footprint (size, padding, height, radius) so a
   card with both shows a clean two-button row. Primary stays solid green;
   View Cart is the outline secondary with the cart icon. */
.gds-wc ul.products li.product a.button.add_to_cart_button,
.gds-wc ul.products li.product a.button.added,
.gds-wc ul.products li.product a.added_to_cart,
.gds-wc ul.products li.product a.button.wc-forward {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 36px;
    padding: 0 16px !important;
    border-radius: 8px;
    font-weight: 600 !important;
    font-size: 13px !important;
    line-height: 1 !important;
    margin-top: 10px !important;
    margin-right: 0 !important;
    text-decoration: none !important;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(0,0,0,.05);
    box-sizing: border-box;
}
/* Primary "Add to cart" — solid green */
.gds-wc ul.products li.product a.button.add_to_cart_button,
.gds-wc ul.products li.product a.button.added {
    background: var(--gds-green) !important;
    color: #fff !important;
    border: 1px solid var(--gds-green) !important;
}
.gds-wc ul.products li.product a.button.add_to_cart_button:hover,
.gds-wc ul.products li.product a.button.added:hover {
    background: var(--gds-green-dark) !important;
    border-color: var(--gds-green-dark) !important;
    color: #fff !important;
}
/* "Added ✓" success state */
.gds-wc ul.products li.product a.button.added {
    background: var(--gds-green-dark) !important;
    border-color: var(--gds-green-dark) !important;
}

/* Secondary "View cart" — outline */
.gds-wc ul.products li.product a.added_to_cart,
.gds-wc ul.products li.product a.button.wc-forward {
    background: #fff !important;
    color: var(--gds-text) !important;
    border: 1px solid var(--gds-border) !important;
}
.gds-wc ul.products li.product a.added_to_cart:hover,
.gds-wc ul.products li.product a.button.wc-forward:hover {
    border-color: var(--gds-green) !important;
    color: var(--gds-green-dark) !important;
    background: var(--gds-green-soft) !important;
}
/* Cart icon prefix on View cart so it reads as a navigation, not a duplicate. */
.gds-wc ul.products li.product a.added_to_cart::before {
    content: "";
    width: 14px;
    height: 14px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") no-repeat center / contain;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Pair layout: Add to cart + View cart sit on ONE row with EQUAL widths.
   When only Add to cart is present (pre-click), it stays full-width.
   When both are present, main.js wraps them in .gds-cart-actions which is a
   flex container — `flex: 1 1 0` then forces both buttons to identical
   widths, regardless of label/icon length. */
.gds-wc ul.products li.product a.button.add_to_cart_button,
.gds-wc ul.products li.product a.button.added {
    width: 100% !important;
    display: flex !important;
}
.gds-wc ul.products li.product .gds-cart-actions {
    display: flex !important;
    gap: 8px;
    margin-top: 10px;
    width: 100%;
}
.gds-wc ul.products li.product .gds-cart-actions > a.button,
.gds-wc ul.products li.product .gds-cart-actions > a.added_to_cart,
.gds-wc ul.products li.product .gds-cart-actions > a.button.wc-forward {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 8px !important;
    display: inline-flex !important;
    justify-content: center;
}

/* Title color override — WC's default link color paints these green; we want
   dark text on white cards so the price (now bold dark) leads visually. */
.gds-wc ul.products li.product a,
.gds-wc ul.products li.product .woocommerce-loop-product__title {
    color: var(--gds-text);
}
.gds-wc ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--gds-green-dark); }

/* ---- WooCommerce result count + sort dropdown row ----
   Result count on the left, themed select on the right, product grid clearing
   both. Any submit button rendered by other plugins is hidden so only the
   styled select shows. */
.gds-wc .woocommerce-result-count {
    float: left;
    margin: 0 0 24px;
    padding-top: 9px;
    color: var(--gds-text-soft);
    font-size: 13px;
    font-weight: 500;
}
.gds-wc .woocommerce-ordering {
    position: relative;
    float: right;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 24px;
}
/* Suppress submit/Order buttons from any source — we auto-submit on change. */
.gds-wc .woocommerce-ordering button,
.gds-wc .woocommerce-ordering input[type="submit"],
.gds-wc .woocommerce-ordering [type="submit"] { display: none !important; }

/* Defensive guard against duplicated ordering forms.
   Strategy: hide every .woocommerce-ordering by default; then explicitly
   re-show ONLY the one inside .gds-wc. Anything rendered outside our wrapper
   (sidebar, header, plugin overlay) is hidden regardless of where it lives. */
body form.woocommerce-ordering { display: none !important; }
.gds-wc form.woocommerce-ordering { display: inline-flex !important; }
/* Sibling fallback: if two forms both end up inside .gds-wc, keep the first. */
.gds-wc .woocommerce-ordering ~ .woocommerce-ordering,
.gds-wc form.woocommerce-ordering + form.woocommerce-ordering,
.gds-wc form.woocommerce-ordering ~ form.woocommerce-ordering { display: none !important; }
@supports selector(:has(*)) {
    /* Inside .gds-wc, prefer the wrapped form; hide unwrapped duplicates. */
    .gds-wc form.woocommerce-ordering:not(:has(.gds-select-wrap)) { display: none !important; }
    .gds-wc form.woocommerce-ordering:has(.gds-select-wrap) ~ form.woocommerce-ordering:has(.gds-select-wrap) { display: none !important; }
}

/* The product grid sits below the floats. */
.gds-wc ul.products,
.gds-wc nav.woocommerce-pagination { clear: both; }
.gds-wc .woocommerce-ordering select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: #fff;
    border: 1px solid var(--gds-border);
    border-radius: 8px;
    padding: 9px 36px 9px 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--gds-text);
    line-height: 1.2;
    cursor: pointer;
    min-width: 200px;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.gds-wc .woocommerce-ordering select::-ms-expand { display: none; }
.gds-wc .woocommerce-ordering select:hover { border-color: var(--gds-text-soft); }
.gds-wc .woocommerce-ordering select:focus {
    outline: none;
    border-color: var(--gds-green);
    box-shadow: 0 0 0 3px var(--gds-green-soft);
}
.gds-wc .woocommerce-ordering::after {
    content: "";
    position: absolute;
    right: 12px;
    top: 50%;
    width: 12px;
    height: 12px;
    transform: translateY(-50%);
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-size: 12px 12px;
    background-repeat: no-repeat;
}
.gds-wc nav.woocommerce-pagination ul { border: 0; display: flex; gap: 6px; justify-content: center; }
.gds-wc nav.woocommerce-pagination ul li { border: 0; }
.gds-wc nav.woocommerce-pagination ul li a,
.gds-wc nav.woocommerce-pagination ul li span {
    border: 1px solid var(--gds-border) !important;
    border-radius: 6px;
    padding: 6px 12px !important;
    background: #fff !important;
    color: var(--gds-text-soft) !important;
    min-width: 34px;
}
.gds-wc nav.woocommerce-pagination ul li span.current {
    background: var(--gds-green) !important;
    border-color: var(--gds-green) !important;
    color: #fff !important;
}
.gds-archive-count { font-size: 13px; color: var(--gds-text-muted); }
.gds-archive-desc { max-width: 760px; color: var(--gds-text-soft); margin: 0 0 20px; font-size: 14px; }

/* ---- Archive filter bar ---- */
.gds-archive-filters {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin: 4px 0 24px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: 10px;
    box-shadow: var(--gds-shadow-sm);
}
.gds-subcat-chips { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 auto; }
.gds-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--gds-border);
    color: var(--gds-text-soft);
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    transition: border-color .15s ease, color .15s ease, background .15s ease, box-shadow .15s ease;
}
.gds-chip:hover { border-color: var(--gds-green); color: var(--gds-green-dark); background: var(--gds-green-soft); }
.gds-chip.is-active {
    background: var(--gds-green);
    border-color: var(--gds-green);
    color: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}
.gds-chip.is-active:hover { background: var(--gds-green-dark); border-color: var(--gds-green-dark); color: #fff; }
.gds-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    padding: 0 6px;
    height: 18px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: var(--gds-bg);
    color: var(--gds-text-soft);
}
.gds-chip.is-active .gds-chip-count { background: rgba(255,255,255,.22); color: #fff; }

.gds-archive-sort {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--gds-text-soft);
    margin: 0;
}
.gds-archive-sort-label {
    font-weight: 600;
    color: var(--gds-text);
    white-space: nowrap;
}
.gds-select-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    background: #fff;
    border: 1px solid var(--gds-border);
    border-radius: 8px;
    transition: border-color .15s ease, box-shadow .15s ease;
    min-width: 200px;
}
.gds-select-wrap:hover { border-color: var(--gds-text-soft); }
.gds-select-wrap:focus-within {
    border-color: var(--gds-green);
    box-shadow: 0 0 0 3px var(--gds-green-soft);
}
.gds-select-wrap select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: transparent;
    border: 0;
    margin: 0;
    width: 100%;
    padding: 9px 36px 9px 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--gds-text);
    line-height: 1.2;
    cursor: pointer;
    box-shadow: none;
}
/* Hide the native arrow that IE/older Edge / some Firefox builds still render. */
.gds-select-wrap select::-ms-expand { display: none; }
.gds-select-wrap select:focus { outline: none; }
.gds-select-caret {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gds-text-soft);
    pointer-events: none;
}
.gds-select-wrap:hover .gds-select-caret { color: var(--gds-text); }

@media (max-width: 720px) {
    .gds-archive-filters { flex-direction: column; align-items: stretch; }
    .gds-archive-sort { justify-content: space-between; width: 100%; }
    .gds-select-wrap { flex: 1; min-width: 0; }
}
.gds-archive-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 18px;
}
.gds-pagination { margin-top: 28px; }
.gds-pagination .nav-links { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
.gds-pagination .page-numbers {
    min-width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid var(--gds-border);
    border-radius: 6px;
    background: #fff;
    color: var(--gds-text-soft);
    font-size: 13px;
    font-weight: 500;
}
.gds-pagination .page-numbers:hover { border-color: var(--gds-green); color: var(--gds-green-dark); }
.gds-pagination .page-numbers.current { background: var(--gds-green); border-color: var(--gds-green); color: #fff; }
.gds-empty-state { background: var(--gds-bg-soft); padding: 32px 24px; border-radius: 10px; text-align: center; }
.gds-empty-state .gds-search { margin: 16px auto 0; }

/* ---- 404 ---- */
.gds-404 { padding: 80px 0 100px; }
.gds-404-inner { text-align: center; max-width: 520px; margin: 0 auto; }
.gds-404-code {
    font-size: 96px;
    font-weight: 800;
    line-height: 1;
    color: var(--gds-green);
    margin-bottom: 12px;
    letter-spacing: -0.03em;
}
.gds-404-title { font-size: 28px; font-weight: 700; margin: 0 0 10px; color: var(--gds-text); }
.gds-404-desc { color: var(--gds-text-soft); margin: 0 0 20px; line-height: 1.55; }
.gds-404 .gds-search { max-width: 360px; margin: 0 auto 20px; }
.gds-404-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* ---- Quote modal ----
   z-index 1000 so the modal always paints above sticky header (50) and any
   open dropdown (200), even when both happen to be visible at scroll time. */
.gds-modal {
    position: fixed; inset: 0;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.gds-modal.is-open { display: flex; }
.gds-modal-backdrop {
    position: absolute; inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
}
.gds-modal-dialog {
    position: relative;
    background: #fff;
    border-radius: 12px;
    width: 100%;
    max-width: 560px;
    padding: 28px 28px 24px;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.25);
    max-height: 90vh;
    overflow-y: auto;
}
.gds-modal-close {
    position: absolute;
    top: 14px; right: 14px;
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 0;
    background: transparent;
    font-size: 24px;
    line-height: 1;
    color: var(--gds-text-soft);
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.gds-modal-close:hover { background: var(--gds-bg-muted); color: var(--gds-text); }
.gds-modal-close:focus-visible {
    outline: none;
    background: var(--gds-bg-muted);
    color: var(--gds-text);
    box-shadow: 0 0 0 3px var(--gds-green-soft);
}
.gds-modal-title { font-size: 22px; font-weight: 700; margin: 0 0 4px; color: var(--gds-text); }
.gds-modal-sub { color: var(--gds-text-muted); margin: 0 0 16px; font-size: 13.5px; }
.gds-quote-form .gds-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.gds-quote-form label {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 12.5px; font-weight: 500; color: var(--gds-text-soft);
}
.gds-quote-form input, .gds-quote-form textarea {
    padding: 9px 12px;
    border: 1px solid var(--gds-border);
    border-radius: 6px;
    background: #fff;
    font: inherit;
    color: var(--gds-text);
}
.gds-quote-form input:focus, .gds-quote-form textarea:focus { outline: none; border-color: var(--gds-green); box-shadow: 0 0 0 3px rgba(124, 179, 66, 0.15); }
.gds-quote-form .gds-form-full { margin-bottom: 10px; }
.gds-quote-form textarea { resize: vertical; min-height: 90px; }
.gds-form-success, .gds-form-error {
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 12px;
}
.gds-form-success { background: var(--gds-green-soft); color: var(--gds-green-dark); }
.gds-form-error { background: #fde8e8; color: #c53030; }

/* ---- Page / post fallback ---- */
.gds-page { padding: 40px 24px; }
.gds-page-title { font-size: 30px; font-weight: 700; margin: 0 0 18px; }
.gds-post { padding: 16px 0; border-bottom: 1px solid var(--gds-border-soft); }
.gds-post-title { font-size: 22px; margin: 0 0 8px; }
.gds-post-title a { color: var(--gds-text); }
.gds-post-title a:hover { color: var(--gds-green-dark); }

/* ---- Responsive ---- */
@media (max-width: 1080px) {
    .gds-row-track { grid-auto-columns: calc((100% - 3 * 18px) / 4); }
    .gds-archive-grid { grid-template-columns: repeat(4, 1fr); }
    .gds-footer-grid { grid-template-columns: 1fr 1fr 1fr; }
    .gds-footer-brand { grid-column: 1 / -1; }
    .gds-dropdown { min-width: 480px; }
}

@media (max-width: 1024px) {
    .gds-header-inner { gap: 14px; padding: 12px 20px; }
    .gds-search { max-width: 360px; }
    .gds-action span { display: none; }
    .gds-btn-quote { padding: 9px 16px; font-size: 13px; }
}

@media (max-width: 860px) {
    .gds-header-inner { grid-template-columns: auto 1fr auto; gap: 10px; padding: 12px 16px; }
    .gds-search { max-width: none; }
    .gds-search input { padding: 8px 14px 8px 36px; font-size: 13px; }
    .gds-search-icon { left: 10px; }
    .gds-action span { display: none; }
    .gds-btn-quote { padding: 8px 14px; font-size: 12.5px; }
    .gds-menu-toggle { display: flex; }
    .gds-primary-nav { display: none; max-height: 70vh; overflow-y: auto; }
    .gds-primary-nav.is-open { display: block; }
    .gds-nav-list { flex-direction: column; gap: 0; padding: 6px 0; }
    .gds-nav-list > li > a { padding: 12px 0; border-bottom: 1px solid var(--gds-border-soft); justify-content: space-between; width: 100%; }
    .gds-primary-nav .gds-dropdown,
    .gds-primary-nav .gds-nav-list .sub-menu {
        position: static;
        min-width: 0;
        max-width: none;
        border: 0;
        border-top: 0;
        border-radius: 0;
        box-shadow: none;
        padding: 0 0 8px 14px;
        opacity: 1;
        visibility: visible;
        transform: none;
        display: none;
    }
    .gds-primary-nav .gds-nav-list > li.is-open > .gds-dropdown,
    .gds-primary-nav .gds-nav-list > li:hover > .gds-dropdown,
    .gds-primary-nav .gds-nav-list > li.is-open > .sub-menu,
    .gds-primary-nav .gds-nav-list .menu-item.is-open > .sub-menu { display: block; }
    .gds-primary-nav .gds-nav-list .sub-menu .sub-menu { left: 0; right: auto; padding-left: 14px; }
    .gds-primary-nav .gds-nav-list .sub-menu a { padding: 8px 0; white-space: normal; }
    .gds-primary-nav .gds-nav-list > li:nth-last-child(-n+2) .sub-menu { right: auto; }
    .gds-dropdown-inner { grid-template-columns: 1fr; gap: 10px; }
    .gds-dropdown-head { border-bottom: 0; padding-bottom: 0; margin-bottom: 4px; }

    .gds-hero-slide, .gds-hero-inner { min-height: 320px; }
    .gds-hero-title { font-size: 30px; }
    .gds-row-track { grid-auto-columns: calc((100% - 18px) / 2); }
    .gds-row-prev { left: 4px; }
    .gds-row-next { right: 4px; }

    .gds-product-grid { grid-template-columns: 1fr; gap: 28px; }
    .gds-product-title { font-size: 24px; }
    .gds-product-gallery { position: static; }
    .gds-product-image { height: 380px; padding: 24px; }

    .gds-related-grid { grid-template-columns: 1fr; }
    .gds-app-grid { grid-template-columns: 1fr; }
    .gds-archive-grid { grid-template-columns: repeat(2, 1fr); }
    .gds-quote-form .gds-form-row { grid-template-columns: 1fr; }

    .gds-footer-grid { grid-template-columns: 1fr 1fr; }
    /* Newsletter is the last column — let it span both tablet columns so the
       input + button don't squeeze. */
    .gds-footer-grid > .gds-footer-news,
    .gds-footer-grid > .gds-newsletter,
    .gds-footer-grid > div:last-child { grid-column: 1 / -1; }
    .gds-footer-bottom .gds-container { flex-direction: column; gap: 6px; text-align: center; }
}

@media (max-width: 640px) {
    /* Hide the Request Quote label on very small screens, keep the icon-only CTA */
    .gds-btn-quote { display: none; }
    .gds-header-inner { grid-template-columns: auto 1fr auto; gap: 8px; padding: 10px 14px; }
    .gds-header-actions { gap: 10px; }
    .gds-cart svg { width: 20px; height: 20px; }
    .gds-announcement { font-size: 11.5px; padding: 6px 0; }
    .gds-announcement .gds-container { padding: 0 50px 0 16px; }
    .gds-shipping-bar { font-size: 12px; }
    .gds-shipping-bar .gds-container { flex-wrap: wrap; padding: 6px 16px; }
}

@media (max-width: 520px) {
    .gds-row-track { grid-auto-columns: calc((100% - 12px) / 2); gap: 12px; }
    .gds-footer-grid { grid-template-columns: 1fr; }
    .gds-hero-title { font-size: 24px; }
    .gds-tabs { gap: 16px; overflow-x: auto; }
    .gds-tab { white-space: nowrap; }
    .gds-logo-mark { width: 32px; height: 32px; }
}

/* ==========================================================================
   WooCommerce pages (cart, checkout, order-received, my-account) — themed
   ========================================================================== */
.gds-wc { padding: 32px 0 64px; }
.gds-wc .gds-wc-title {
    font-size: 26px;
    font-weight: 700;
    margin: 0 0 22px;
    color: var(--gds-text);
}
.gds-wc { color: var(--gds-text); font-size: 14.5px; }
.gds-wc .woocommerce-notices-wrapper:empty { display: none; }

.gds-wc .woocommerce-message,
.gds-wc .woocommerce-info,
.gds-wc .woocommerce-error {
    border-radius: var(--gds-radius);
    border: 1px solid var(--gds-border);
    background: #fff;
    padding: 14px 18px 14px 48px;
    font-size: 14px;
    color: var(--gds-text);
    box-shadow: var(--gds-shadow-sm);
    margin: 0 0 22px;
    position: relative;
    list-style: none;
}
.gds-wc .woocommerce-message { border-left: 4px solid var(--gds-green); }
.gds-wc .woocommerce-info    { border-left: 4px solid var(--gds-blue); }
.gds-wc .woocommerce-error   { border-left: 4px solid #e53e3e; }
.gds-wc .woocommerce-message::before,
.gds-wc .woocommerce-info::before,
.gds-wc .woocommerce-error::before {
    position: absolute;
    left: 18px; top: 14px;
    font-family: inherit;
}
.gds-wc .woocommerce-message .button,
.gds-wc .woocommerce-error .button {
    float: right;
    margin-top: -2px;
}

/* Primary buttons in WC screens should follow the theme */
.gds-wc .button,
.gds-wc button.button,
.gds-wc input[type="submit"].button,
.gds-wc a.button,
.gds-wc .woocommerce-button,
.gds-wc #place_order,
.gds-wc .checkout-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: var(--gds-radius-sm);
    background: var(--gds-green);
    color: #fff !important;
    border: 1px solid var(--gds-green);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
    text-shadow: none;
    box-shadow: none;
    line-height: 1.2;
}
.gds-wc .button:hover,
.gds-wc button.button:hover,
.gds-wc a.button:hover,
.gds-wc #place_order:hover,
.gds-wc .checkout-button:hover {
    background: var(--gds-green-dark);
    border-color: var(--gds-green-dark);
    color: #fff !important;
}
.gds-wc .button.alt { background: var(--gds-green); border-color: var(--gds-green); }
.gds-wc .button.disabled,
.gds-wc .button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

/* Secondary / "Update cart" / "Apply coupon" style */
.gds-wc .cart .actions .button[name="update_cart"],
.gds-wc .cart .actions .button[name="apply_coupon"],
.gds-wc .woocommerce-cart-form .button[name="update_cart"] {
    background: #fff;
    color: var(--gds-text) !important;
    border-color: var(--gds-border);
}
.gds-wc .cart .actions .button[name="update_cart"]:hover,
.gds-wc .cart .actions .button[name="apply_coupon"]:hover {
    border-color: var(--gds-green);
    color: var(--gds-green-dark) !important;
    background: #fff;
}

/* ----- Cart page ----- */
.gds-wc .woocommerce-cart-form { background: #fff; border: 1px solid var(--gds-border-soft); border-radius: var(--gds-radius); overflow: hidden; }
.gds-wc table.shop_table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    margin: 0;
    border: 0;
}
.gds-wc table.shop_table th,
.gds-wc table.shop_table td {
    padding: 16px 18px;
    border-bottom: 1px solid var(--gds-border-soft);
    vertical-align: middle;
    text-align: left;
    font-size: 14px;
    color: var(--gds-text);
}
.gds-wc table.shop_table thead th {
    background: var(--gds-bg-soft);
    font-weight: 700;
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--gds-text-soft);
}
.gds-wc table.shop_table tbody tr:last-child td { border-bottom: 0; }
.gds-wc table.shop_table .product-thumbnail img,
.gds-wc table.shop_table img { width: 60px; height: 60px; object-fit: contain; background: var(--gds-bg-muted); border-radius: var(--gds-radius-sm); padding: 6px; }
.gds-wc table.shop_table .product-name a { color: var(--gds-text); font-weight: 600; }
.gds-wc table.shop_table .product-name a:hover { color: var(--gds-green-dark); }
.gds-wc .gds-sku-tag,
.gds-sku-tag {
    color: var(--gds-text-muted);
    font-weight: 500;
    font-size: 0.9em;
    margin-left: 4px;
}
.gds-wc table.shop_table .product-remove a.remove {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 24px; height: 24px;
    border-radius: 50%;
    background: var(--gds-bg-muted);
    color: var(--gds-text-muted) !important;
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
    text-decoration: none;
}
.gds-wc table.shop_table .product-remove a.remove:hover { background: #e53e3e; color: #fff !important; }
.gds-wc .product-quantity .quantity,
.gds-wc .quantity { display: inline-flex; align-items: stretch; }
.gds-wc .quantity input.qty {
    width: 64px;
    text-align: center;
    padding: 8px;
    border: 1px solid var(--gds-border);
    border-radius: var(--gds-radius-sm);
    background: #fff;
    font-weight: 600;
    color: var(--gds-text);
    -moz-appearance: textfield;
}
.gds-wc .quantity input.qty::-webkit-outer-spin-button,
.gds-wc .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gds-wc .cart-subtotal,
.gds-wc .order-total {
    font-size: 15px;
}
.gds-wc .order-total .amount,
.gds-wc .cart_totals .amount {
    color: var(--gds-text);
    font-weight: 700;
}
.gds-wc .product-subtotal .amount { font-weight: 600; }

/* Coupon form */
.gds-wc .woocommerce-cart-form .actions {
    padding: 16px 18px;
    background: var(--gds-bg-soft);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
}
.gds-wc .woocommerce-cart-form .coupon {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin: 0;
}
.gds-wc .woocommerce-cart-form .coupon label { display: none; }
.gds-wc .woocommerce-cart-form .coupon input[type="text"] {
    padding: 10px 14px;
    border: 1px solid var(--gds-border);
    border-radius: var(--gds-radius-sm);
    background: #fff;
    font-size: 14px;
    min-width: 180px;
}

/* Cart totals panel */
.gds-wc .cart-collaterals {
    margin-top: 28px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}
.gds-wc .cart-collaterals .cart_totals {
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 20px 24px;
    max-width: 480px;
    margin-left: auto;
    width: 100%;
}
.gds-wc .cart-collaterals .cart_totals h2 {
    margin: 0 0 14px;
    font-size: 18px;
    font-weight: 700;
}
.gds-wc .cart-collaterals .cart_totals table { border: 0; }
.gds-wc .cart-collaterals .cart_totals table th,
.gds-wc .cart-collaterals .cart_totals table td {
    padding: 10px 0;
    border-bottom: 1px dashed var(--gds-border-soft);
    background: transparent !important;
}
.gds-wc .cart-collaterals .cart_totals table th { text-transform: none; font-size: 13.5px; }
.gds-wc .cart-collaterals .cart_totals .wc-proceed-to-checkout { margin-top: 18px; margin-bottom: 0; padding: 0; }

/* =================================================================
   Proceed to Checkout & Place Order — ultra-high specificity so it
   beats every WooCommerce/WC-blocks default rule on any setup.
   ================================================================= */
html body.woocommerce .gds-wc .wc-proceed-to-checkout a.checkout-button,
html body.woocommerce-cart .gds-wc a.checkout-button,
html body.woocommerce-page .gds-wc a.checkout-button,
html body .gds-wc .wc-proceed-to-checkout > a,
html body .gds-wc a.checkout-button.button.alt.wc-forward,
html body .gds-wc a.checkout-button,
html body .gds-wc #place_order,
html body .gds-wc button#place_order,
html body .gds-wc #place_order {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 16px 24px !important;
    font-size: 15.5px !important;
    font-weight: 700 !important;
    letter-spacing: .03em !important;
    text-transform: uppercase !important;
    color: #ffffff !important;
    background: #7cb342 !important;
    background-image: linear-gradient(180deg, #8cc151 0%, #6ba035 100%) !important;
    border: 1px solid #5a8c2d !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 14px rgba(124, 179, 66, 0.35), inset 0 1px 0 rgba(255,255,255,0.2) !important;
    text-shadow: 0 1px 1px rgba(0,0,0,0.12) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform .15s ease, box-shadow .15s ease, background-image .15s ease !important;
    position: relative;
}
html body .gds-wc a.checkout-button:hover,
html body .gds-wc #place_order:hover,
html body .gds-wc button#place_order:hover {
    background-image: linear-gradient(180deg, #7cb342 0%, #5a8c2d 100%) !important;
    box-shadow: 0 6px 20px rgba(124, 179, 66, 0.50), inset 0 1px 0 rgba(255,255,255,0.25) !important;
    transform: translateY(-1px) !important;
    color: #ffffff !important;
}
html body .gds-wc a.checkout-button:active,
html body .gds-wc #place_order:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 6px rgba(124, 179, 66, 0.35), inset 0 2px 4px rgba(0,0,0,0.10) !important;
}
html body .gds-wc .wc-proceed-to-checkout a.checkout-button::after {
    content: "→";
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    transition: transform .15s ease;
}
html body .gds-wc .wc-proceed-to-checkout a.checkout-button:hover::after {
    transform: translateX(4px);
}

/* Cart totals — tax / shipping / fee rows */
.gds-wc .cart_totals .shipping,
.gds-wc .cart_totals .fee,
.gds-wc .cart_totals .tax-rate,
.gds-wc .cart_totals .tax-total,
.gds-wc .cart_totals .cart-discount {
    font-size: 14px;
}
.gds-wc .cart_totals .cart-discount th,
.gds-wc .cart_totals .cart-discount td { color: var(--gds-green-dark); font-weight: 600; }
.gds-wc .cart_totals .cart-discount a.woocommerce-remove-coupon {
    color: #e53e3e;
    font-size: 12px;
    margin-left: 6px;
    text-decoration: none;
}
.gds-wc .cart_totals .cart-discount a.woocommerce-remove-coupon:hover { text-decoration: underline; }

.gds-wc .cart_totals .order-total {
    font-size: 16px;
    font-weight: 700;
}
.gds-wc .cart_totals .order-total th,
.gds-wc .cart_totals .order-total td {
    padding-top: 14px !important;
    border-top: 2px solid var(--gds-text) !important;
    border-bottom: 0 !important;
}

/* Shipping calculator */
.gds-wc .shipping-calculator-form {
    margin-top: 10px;
    display: grid;
    gap: 8px;
}
.gds-wc .shipping-calculator-form .form-row input[type="text"],
.gds-wc .shipping-calculator-form .form-row select,
.gds-wc .shipping-calculator-form .form-row .select2-container--default .select2-selection--single {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--gds-border);
    border-radius: var(--gds-radius-sm);
    background: #fff;
    min-height: 38px;
}
.gds-wc .shipping-calculator-form button[name="calc_shipping"] {
    width: 100%;
    margin-top: 4px;
    background: #fff !important;
    color: var(--gds-text) !important;
    border: 1px solid var(--gds-border) !important;
}
.gds-wc .shipping-calculator-form button[name="calc_shipping"]:hover {
    border-color: var(--gds-green) !important;
    color: var(--gds-green-dark) !important;
}
.gds-wc .shipping-calculator-button {
    display: inline-block;
    margin: 6px 0 0;
    font-size: 13px;
    color: var(--gds-green-dark) !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    text-decoration: underline;
    box-shadow: none !important;
    font-weight: 500;
}
.gds-wc .shipping-calculator-button:hover { color: var(--gds-green) !important; }
.gds-wc ul#shipping_method { list-style: none; padding: 0; margin: 0; }
.gds-wc ul#shipping_method li { padding: 4px 0; display: flex; align-items: center; gap: 6px; }
.gds-wc ul#shipping_method li label { color: var(--gds-text-soft); font-size: 13.5px; }
.gds-wc .woocommerce-shipping-destination { font-size: 12.5px; color: var(--gds-text-muted); margin: 8px 0 0; }

/* Cross-sells (WC native) */
.gds-wc .cross-sells { margin-top: 32px; }
.gds-wc .cross-sells > h2 {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 14px;
    color: var(--gds-text);
}
.gds-wc .cross-sells ul.products {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 18px;
}
.gds-wc .cross-sells ul.products li.product {
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 16px;
    text-align: center;
}
.gds-wc .cross-sells ul.products li.product h2,
.gds-wc .cross-sells ul.products li.product .woocommerce-loop-product__title {
    font-size: 14px !important;
    font-weight: 600;
    margin: 8px 0 4px;
}
.gds-wc .cross-sells ul.products li.product .price { color: var(--gds-green-dark); font-weight: 700; }
.gds-wc .cross-sells ul.products li.product .button { margin-top: 8px; }

/* ----- Checkout page ----- */
.gds-wc .woocommerce-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
.gds-wc .woocommerce-checkout .col2-set,
.gds-wc .woocommerce-checkout #customer_details {
    display: block;
    width: 100%;
}
.gds-wc .woocommerce-checkout .col-1,
.gds-wc .woocommerce-checkout .col-2 {
    width: 100%;
    float: none;
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 22px 24px;
    margin-bottom: 20px;
}
.gds-wc .woocommerce-checkout h3 {
    margin: 0 0 14px;
    font-size: 17px;
    font-weight: 700;
    color: var(--gds-text);
}
.gds-wc .woocommerce-billing-fields__field-wrapper,
.gds-wc .woocommerce-shipping-fields__field-wrapper,
.gds-wc .woocommerce-additional-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
}
.gds-wc .form-row { margin: 0 0 4px; }
.gds-wc .form-row.form-row-wide,
.gds-wc .form-row.notes { grid-column: 1 / -1; }
.gds-wc .form-row label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gds-text-soft);
}
.gds-wc .form-row .required { color: #e53e3e; text-decoration: none; }
.gds-wc .form-row input[type="text"],
.gds-wc .form-row input[type="email"],
.gds-wc .form-row input[type="tel"],
.gds-wc .form-row input[type="password"],
.gds-wc .form-row input[type="number"],
.gds-wc .form-row textarea,
.gds-wc .form-row select,
.gds-wc .select2-container--default .select2-selection--single {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--gds-border);
    border-radius: var(--gds-radius-sm);
    background: #fff;
    font-size: 14px;
    font-family: inherit;
    color: var(--gds-text);
    line-height: 1.4;
    box-shadow: none;
    outline: 0;
    min-height: 42px;
}
.gds-wc .form-row input:focus,
.gds-wc .form-row textarea:focus,
.gds-wc .form-row select:focus,
.gds-wc .select2-container--default.select2-container--focus .select2-selection--single {
    border-color: var(--gds-green);
    box-shadow: 0 0 0 3px rgba(124, 179, 66, 0.15);
}
.gds-wc .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--gds-text); }
.gds-wc .select2-container--default .select2-selection--single .select2-selection__arrow { height: 40px; }
.gds-wc .form-row textarea { min-height: 100px; }

/* Order review */
.gds-wc #order_review_heading { margin-top: 0; }
.gds-wc #order_review {
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 22px 24px;
    position: sticky;
    top: 90px;
}
.gds-wc #order_review table.shop_table { border: 0; }
.gds-wc #order_review table.shop_table th,
.gds-wc #order_review table.shop_table td {
    padding: 10px 0;
    border-bottom: 1px dashed var(--gds-border-soft);
    background: transparent;
}
.gds-wc #order_review table.shop_table thead th { background: transparent; padding: 0 0 12px; }

/* Payment methods */
.gds-wc #payment {
    background: var(--gds-bg-soft);
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 18px 20px;
    margin-top: 16px;
}
.gds-wc #payment ul.payment_methods {
    list-style: none;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--gds-border);
    padding-bottom: 12px;
}
.gds-wc #payment ul.payment_methods li {
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px dashed var(--gds-border-soft);
}
.gds-wc #payment ul.payment_methods li:last-child { border-bottom: 0; }
.gds-wc #payment ul.payment_methods li label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: var(--gds-text);
}
.gds-wc #payment .payment_box {
    background: #fff;
    border: 1px dashed var(--gds-border);
    border-radius: var(--gds-radius-sm);
    padding: 12px 14px;
    margin-top: 10px;
    font-size: 13.5px;
    color: var(--gds-text-soft);
}
.gds-wc #payment .payment_box::before { display: none; }
.gds-wc #payment .form-row.place-order { margin-top: 16px; }
.gds-wc #place_order { width: 100%; padding: 14px; font-size: 15px; }

/* ----- Order received / Thank-you ----- */
.gds-wc .woocommerce-order {
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 28px 32px;
}
.gds-wc .woocommerce-thankyou-order-received {
    font-size: 22px;
    font-weight: 700;
    color: var(--gds-green-dark);
    margin: 0 0 18px;
}
.gds-wc .woocommerce-order-overview,
.gds-wc ul.order_details {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 18px 28px;
    padding: 18px 22px;
    margin: 0 0 24px;
    background: var(--gds-bg-soft);
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    font-size: 13px;
    color: var(--gds-text-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 600;
}
.gds-wc .woocommerce-order-overview li,
.gds-wc ul.order_details li {
    border: 0;
    padding: 0;
    margin: 0;
}
.gds-wc .woocommerce-order-overview li strong,
.gds-wc ul.order_details li strong {
    display: block;
    margin-top: 4px;
    color: var(--gds-text);
    font-size: 15px;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 700;
}
.gds-wc .woocommerce-order-details,
.gds-wc .woocommerce-customer-details {
    margin-top: 24px;
}
.gds-wc .woocommerce-order-details h2,
.gds-wc .woocommerce-customer-details h2 {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 14px;
}

/* ----- My Account ----- */
.gds-wc .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 6px;
}
.gds-wc .woocommerce-MyAccount-navigation li a {
    display: inline-block;
    padding: 8px 14px;
    border-radius: var(--gds-radius-sm);
    color: var(--gds-text-soft);
    font-weight: 500;
    font-size: 14px;
}
.gds-wc .woocommerce-MyAccount-navigation li.is-active a,
.gds-wc .woocommerce-MyAccount-navigation li a:hover {
    background: var(--gds-green-soft);
    color: var(--gds-green-dark);
}

/* Login / register forms */
.gds-wc .u-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.gds-wc .u-column1,
.gds-wc .u-column2,
.gds-wc form.login,
.gds-wc form.register,
.gds-wc form.checkout_coupon,
.gds-wc form.lost_reset_password {
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    padding: 22px 24px;
}

/* Responsive */
@media (max-width: 900px) {
    .gds-wc .woocommerce-checkout {
        grid-template-columns: 1fr;
    }
    .gds-wc #order_review { position: static; }
    .gds-wc .woocommerce-billing-fields__field-wrapper,
    .gds-wc .woocommerce-shipping-fields__field-wrapper {
        grid-template-columns: 1fr;
    }
    .gds-wc .u-columns { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .gds-wc { padding: 20px 0 40px; }
    .gds-wc table.shop_table { display: block; }
    .gds-wc table.shop_table thead { display: none; }
    .gds-wc table.shop_table tbody,
    .gds-wc table.shop_table tr { display: block; }
    .gds-wc table.shop_table tr {
        border-bottom: 1px solid var(--gds-border-soft);
        padding: 12px 14px;
    }
    .gds-wc table.shop_table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 6px 0;
        border: 0;
    }
    .gds-wc table.shop_table td::before {
        content: attr(data-title);
        font-weight: 600;
        color: var(--gds-text-soft);
        font-size: 12.5px;
        text-transform: uppercase;
        letter-spacing: .05em;
        margin-right: 10px;
    }
    .gds-wc .cart-collaterals .cart_totals { max-width: none; }
    .gds-wc .woocommerce-order-overview,
    .gds-wc ul.order_details { flex-direction: column; gap: 12px; padding: 16px; }
}

/* ==========================================================================
   Cart & Checkout — polished look & feel (pure CSS, no markup changes)
   ========================================================================== */

/* ---- Page title: gradient band ---- */
.gds-wc .gds-wc-title {
    position: relative;
    padding: 22px 26px;
    margin: 0 0 26px;
    color: #fff;
    background: linear-gradient(135deg, #6ba035 0%, #7cb342 55%, #8cc151 100%);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(124, 179, 66, 0.22);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .01em;
    overflow: hidden;
}
.gds-wc .gds-wc-title::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 100% 0%, rgba(255,255,255,0.18) 0%, transparent 45%),
        radial-gradient(circle at 0% 100%, rgba(0,0,0,0.10) 0%, transparent 45%);
    pointer-events: none;
}
.gds-wc .gds-wc-title::after {
    content: "";
    position: absolute;
    right: 22px; top: 50%;
    transform: translateY(-50%);
    width: 46px; height: 46px;
    border-radius: 50%;
    background: rgba(255,255,255,0.14);
    box-shadow: 0 0 0 12px rgba(255,255,255,0.05);
}

/* ---- Cart table: richer, card-style ---- */
.gds-wc .woocommerce-cart-form {
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}
.gds-wc table.shop_table thead th {
    background: linear-gradient(180deg, var(--gds-bg-soft) 0%, var(--gds-bg-muted) 100%);
    border-bottom: 1px solid var(--gds-border);
    padding: 14px 18px;
}
.gds-wc table.shop_table tbody tr.cart_item:hover {
    background: var(--gds-bg-soft);
}
.gds-wc table.shop_table .product-thumbnail img,
.gds-wc table.shop_table img {
    border-radius: 8px;
    padding: 4px;
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}
.gds-wc table.shop_table .product-price .amount,
.gds-wc table.shop_table .product-subtotal .amount {
    color: var(--gds-text);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* ---- Quantity in cart table — themed stepper look ---- */
.gds-wc .product-quantity .quantity input.qty {
    height: 40px;
    border-radius: 8px;
    border: 1.5px solid var(--gds-border);
    font-weight: 600;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.gds-wc .product-quantity .quantity input.qty:focus {
    border-color: var(--gds-green);
    box-shadow: 0 0 0 3px rgba(124,179,66,0.15);
    outline: 0;
}

/* ---- Remove (×) — circular red on hover ---- */
.gds-wc table.shop_table .product-remove a.remove {
    width: 28px; height: 28px;
    font-size: 18px;
    border: 1px solid var(--gds-border);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: transform .15s ease, background .15s ease;
}
.gds-wc table.shop_table .product-remove a.remove:hover {
    transform: rotate(90deg);
}

/* ---- Coupon/Discount form (bottom of cart table) ---- */
.gds-wc .woocommerce-cart-form .cart.actions {
    background: linear-gradient(180deg, var(--gds-bg-soft) 0%, var(--gds-bg-muted) 100%);
    padding: 18px 22px;
    border-top: 1px solid var(--gds-border-soft);
}
.gds-wc .woocommerce-cart-form .coupon {
    position: relative;
    padding: 12px 14px;
    background: #fff;
    border: 1.5px dashed var(--gds-green);
    border-radius: 10px;
    gap: 8px;
    align-items: center;
    box-shadow: 0 1px 3px rgba(124,179,66,0.08);
}
.gds-wc .woocommerce-cart-form .coupon::before {
    content: "🎟";
    font-size: 16px;
    margin-right: 4px;
    opacity: .8;
}
.gds-wc .woocommerce-cart-form .coupon input[type="text"] {
    flex: 1 1 auto;
    min-width: 200px;
    border: 1px solid var(--gds-border);
    background: var(--gds-bg-soft);
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 14px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.gds-wc .woocommerce-cart-form .coupon input[type="text"]:focus {
    border-color: var(--gds-green);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(124,179,66,0.15);
    outline: 0;
}
.gds-wc .woocommerce-cart-form .coupon .button[name="apply_coupon"] {
    background: var(--gds-green) !important;
    color: #fff !important;
    border: 1px solid var(--gds-green-dark) !important;
    padding: 10px 20px !important;
    border-radius: 8px !important;
    font-weight: 600;
}
.gds-wc .woocommerce-cart-form .coupon .button[name="apply_coupon"]:hover {
    background: var(--gds-green-dark) !important;
    border-color: #5a8c2d !important;
}

/* ---- Cart totals card — elevated, branded header ---- */
.gds-wc .cart-collaterals .cart_totals {
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--gds-border);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    position: relative;
}
.gds-wc .cart-collaterals .cart_totals::before {
    content: "";
    display: block;
    height: 4px;
    background: linear-gradient(90deg, var(--gds-green-dark) 0%, var(--gds-green) 100%);
}
.gds-wc .cart-collaterals .cart_totals h2 {
    margin: 0;
    padding: 18px 24px 14px;
    font-size: 17px;
    font-weight: 700;
    color: var(--gds-text);
    text-transform: uppercase;
    letter-spacing: .05em;
    background: var(--gds-bg-soft);
    border-bottom: 1px solid var(--gds-border-soft);
}
.gds-wc .cart-collaterals .cart_totals table {
    margin: 0;
    padding: 8px 24px 18px;
    width: 100%;
    display: block;
}
.gds-wc .cart-collaterals .cart_totals table tbody {
    display: block;
    width: 100%;
}
.gds-wc .cart-collaterals .cart_totals table tr {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--gds-border-soft);
}
.gds-wc .cart-collaterals .cart_totals table tr:last-child {
    border-bottom: 0;
}
.gds-wc .cart-collaterals .cart_totals table th,
.gds-wc .cart-collaterals .cart_totals table td {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.gds-wc .cart-collaterals .cart_totals table th {
    color: var(--gds-text-soft);
    font-size: 13.5px;
    font-weight: 500;
    flex: 1 1 auto;
}
.gds-wc .cart-collaterals .cart_totals table td {
    color: var(--gds-text);
    font-weight: 600;
    text-align: right;
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}
.gds-wc .cart-collaterals .cart_totals .cart-discount th,
.gds-wc .cart-collaterals .cart_totals .cart-discount td {
    color: var(--gds-green-dark) !important;
    font-weight: 700 !important;
}
.gds-wc .cart-collaterals .cart_totals .cart-discount::before {
    content: "✓";
    position: absolute;
    margin-left: -18px;
    color: var(--gds-green);
    font-weight: 700;
}
.gds-wc .cart-collaterals .cart_totals .order-total {
    padding-top: 16px !important;
    margin-top: 4px;
    border-top: 2px solid var(--gds-text) !important;
    border-bottom: 0 !important;
}
.gds-wc .cart-collaterals .cart_totals .order-total th {
    color: var(--gds-text) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.gds-wc .cart-collaterals .cart_totals .order-total td .amount {
    font-size: 22px !important;
    font-weight: 800 !important;
    color: var(--gds-green-dark) !important;
}
.gds-wc .cart-collaterals .cart_totals .wc-proceed-to-checkout {
    padding: 0 24px 22px;
}

/* ---- Shipping calculator inside cart totals ---- */
.gds-wc .cart_totals .shipping-calculator-button {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.gds-wc .cart_totals .shipping-calculator-button::before {
    content: "📦";
    font-size: 13px;
    margin-right: 2px;
}
.gds-wc .cart_totals .shipping-calculator-form {
    margin-top: 10px;
    padding: 14px;
    background: var(--gds-bg-soft);
    border-radius: 8px;
    border: 1px solid var(--gds-border-soft);
}

/* ==========================================================================
   Checkout — richer, more branded layout
   ========================================================================== */
.gds-wc .woocommerce-checkout { gap: 32px; }

.gds-wc .woocommerce-checkout .col-1,
.gds-wc .woocommerce-checkout .col-2 {
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--gds-border);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    transition: box-shadow .2s ease;
}
.gds-wc .woocommerce-checkout .col-1:hover,
.gds-wc .woocommerce-checkout .col-2:hover {
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}
.gds-wc .woocommerce-checkout h3 {
    position: relative;
    margin: 0;
    padding: 16px 24px;
    font-size: 15.5px;
    font-weight: 700;
    color: var(--gds-text);
    text-transform: uppercase;
    letter-spacing: .05em;
    background: var(--gds-bg-soft);
    border-bottom: 1px solid var(--gds-border-soft);
}
.gds-wc .woocommerce-checkout h3::before {
    content: "";
    display: inline-block;
    width: 4px; height: 16px;
    background: var(--gds-green);
    border-radius: 3px;
    margin-right: 10px;
    vertical-align: -2px;
}
.gds-wc .woocommerce-checkout .woocommerce-billing-fields,
.gds-wc .woocommerce-checkout .woocommerce-shipping-fields,
.gds-wc .woocommerce-checkout .woocommerce-additional-fields {
    padding: 22px 24px;
}

/* Checkout form inputs — bigger, nicer focus */
.gds-wc .form-row label {
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.gds-wc .form-row input[type="text"],
.gds-wc .form-row input[type="email"],
.gds-wc .form-row input[type="tel"],
.gds-wc .form-row input[type="password"],
.gds-wc .form-row input[type="number"],
.gds-wc .form-row textarea,
.gds-wc .form-row select,
.gds-wc .select2-container--default .select2-selection--single {
    min-height: 46px !important;
    padding: 12px 14px !important;
    border-radius: 8px !important;
    border-width: 1.5px !important;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.gds-wc .form-row input:focus,
.gds-wc .form-row textarea:focus,
.gds-wc .form-row select:focus,
.gds-wc .select2-container--default.select2-container--focus .select2-selection--single {
    border-color: var(--gds-green) !important;
    box-shadow: 0 0 0 4px rgba(124, 179, 66, 0.15) !important;
    background: #fff !important;
}

/* Order review card — premium sticky sidebar */
.gds-wc #order_review_heading {
    padding: 16px 24px;
    margin: 0;
    font-size: 15.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    background: linear-gradient(135deg, var(--gds-green-dark) 0%, var(--gds-green) 100%);
    color: #fff;
    border-radius: var(--gds-radius) var(--gds-radius) 0 0;
    box-shadow: 0 -2px 0 rgba(0,0,0,0.05) inset;
}
.gds-wc #order_review {
    padding: 0;
    border: 1px solid var(--gds-border);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    border-radius: var(--gds-radius);
}
.gds-wc #order_review table.shop_table {
    padding: 14px 22px;
    width: 100%;
    display: block;
}
.gds-wc #order_review table.shop_table thead { display: block; width: 100%; }
.gds-wc #order_review table.shop_table thead tr,
.gds-wc #order_review table.shop_table tbody tr,
.gds-wc #order_review table.shop_table tfoot tr {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    padding: 8px 0;
}
.gds-wc #order_review table.shop_table thead tr {
    border-bottom: 1px solid var(--gds-border);
    text-transform: uppercase;
    font-size: 11.5px;
    letter-spacing: .06em;
    color: var(--gds-text-muted);
}
.gds-wc #order_review table.shop_table thead th {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
.gds-wc #order_review table.shop_table tbody tr { border-bottom: 1px dashed var(--gds-border-soft); }
.gds-wc #order_review table.shop_table tfoot tr { border-bottom: 1px dashed var(--gds-border-soft); }
.gds-wc #order_review table.shop_table th,
.gds-wc #order_review table.shop_table td {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    font-size: 13.5px;
}
.gds-wc #order_review table.shop_table td { font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.gds-wc #order_review table.shop_table tfoot .order-total {
    border-top: 2px solid var(--gds-text);
    padding-top: 14px !important;
    margin-top: 6px;
    border-bottom: 0 !important;
}
.gds-wc #order_review table.shop_table tfoot .order-total th {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.gds-wc #order_review table.shop_table tfoot .order-total td .amount {
    font-size: 22px !important;
    font-weight: 800 !important;
    color: var(--gds-green-dark) !important;
}

/* Payment methods — radio-style cards */
.gds-wc #payment {
    margin: 0;
    padding: 0 22px 22px;
    background: #fff;
    border: 0;
    border-radius: 0;
}
.gds-wc #payment > div.payment_methods { margin-top: 10px; }
.gds-wc #payment ul.payment_methods {
    padding: 0;
    border: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.gds-wc #payment ul.payment_methods li {
    background: #fff;
    border: 1.5px solid var(--gds-border);
    border-radius: 10px;
    padding: 14px 16px !important;
    margin: 0;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.gds-wc #payment ul.payment_methods li:hover { border-color: var(--gds-green); }
.gds-wc #payment ul.payment_methods li input[type="radio"] { accent-color: var(--gds-green); margin-right: 6px; }
.gds-wc #payment ul.payment_methods li input[type="radio"]:checked ~ label { color: var(--gds-green-dark); }
.gds-wc #payment ul.payment_methods li:has(input[type="radio"]:checked) {
    border-color: var(--gds-green);
    background: var(--gds-green-soft);
    box-shadow: 0 2px 8px rgba(124, 179, 66, 0.15);
}
.gds-wc #payment ul.payment_methods li label img {
    vertical-align: middle;
    max-height: 24px;
    margin-left: 8px;
}
.gds-wc #payment .payment_box {
    background: #fff;
    border: 1px solid var(--gds-border-soft);
    border-radius: 8px;
    padding: 14px 16px;
    margin-top: 12px;
    font-size: 13.5px;
    color: var(--gds-text-soft);
}
.gds-wc #payment .form-row.place-order {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--gds-border-soft);
}
.gds-wc .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--gds-text-soft); }
.gds-wc .woocommerce-terms-and-conditions-wrapper a { color: var(--gds-green-dark); font-weight: 600; }

/* Notes field */
.gds-wc #order_comments { min-height: 110px !important; }

/* Login / coupon toggles at top of checkout */
.gds-wc .woocommerce-form-login-toggle .woocommerce-info,
.gds-wc .woocommerce-form-coupon-toggle .woocommerce-info {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px 12px 44px;
}
.gds-wc form.checkout_coupon,
.gds-wc form.woocommerce-form-login {
    border: 1px solid var(--gds-border);
    background: var(--gds-bg-soft);
    border-radius: 10px;
    padding: 18px 22px;
    margin-bottom: 20px;
}

/* Small polish: subtle card divider line above the payment section */
.gds-wc .woocommerce-checkout-review-order-table + #payment {
    border-top: 1px solid var(--gds-border-soft);
    margin-top: 6px;
}

/* ==========================================================================
   Final button overrides — covers classic cart shortcode, WooCommerce Blocks
   (block-based cart/checkout), and every button WC might output. Uses brutal
   specificity so these rules win on any setup/plugin combo.
   ========================================================================== */

/* Classic WC — catches every primary button WC renders */
html body.woocommerce #respond input#submit,
html body.woocommerce #respond input#submit.alt,
html body.woocommerce a.button,
html body.woocommerce a.button.alt,
html body.woocommerce button.button,
html body.woocommerce button.button.alt,
html body.woocommerce input.button,
html body.woocommerce input.button.alt,
html body.woocommerce input[type="submit"].button,
html body.woocommerce-page a.button,
html body.woocommerce-page button.button,
html body.woocommerce-page input.button,
html body .gds-wc a.button,
html body .gds-wc button.button,
html body .gds-wc input.button,
html body .gds-wc input[type="submit"],
html body .gds-wc .single_add_to_cart_button,
html body .gds-wc a.checkout-button,
html body .gds-wc a.wc-forward,
html body .gds-wc #place_order,
html body .gds-wc button#place_order {
    background: #7cb342 !important;
    background-color: #7cb342 !important;
    background-image: linear-gradient(180deg, #8cc151 0%, #6ba035 100%) !important;
    color: #ffffff !important;
    border: 1px solid #5a8c2d !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    padding: 11px 22px !important;
    text-shadow: none !important;
    text-decoration: none !important;
    box-shadow: 0 2px 6px rgba(124, 179, 66, 0.28) !important;
    cursor: pointer !important;
    transition: background-image .15s ease, box-shadow .15s ease, transform .15s ease !important;
}
html body.woocommerce a.button:hover,
html body.woocommerce button.button:hover,
html body.woocommerce input.button:hover,
html body .gds-wc a.button:hover,
html body .gds-wc button.button:hover,
html body .gds-wc input.button:hover,
html body .gds-wc a.checkout-button:hover,
html body .gds-wc #place_order:hover {
    background-image: linear-gradient(180deg, #7cb342 0%, #5a8c2d 100%) !important;
    box-shadow: 0 4px 12px rgba(124, 179, 66, 0.40) !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
}

/* Secondary buttons on the cart (Update cart, Apply discount) — keep outlined */
html body .gds-wc .cart .actions .button[name="update_cart"],
html body .gds-wc .cart .actions button[name="update_cart"],
html body .gds-wc .cart .actions input[name="update_cart"] {
    background: #ffffff !important;
    background-image: none !important;
    color: #1a202c !important;
    border: 1.5px solid #e2e8f0 !important;
    box-shadow: none !important;
}
html body .gds-wc .cart .actions .button[name="update_cart"]:hover {
    border-color: #7cb342 !important;
    color: #6ba035 !important;
}

/* ---------- WooCommerce Blocks (React-based cart / checkout) ---------- */
html body .gds-wc .wc-block-components-button,
html body .gds-wc button.wc-block-components-button,
html body .gds-wc .wc-block-cart__submit-button,
html body .gds-wc .wc-block-components-checkout-place-order-button,
html body .gds-wc .wp-block-button__link,
html body .wc-block-cart .wc-block-components-button,
html body .wc-block-checkout .wc-block-components-button,
html body .is-style-fill .wc-block-components-button {
    background: #7cb342 !important;
    background-color: #7cb342 !important;
    background-image: linear-gradient(180deg, #8cc151 0%, #6ba035 100%) !important;
    color: #ffffff !important;
    border: 1px solid #5a8c2d !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
    padding: 14px 22px !important;
    box-shadow: 0 4px 14px rgba(124, 179, 66, 0.30) !important;
    text-shadow: none !important;
}
html body .gds-wc .wc-block-components-button:hover,
html body .gds-wc .wc-block-cart__submit-button:hover,
html body .gds-wc .wc-block-components-checkout-place-order-button:hover,
html body .gds-wc .wp-block-button__link:hover {
    background-image: linear-gradient(180deg, #7cb342 0%, #5a8c2d 100%) !important;
    box-shadow: 0 6px 18px rgba(124, 179, 66, 0.45) !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}
html body .gds-wc .wc-block-components-button__text { color: inherit !important; }

/* Block cart/checkout inputs — match theme */
html body .gds-wc .wc-block-components-text-input input,
html body .gds-wc .wc-block-components-country-input input,
html body .gds-wc .wc-block-components-state-input input,
html body .gds-wc .wc-block-components-combobox input,
html body .gds-wc .wc-block-components-address-form input {
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 14px 14px 6px !important;
    background: #ffffff !important;
    min-height: 46px !important;
}
html body .gds-wc .wc-block-components-text-input input:focus {
    border-color: #7cb342 !important;
    box-shadow: 0 0 0 4px rgba(124, 179, 66, 0.15) !important;
    outline: 0 !important;
}
html body .gds-wc .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: #6ba035 !important;
    font-weight: 800 !important;
    font-size: 22px !important;
}
html body .gds-wc .wc-block-components-panel__button { color: #6ba035 !important; }
html body .gds-wc .wc-block-checkout__sidebar,
html body .gds-wc .wc-block-cart__sidebar {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px 20px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}
html body .gds-wc .wc-block-components-title {
    color: #1a202c !important;
    font-weight: 700 !important;
}

/* Radio option cards in blocks checkout (payment / shipping option tiles) */
html body .gds-wc .wc-block-components-radio-control__option {
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 10px !important;
    padding: 14px 16px !important;
    margin-bottom: 8px !important;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
html body .gds-wc .wc-block-components-radio-control__option:hover { border-color: #7cb342 !important; }
html body .gds-wc .wc-block-components-radio-control__option-checked,
html body .gds-wc .wc-block-components-radio-control__option[aria-checked="true"] {
    border-color: #7cb342 !important;
    background: #eaf4dc !important;
    box-shadow: 0 2px 8px rgba(124, 179, 66, 0.15) !important;
}

/* ==========================================================================
   Select2 / selectWoo — theme the dropdown so it matches other inputs
   ========================================================================== */
html body .gds-wc .select2-container--default .select2-selection--single,
html body .gds-wc .select2-container--default.select2-container--open .select2-selection--single,
html body .gds-wc .select2-container--default .select2-selection--multiple {
    min-height: 46px !important;
    padding: 8px 14px !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    font-size: 14px !important;
    color: #1a202c !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}
html body .gds-wc .select2-container--default.select2-container--focus .select2-selection--single,
html body .gds-wc .select2-container--default.select2-container--open .select2-selection--single {
    border-color: #7cb342 !important;
    box-shadow: 0 0 0 4px rgba(124, 179, 66, 0.15) !important;
}
html body .gds-wc .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #1a202c !important;
    line-height: 28px !important;
    padding: 0 !important;
    font-weight: 500;
}
html body .gds-wc .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #a0aec0 !important; }
html body .gds-wc .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
    width: 32px !important;
    right: 4px !important;
}
html body .gds-wc .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #718096 transparent transparent transparent !important;
}
html body .gds-wc .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #7cb342 transparent !important;
}

/* The dropdown panel itself (portaled to <body>, so not scoped to .gds-wc) */
html body .select2-container .select2-dropdown {
    border: 1.5px solid #7cb342 !important;
    border-radius: 10px !important;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12) !important;
    overflow: hidden;
    margin-top: 4px;
    background: #fff;
}
html body .select2-container .select2-search--dropdown {
    padding: 10px;
    background: #f7f9fc;
    border-bottom: 1px solid #e2e8f0;
}
html body .select2-container .select2-search--dropdown .select2-search__field {
    padding: 9px 12px !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    outline: 0 !important;
    background: #fff !important;
}
html body .select2-container .select2-search--dropdown .select2-search__field:focus {
    border-color: #7cb342 !important;
    box-shadow: 0 0 0 3px rgba(124,179,66,0.15) !important;
}
html body .select2-container .select2-results__option {
    padding: 10px 14px !important;
    font-size: 14px !important;
    color: #1a202c !important;
    line-height: 1.4 !important;
}
html body .select2-container .select2-results__option--highlighted[aria-selected],
html body .select2-container .select2-results__option--highlighted,
html body .select2-container--default .select2-results__option[data-selected="true"],
html body .select2-container--default .select2-results__option--selected {
    background: #eaf4dc !important;
    color: #6ba035 !important;
    font-weight: 600 !important;
}
html body .select2-container .select2-results__option[aria-selected="true"] {
    background: #7cb342 !important;
    color: #ffffff !important;
}

/* Multi-select chips (if any) */
html body .gds-wc .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: #7cb342 !important;
    color: #fff !important;
    border: 0 !important;
    padding: 3px 10px !important;
    border-radius: 999px !important;
    font-size: 12.5px !important;
}
html body .gds-wc .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #fff !important;
    margin-right: 4px !important;
}

/* Native <select> fallback — match the Select2 look if selectWoo fails to bind */
html body .gds-wc select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 40px !important;
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23718096' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 12px !important;
    background-color: #ffffff !important;
}

/* ==========================================================================
   WooCommerce Cart Block (block-based cart/checkout)
   The block cart uses .wc-block-* classes, which the classic .shop_table
   styles above never touch. Match the theme's typography and brand colors.
   ========================================================================== */

/* Product link in cart row — match the rest of the site (text color, not green) */
.gds-wc .wc-block-cart-item__product .wc-block-components-product-name,
.gds-wc .wc-block-components-product-name {
    color: var(--gds-text) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    text-decoration: none !important;
}
.gds-wc .wc-block-components-product-name:hover {
    color: var(--gds-green-dark) !important;
}

/* Hide the metadata description block when it just duplicates the title.
   Our CSV importer now blanks the excerpt in that case, but for already-
   imported products we hide any plain-text metadata that doesn't carry
   variation/attribute data. */
.gds-wc .wc-block-components-product-metadata__description {
    color: var(--gds-text-soft);
    font-size: 13px;
    margin-top: 4px;
}
.gds-wc .wc-block-components-product-metadata__description:empty {
    display: none;
}

/* Block-cart price — bold, brand-green, sized to match site price typography */
.gds-wc .wc-block-components-product-price,
.gds-wc .wc-block-components-product-price__value,
.gds-wc .wc-block-cart-item__total .wc-block-components-product-price__value,
.gds-wc .wc-block-cart-item__total-price-amount,
.gds-wc .wc-block-formatted-money-amount {
    color: var(--gds-green-dark) !important;
    font-weight: 800 !important;
    font-size: 17px !important;
    letter-spacing: 0 !important;
}

/* Cart totals (block) */
.gds-wc .wc-block-components-totals-item__value,
.gds-wc .wc-block-components-totals-footer-item-tax-value {
    font-weight: 700 !important;
    color: var(--gds-text) !important;
}
.gds-wc .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: var(--gds-green-dark) !important;
    font-size: 18px !important;
}

/* Cart row layout polish */
.gds-wc .wc-block-cart-items {
    border: 1px solid var(--gds-border-soft);
    border-radius: var(--gds-radius);
    background: #fff;
    overflow: hidden;
}
.gds-wc .wc-block-cart-items .wc-block-cart-items__row {
    padding: 16px 18px;
    border-top: 1px solid var(--gds-border-soft);
}
.gds-wc .wc-block-cart-items .wc-block-cart-items__row:first-child { border-top: 0; }

/* Product image in block cart — same treatment as classic cart */
.gds-wc .wc-block-cart-item__image img,
.gds-wc .wc-block-cart-item__image .gds-cart-thumb {
    width: 72px !important;
    height: 72px !important;
    object-fit: contain !important;
    background: var(--gds-bg-muted);
    border-radius: var(--gds-radius-sm);
    padding: 6px;
}

/* When the block cart shows the "no image available" placeholder span,
   make it match the muted thumbnail box instead of the broken-image icon. */
.gds-wc .wc-block-cart-item__image > div:empty,
.gds-wc .wc-block-cart-item__image .wc-block-components-product-image--placeholder {
    width: 72px;
    height: 72px;
    background: var(--gds-bg-muted);
    border-radius: var(--gds-radius-sm);
    display: inline-block;
}

/* ==========================================================================
   Home page — Catalogues section
   ========================================================================== */
.gds-catalogues {
    padding: 56px 0 64px;
    background: var(--gds-bg-soft);
}
.gds-catalogues-head {
    text-align: center;
    margin-bottom: 36px;
}
.gds-catalogues-title {
    margin: 0 0 8px;
    font-size: 28px;
    font-weight: 700;
    color: var(--gds-text);
}
.gds-catalogues-sub {
    margin: 0 auto;
    max-width: 640px;
    font-size: 15px;
    color: var(--gds-text-soft);
}
.gds-catalogues-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
@media (max-width: 1024px) {
    .gds-catalogues-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .gds-catalogues-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .gds-catalogues-grid { grid-template-columns: 1fr; }
}
.gds-catalogue-card {
    background: var(--gds-card-bg);
    border: 1px solid var(--gds-border);
    border-radius: var(--gds-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: var(--gds-shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.gds-catalogue-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--gds-shadow-md);
    border-color: #d6dde8;
}
.gds-catalogue-cover {
    position: relative;
    aspect-ratio: 4 / 3;
    background: var(--gds-bg-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.gds-catalogue-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.gds-catalogue-cover-placeholder {
    color: var(--gds-text-muted);
    opacity: .55;
}
.gds-catalogue-body {
    padding: 20px 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.gds-catalogue-name {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--gds-text);
    line-height: 1.35;
}
.gds-catalogue-desc {
    margin: 0;
    font-size: 14px;
    color: var(--gds-text-soft);
    line-height: 1.5;
}
.gds-catalogue-btn {
    margin-top: auto;
    align-self: flex-start;
}
.gds-catalogue-soon {
    margin-top: auto;
    align-self: flex-start;
    display: inline-block;
    padding: 8px 14px;
    border: 1px dashed var(--gds-border);
    border-radius: 999px;
    color: var(--gds-text-muted);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.gds-catalogue-card.is-empty { opacity: .85; }
@media (max-width: 600px) {
    .gds-catalogues { padding: 44px 0 48px; }
    .gds-catalogues-title { font-size: 22px; }
    .gds-catalogues-grid { gap: 16px; }
    .gds-catalogue-btn { align-self: stretch; }
}
