/*
 * Theme Name: GeneratePress ShedRamps
 * Theme URI: https://shedramps.com
 * Description: ShedRamps child theme based on GeneratePress.
 * Author: ShedRamps
 * Author URI: https://shedramps.com
 * Template: generatepress
 * Version: 0.1.2
 * License: GNU General Public License v2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain: generatepress-shedramps
 */

/* =============================================================================
   Color Palette
   ============================================================================= */

:root {
    /* Brand blues */
    --brand-blue-dark:    #004079;
    --brand-blue-mid:     #036BAD;
    --brand-blue-light:   #2ac4fe;

    /* Brand accents */
    --brand-gold:         #BDB315;
    --brand-warm:         #e7e3e0;

    /* Cool-toned grays (hued to match the blues) */
    --gray-900:           #18222e;  /* body copy */
    --gray-800:           #2c3a48;  /* dark body text */
    --gray-700:           #3b4d5f;  /* secondary headings */
    --gray-600:           #4b5c6e;  /* secondary text */
    --gray-500:           #6b7c8e;  /* subdued labels */
    --gray-400:           #8896a5;  /* muted / placeholder */
    --gray-200:           #d2dce5;  /* borders / dividers */
    --gray-50:            #f0f4f7;  /* page backgrounds */

    /* GeneratePress variable overrides */
    --contrast:           var(--gray-900);
    --contrast-2:         var(--gray-600);
    --contrast-3:         var(--gray-400);
    --base:               var(--gray-200);
    --base-2:             var(--gray-50);
    --base-3:             #ffffff;
    --accent:             var(--brand-blue-dark);
}

/* =============================================================================
   Typography
   ============================================================================= */

html { font-size: 18px; }

body, p, li, td, th, label, input, textarea, select, button {
    font-family: 'Barlow', sans-serif;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--gray-900);
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    line-height: 1.1;
}
h1 { font-size: 3rem; }
h2 { font-size: 2.333rem; }
h3 { font-size: 1.778rem; }
h4 { font-size: 1.444rem; }
h5 { font-size: 1.222rem; }
h6 { font-size: 1rem; }
ul,ol {padding:0 0 0 2rem;}

/* =============================================================================
   Structural Overrides
   ============================================================================= */


.site-main, .separate-containers .site-main { 
    padding: 1rem 0 2rem; margin:0; 
}
.full-width-content .container.grid-container .site-main {
    padding: 0;
}
.full-width-content .container.grid-container .site-main .entry-header {
    padding:2rem; text-align:center;
}
.full-width-content .container.grid-container .site-main .entry-header h1 {margin:0;}

.entry-content:not(:first-child), .entry-summary:not(:first-child), .page-content:not(:first-child) {
    margin-top:0;
}
.wp-block-columns {gap:40px;}
body {
    background-image:url(/wp-content/uploads/2026/03/diamond-plate-bg.png);
    background-size:6%;
}
@media screen and (max-width:767px) {
.mobile-side-padding {padding-left:1rem!important; padding-right:1rem!important;}
}

/* =============================================================================
   Block Editor Layout — alignment constraints
   Replicates WordPress's block layout flow rules for hybrid (classic) themes.
   Uses :where() for zero added specificity so blocks can override freely.
   contentSize / wideSize come from theme.json settings.layout.
   ============================================================================= */

/* Default-aligned blocks: constrained to content size, centered */
.entry-content > :where(
    :not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide)
) {
    max-width: var(--wp--style--global--content-size, 1200px);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

/* Wide-aligned blocks: constrained to wide size, centered */
.entry-content > .alignwide {
    max-width: var(--wp--style--global--wide-size, 1400px);
    margin-left: auto;
    margin-right: auto;
}

/* Full-width blocks: unrestricted */
.entry-content > .alignfull {
    max-width: none;
    width: 100%;
}

/* =============================================================================
   Header
   ============================================================================= */

.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 999;
    background-color: rgba(3, 107, 173, 0.9);
    transition: top 0.2s ease, box-shadow 0.3s ease;
}
.admin-bar .site-header { top: 32px; }
.site-header.scrolled { box-shadow: 0 2px 24px rgba(0, 0, 0, 0.35); }

/* Angled white trapezoid behind the logo — the "ramp" shape */
.site-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: #ffffff;
    clip-path: polygon(0 0, 24% 0, 15% 100%, 0 100%);
    z-index: 0;
    pointer-events: none;
}

.site-header .inside-header { position: relative; z-index: 1; }

.inside-header {
    padding: 20px 12px;
    transition: padding 0.3s ease;
}
.site-header.scrolled .inside-header { padding: 12px; }

.site-header .site-logo img { transition: width 0.3s ease; }
.site-header.scrolled .site-logo img { width: 120px !important; }

/* ── Navigation ── */

.main-navigation,
.main-navigation ul ul { background-color: transparent; }

.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
    font-family: 'Barlow', sans-serif;
    font-weight: 600;
    font-size: 1.1rem;
    color: #ffffff;
    line-height: 1;
    letter-spacing: 0.02rem;
    padding: 10px 14px;
    transition: color 0.2s ease;
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--gray-200); }

.main-navigation ul ul {
    background-color: rgba(0, 40, 100, 0.98);
    border-top: 2px solid rgba(255, 255, 255, 0.12);
}
.main-navigation .main-nav ul ul li a {
    font-size: 1rem;
    padding: 10px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.menu-item-has-children .dropdown-menu-toggle { padding-right: 10px; padding-left: 0; margin-bottom:3px; }

button.menu-toggle,
button.menu-toggle:hover,
button.menu-toggle:focus { color: #ffffff; background-color: transparent; }

/* Cart icon in nav (add class "menu-cart-icon" to menu item) */
.menu-cart-icon > a {
    position: relative;
    display: flex !important;
    align-items: center;
    gap: 8px;
}
.menu-cart-icon > a::before {
    content: '';
    display: inline-block;
    width: 20px; height: 20px;
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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");
    mask-repeat: no-repeat;
    mask-size: contain;
    transition: background-color 0.2s ease;
}

/* ── Header Icon Nav ── */

.header-icon-nav { display: flex; align-items: center; gap: 4px; }

.header-icon-nav__btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    padding: 0;
    background: none;
    border: none;
    border-radius: 4px;
    color: #ffffff;
    cursor: pointer;
    text-decoration: none;
    transition: color 0.2s ease;
}
.header-icon-nav__btn svg { width: 20px; height: 20px; flex-shrink: 0; }
.header-icon-nav__btn:hover,
.header-icon-nav__btn:focus,
.header-icon-nav__btn[aria-expanded="true"] {
    color: var(--gray-200);
    background-color: transparent;
    outline: none;
}

.header-cart-count {
    position: absolute;
    top: 4px; right: 2px;
    min-width: 16px; height: 16px;
    padding: 0 3px;
    background-color: var(--brand-gold);
    color: #ffffff;
    font-family: 'Barlow', sans-serif;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    border-radius: 4px;
    pointer-events: none;
}
.header-cart-count.is-empty { display: none; }

/* Search overlay */
.header-search-panel {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: fixed;
    inset: 0;
    background-color: rgba(0, 30, 80, 0.96);
    z-index: 1050;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0s linear 0.25s;
}
.header-search-panel.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.25s ease, visibility 0s linear 0s;
}

.header-search-panel__inner {
    width: 100%;
    max-width: 600px;
    padding: 0 24px;
}
.header-search-panel__inner::before {
    content: 'What are you looking for?';
    display: block;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 16px;
}

.header-search-panel .search-form {
    display: flex;
    align-items: center;
    border-bottom: 2px solid rgba(255, 255, 255, 0.4);
}
.header-search-panel .search-form label {
    flex: 1;
    display: flex;
    align-items: center;
    margin: 0; padding: 0;
    background: transparent;
}
.header-search-panel .search-field {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    padding: 14px 0;
    background: transparent !important;
    border: none;
    color: #ffffff !important;
    font-family: 'Barlow', sans-serif;
    font-size: 1.75rem;
    font-weight: 300;
    caret-color: var(--brand-blue-light);
}
.header-search-panel .search-field::placeholder { color: rgba(255, 255, 255, 0.3); }
.header-search-panel .search-field:focus { outline: none; }

/* Override browser-forced white autofill background */
.header-search-panel .search-field:-webkit-autofill,
.header-search-panel .search-field:-webkit-autofill:hover,
.header-search-panel .search-field:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px rgba(0, 30, 80, 0.96) inset !important;
    -webkit-text-fill-color: #ffffff !important;
    caret-color: var(--brand-blue-light);
}

.header-search-panel .search-submit {
    -webkit-appearance: none;
    appearance: none;
    flex-shrink: 0;
    width: 48px; height: 48px;
    padding: 0;
    border: none;
    cursor: pointer;
    font-size: 0;
    color: transparent;
    background-color: rgba(255, 255, 255, 0.55);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 24px 24px;
    -webkit-mask-position: center;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
    mask-repeat: no-repeat;
    mask-size: 24px 24px;
    mask-position: center;
    transition: background-color 0.2s ease;
}
.header-search-panel .search-submit:hover { background-color: #ffffff; }

.header-search-close {
    position: absolute;
    top: 16px; right: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px; height: 56px;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    font-size: 2.75rem;
    font-weight: 300;
    line-height: 1;
    transition: color 0.2s ease;
}
.header-search-close:hover { background: none; color: #ffffff; }

/* ── Header responsive ── */

/* WP admin bar grows to 46px at ≤782px */
@media screen and (max-width: 600px) {
    .admin-bar .site-header.scrolled {top:0}
}
@media screen and (max-width: 782px) {
    .admin-bar .site-header { top: 46px; }
}
@media screen and (max-width: 768px) {
    .site-header .inside-header { padding: 12px; }
    .site-header .site-logo img { width: 120px !important; }
}
@media (max-width: 768px) {
    .main-navigation .main-nav {
        position: fixed;
        top: var(--header-h, 60px);
        left: 0; right: 0;
        background-color: rgba(0, 40, 100, 0.98);
        border-top: 2px solid rgba(255, 255, 255, 0.12);
        max-height: calc(100vh - var(--header-h, 60px));
        overflow-y: auto;
        z-index: 998;
        display: block !important;
        opacity: 0;
        pointer-events: none;
        transform: translateY(-6px);
        transition: opacity 0.25s ease, transform 0.25s ease;
    }
    .main-navigation.toggled .main-nav {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }
    .main-navigation .main-nav ul { display: block !important; padding: 0.5rem 0; }
    .main-navigation .main-nav ul li {
        display: block;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
    .main-navigation .main-nav ul li:last-child { border-bottom: none; }
    .main-navigation .main-nav ul li a { display: block; padding: 14px 20px; font-size: 1rem; }
    .main-navigation .main-nav ul ul {
        display: block !important;
        background-color: rgba(0, 20, 60, 0.6);
        border-top: none;
        padding: 0;
    }
    .main-navigation .main-nav ul ul li { border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
    .main-navigation .main-nav ul ul li a {
        padding: 11px 20px 11px 36px;
        font-size: 0.9rem;
        font-weight: 500;
        letter-spacing: 0.02em;
        opacity: 0.88;
    }
    .main-navigation .main-nav ul ul li a:hover { opacity: 1; color: #ffffff; }

    /* Icon nav LEFT of the hamburger */
    .inside-header { display: flex; align-items: center; flex-wrap: nowrap; }
    .header-icon-nav { order: 2; margin-left: auto; }
    .main-navigation { order: 3; margin-left: 4px; }
}
@media (max-width: 600px) {
    .site-header::before { clip-path: polygon(0 0, 55% 0, 42% 100%, 0 100%); }
}
@media (min-width: 601px) and (max-width: 782px) {
    .site-header::before { clip-path: polygon(0 0, 40% 0, 30% 100%, 0 100%); }
}
@media (min-width: 783px) and (max-width: 1280px) {
    .site-header::before { clip-path: polygon(0 0, 36% 0, 24% 100%, 0 100%); }
}
@media (min-width: 1280px) and (max-width: 1599px) {
    .site-header::before { clip-path: polygon(0 0, 42% 0, 24% 100%, 0 100%); }
}
@media (min-width: 1600px) {
    .site-header::before { clip-path: polygon(0 0, 45% 0, 36% 100%, 0 100%); }
}

/* =============================================================================
   Footer
   ============================================================================= */

.site-footer {
    background-color: var(--gray-600);
    color: rgba(255, 255, 255, 0.8);
}

.footer-inner {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.2fr;
    gap: 56px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 72px 40px;
}

.footer-logo img { display: block; margin-bottom: 20px; opacity: 0.95; }

.footer-tagline {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    font-size: 1.1rem;
    color: #ffffff;
    margin: 0 0 12px;
    letter-spacing: 0.02em;
    line-height: 1.3;
}
.footer-description {
    font-size: 0.8rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.65);
    margin: 0 0 24px;
}

.footer-social { display: flex; gap: 12px; }

.social-icon {
    display: block;
    width: 30px; height: 30px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background-color: currentColor;
    color: rgba(255, 255, 255, 0.7);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: 18px;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: 30px;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.social-icon:hover { color: #fff; border-color: var(--gray-200); }
.social-icon--facebook {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z'/%3E%3C/svg%3E");
}
.social-icon--instagram {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' y1='6.5' x2='17.51' y2='6.5'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' y1='6.5' x2='17.51' y2='6.5'/%3E%3C/svg%3E");
}
.social-icon--youtube {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22.54 6.42a2.78 2.78 0 0 0-1.95-1.94C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 1.94A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58A2.78 2.78 0 0 0 3.4 19.5C5.12 20 12 20 12 20s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.95-1.94A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58z'/%3E%3Cpolygon points='9.75 15.02 15.5 12 9.75 8.98 9.75 15.02'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22.54 6.42a2.78 2.78 0 0 0-1.95-1.94C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 1.94A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58A2.78 2.78 0 0 0 3.4 19.5C5.12 20 12 20 12 20s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.95-1.94A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58z'/%3E%3Cpolygon points='9.75 15.02 15.5 12 9.75 8.98 9.75 15.02'/%3E%3C/svg%3E");
}

.footer-heading {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #ffffff;
    margin: 0 0 20px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--brand-gold);
    display: inline-block;
}

.footer-nav ul,
.footer-contact ul { list-style: none; margin: 0; padding: 0; }

.footer-nav ul li { margin-bottom: 10px; }
.footer-nav ul li a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: 0.95rem;
    transition: color 0.2s ease;
}
.footer-nav ul li a:hover { color:#fff; }

.footer-contact ul li {
    margin-bottom: 16px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.footer-contact ul li a {
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    transition: color 0.2s ease;
}
.footer-contact ul li a:hover { color: var(--gray-200); }
.footer-contact ul li span { font-size: 0.8rem; color: rgba(255, 255, 255, 0.5); }

.footer-cta {
    display: inline-block;
    margin-top: 8px;
    padding: 10px 22px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 4px;
    color: #ffffff;
    text-decoration: none;
    font-family: 'Barlow', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    z-index:1
}
.footer-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22), inset 0 0 0 999px rgba(0, 0, 0, 0.09);
    color:#ffffff;
}

.footer-affiliates {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    background-color:var(--gray-700);
}
.footer-affiliates__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}
.affiliate-logo, .woocommerce img.affiliate-logo, .woocommerce-page img.affiliate-logo {
    display: block;
    height: 60px;
    width: auto;
    max-width: 140px;
    object-fit: contain;
}

.footer-bottom {
    background-color: rgba(0, 0, 0, 0.3);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.footer-bottom__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 18px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.footer-bottom__inner p { margin: 0; font-size: 0.8rem; color: rgba(255, 255, 255, 0.45); line-height: 1; }
.footer-bottom__inner a {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.45);
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.2s ease;
}
.footer-bottom__inner a:hover { color: rgba(255, 255, 255, 0.85); }
.footer-bottom__inner a:first-of-type { margin-left: auto; }
ul#menu-footer-menu-one li a {font-size:0.8rem;}
ul#menu-footer-menu-one li {line-height:1.1rem;}

@media (max-width: 960px) {
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 40px; padding: 56px 32px; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-affiliates__inner { padding: 20px 32px; gap: 28px; }
}
@media (max-width: 600px) {
    .footer-inner { grid-template-columns: 1fr; gap: 36px; padding: 48px 24px; }
    .footer-affiliates__inner { padding: 20px 24px; gap: 24px; justify-content: flex-start; }
    .footer-bottom__inner { flex-direction: column; align-items: flex-start; padding: 20px 24px; }
	.footer-bottom__inner a:first-of-type { margin-left:0; }
}

/* =============================================================================
   Home hero
   ============================================================================= */

.home-hero {
    min-height:800px;
    padding-top:156px;
    top:-156px;
    margin-bottom:-156px;
}
.home-hero .wp-block-group {
    max-width:64%;
    background-color:rgba(0, 64, 121, 0.8);
    margin:auto;
    clip-path: polygon(80px 0,100% 0,100% calc(100% - 40px),calc(100% - 80px) 100%,0 100%,0 40px);
}
.home-hero .wp-block-group .wp-block-group__inner-container {
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-start;
}
.home-hero .wp-block-group h1 {
    font-size:48px;
}
@media (max-width: 768px) {
    .home-hero {
        padding:1rem;
        padding-top:108px;
        top:-108px;
        margin-bottom:-108px;
    }
    .home-hero .wp-block-group {max-width:100%}
}

/* =============================================================================
   WooCommerce
   ============================================================================= */

/* GP's alignwide rule ignores WC pages — reset it to prevent bleed */
.woocommerce-page .entry-content .alignwide,
.woocommerce-page .entry-content .alignfull,
.no-sidebar.woocommerce-page .entry-content .alignfull {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

.woocommerce h2,
.woocommerce-page h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--brand-blue-dark);
    letter-spacing: 0.02em;
    margin-bottom: 1.6rem;
}
.woocommerce h3,
.woocommerce-page h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--brand-blue-dark);
    letter-spacing: 0.02em;
    margin-bottom: 1rem;
}

.woocommerce-cart .entry-header .entry-title,
.woocommerce-checkout .entry-header .entry-title,
.woocommerce-account .entry-header .entry-title,
.woocommerce-order-received .entry-header .entry-title,
.search-results .entry-header .entry-title,
h1.entry-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    font-size: 2.8rem;
    color: var(--brand-blue-dark);
    border-bottom: 3px solid var(--brand-gold);
    padding-bottom: 0.2rem;
    margin-bottom: 2rem;
    display: inline-block;
}

.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce input[type="search"],
.woocommerce textarea,
.woocommerce select {
    font-family: 'Barlow', sans-serif;
    font-size: 0.95rem;
    color: var(--gray-900);
    background: #ffffff;
    border: 1px solid var(--gray-200);
    border-radius: 4px;
    padding: 10px 14px;
    width: 100%;
    transition: border-color 0.2s ease;
}
.woocommerce input[type="text"]:focus,
.woocommerce input[type="email"]:focus,
.woocommerce input[type="tel"]:focus,
.woocommerce input[type="number"]:focus,
.woocommerce input[type="password"]:focus,
.woocommerce textarea:focus,
.woocommerce select:focus { outline: none; border-color: var(--brand-blue-mid); }

.woocommerce label {
    font-family: 'Barlow', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--gray-600);
    display: block;
    margin-bottom: 5px;
}
.woocommerce .required { color: var(--brand-blue-mid); }

/* Breadcrumb — sits in the gray gap between header and white content box.
   Rendered via generate_before_main_content hook (before .inside-article).
   margin-bottom matches site-main padding-top (both 1rem) so the space
   above and below the breadcrumb strip is equal. */
.woocommerce-breadcrumb {
    font-size: 0.82rem;
    color: var(--gray-500);
    margin: 0 0 1rem;
    padding: 0 40px;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.2rem;
    line-height: 1.5;
}
.woocommerce-breadcrumb a {
    color: var(--gray-600);
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid var(--gray-200);
    padding-bottom: 1px;
    transition: color 0.2s, border-color 0.2s;
}
.woocommerce-breadcrumb a:hover {
    color: var(--brand-blue-dark);
    border-color: var(--brand-blue-dark);
}

@media (max-width: 768px) {
    .woocommerce .woocommerce-breadcrumb {
        font-size: 0.8rem;
        margin-bottom: 1rem;
    }
}
@media (max-width: 1199px) {
    .woocommerce .woocommerce-breadcrumb {padding-left:1rem; padding-right:1rem;}
}

.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner,
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-warning,
.wc-block-components-notice-banner.is-error {
    border-top: 3px solid var(--brand-blue-dark) !important;
    border-right: none !important;
    border-bottom: none !important;
    border-left: none !important;
    border-radius: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background-color: var(--gray-50) !important;
}
.woocommerce-error { border-top-color: #c0392b !important; }

/* ── Buttons — WooCommerce + Contact Form 7 ── */

.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce input.button,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.wpcf7-submit {
    font-family: 'Barlow', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background-color: var(--brand-blue-dark) !important;
    color: #ffffff !important;
    border: none;
    border-radius: 4px;
    padding: 10px 22px;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.woocommerce a.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover,
.wpcf7-submit:hover {
    background-color: var(--brand-blue-dark) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22), inset 0 0 0 999px rgba(0, 0, 0, 0.09);
}

.woocommerce .price,
.woocommerce .woocommerce-Price-amount {
    color: var(--brand-blue-dark);
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
}

.woocommerce span.onsale {
    background-color: var(--brand-gold);
    color: var(--gray-900);
    font-family: 'Barlow', sans-serif;
    font-weight: 700;
    font-size: 0.8rem;
    border-radius: 0;
    min-height: unset;
    min-width: unset;
    padding: 4px 10px;
    line-height: 1.4;
}

/* ── Shop ── */

.post-type-archive-product .woocommerce-products-header { padding: 0 0 2rem; }
.woocommerce-products-header__title {
    font-size:2.8rem;
    color: var(--brand-blue-dark);
    border-bottom:3px solid var(--brand-gold);
    padding-bottom:0.6rem;
    margin-bottom:1.2rem;
    display:inline-block;

}

.shop-filter-bar {
    margin-bottom: 1.5rem;
    padding: 1.25rem 1.5rem;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 4px;
}
.shop-filter-bar__title {
    margin: 0 0 0.75rem;
    font-family: 'Barlow', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--brand-blue-dark);
}
.shop-filter-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--gray-200);
}
.shop-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    background: var(--brand-blue-dark);
    color: #ffffff;
    font-family: 'Barlow', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 4px;
    text-decoration: none;
    transition: background-color 0.15s ease;
}
.shop-filter-chip:hover { background: var(--brand-blue-mid); color: #ffffff; }

.shop-filter-clear {
    font-family: 'Barlow', sans-serif;
    font-size: 0.8rem;
    color: var(--gray-500);
    text-decoration: underline;
    margin-left: 4px;
}
.shop-filter-clear:hover { color: var(--gray-600); }

.shop-filter-groups { display: flex; flex-direction: column; gap: 0.75rem; }
.shop-filter-group { display: flex; align-items: flex-start; gap: 12px; }

/* Dimension filters (Width, Length, Duty) share a single row */
.shop-filter-dims {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.shop-filter-group + .shop-filter-dims {
    padding-top: 0.75rem;
}
.shop-filter-dims .shop-filter-group {
    flex: 0 0 auto;
    max-width: 100%;
}
.shop-filter-group__label {
    flex-shrink: 0;
    padding-top: 5px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gray-500);
}
.shop-filter-group__items { display: flex; flex-wrap: wrap; gap: 6px; }
.shop-filter-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #ffffff;
    border: 1px solid var(--gray-200);
    border-radius: 4px;
    font-family: 'Barlow', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gray-600);
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}
.shop-filter-pill:hover { border-color: var(--brand-blue-dark); color: var(--brand-blue-dark); }
.shop-filter-pill.is-active {
    background: var(--brand-blue-dark);
    border-color: var(--brand-blue-dark);
    color: #ffffff;
    font-weight: 600;
}

.woocommerce .woocommerce-result-count { font-size: 0.9rem; color: var(--gray-500); }
.woocommerce .woocommerce-ordering select {
    font-family: 'Barlow', sans-serif;
    font-size: 0.9rem;
    border: 1px solid var(--gray-200);
    border-radius: 4px;
    padding: 6px 28px 6px 10px;
    color: var(--gray-600);
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%238896a5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

/* Product grid — override WC's float-based layout */
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.woocommerce ul.products li.product {
    background: #ffffff;
    border: 1px solid var(--gray-200);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    margin: 0 !important;
    float: none !important;
    width: auto !important;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.woocommerce ul.products li.product:hover {
    box-shadow: 0 6px 24px rgba(0, 64, 121, 0.12);
    transform: translateY(-3px);
}
.woocommerce ul.products li.product a img {
    width: 100%;
    height: auto;
    object-fit: contain;
    background: var(--gray-50);
    padding: 1rem;
    display: block;
    transition: opacity 0.2s ease;
}
.woocommerce ul.products li.product:hover a img { opacity: 0.88; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--gray-900);
    padding: 1rem 1rem 0.25rem;
    margin: 0;
    line-height: 1.3;
}
.woocommerce ul.products li.product .price { padding: 0.25rem 1rem 0.75rem; font-size: 1.25rem; display: block; }
.woocommerce ul.products li.product .button { margin: auto 1rem 1rem; display: block; text-align: center; }

.woocommerce nav.woocommerce-pagination { margin-top: 3rem; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { border: none; display: inline-flex; gap: 0.5rem; }
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-family: 'Barlow', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--gray-600);
    border: 1px solid var(--gray-200);
    border-radius: 4px;
    padding: 8px 14px;
    display: block;
    min-width: unset;
    transition: all 0.2s ease;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--brand-blue-dark);
    border-color: var(--brand-blue-dark);
    color: #ffffff;
}

/* ── Single product ── */

.single-product div.product {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 3rem;
    align-items: start;
}
.single-product div.product div.images {
    width: 100% !important;
    float: none !important;
    grid-column: 1;
    grid-row: 1;
}
.single-product div.product .woocommerce-product-gallery { width: 100% !important; overflow: hidden; }
.woocommerce-product-gallery__trigger { overflow: hidden; }
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img:not(.zoomImg),
.single-product .woocommerce-product-gallery img:not(.zoomImg) { width: 100% !important; height: auto; display: block; }

/* Zoom image — let the plugin control sizing so aspect ratio is preserved */
.woocommerce-product-gallery__image .zoomImg {
    width: auto !important;
    height: auto !important;
    max-width: none !important;
}
.single-product div.product .summary {
    grid-column: 2;
    grid-row: 1;
    width: 100% !important;
    float: none !important;
}
.single-product .product_title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 2.25rem;
    color: var(--brand-blue-dark);
    margin: 0 0 0.75rem;
    line-height: 1.15;
    padding-bottom:0.6rem !important;
}
.single-product p.price { font-size: 2rem; margin: 0 0 1.25rem; display: block; }
.single-product p.price del { color: var(--gray-500); font-size: 1.25rem; }
.single-product .woocommerce-product-details__short-description {
    font-size: 1rem;
    color: var(--gray-600);
    line-height: 1.65;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--gray-200);
}
.single-product form.cart { display: flex; align-items: center; gap: 0; margin-bottom: 1.5rem; }
.single-product form.cart .quantity {
    display: flex;
    align-items: center;
    border: 1px solid var(--gray-200);
    border-radius: 3px;
    overflow: hidden;
    margin-right:1rem !important;
}
.single-product form.cart .quantity input[type="number"] {
    width: 44px;
    height: 40px;
    font-family: 'Barlow', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    border: none;
    border-left: 1px solid var(--gray-200);
    border-right: 1px solid var(--gray-200);
    border-radius: 0;
    color: var(--gray-900);
    -moz-appearance: textfield;
    
}
.single-product form.cart .quantity input[type="number"]::-webkit-inner-spin-button,
.single-product form.cart .quantity input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.quantity__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 40px;
    background: var(--gray-50, #f8f9fa);
    border: none;
    cursor: pointer;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1;
    color: var(--gray-600, #555);
    transition: background 0.15s ease, color 0.15s ease;
    flex-shrink: 0;
}
.quantity__btn:hover,
.quantity__btn:focus {
    background: var(--gray-200, #e9ecef);
    color: var(--gray-900);
}
.single-product .single_add_to_cart_button { font-size: 1rem !important; padding: 12px 32px !important; letter-spacing: 0.06em; flex: 1; margin-left: 1rem; }
.single-product .product_meta {
    font-size: 0.875rem;
    color: var(--gray-600);
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--gray-200);
}
.single-product .product_meta span { display: block; margin-bottom: 4px; }
.single-product .product_meta .sku {font-weight:500; display:inline-block;}
.single-product .product_meta a { color: var(--brand-blue-mid); text-decoration: none; }
.single-product .product_meta a:hover { color: var(--brand-blue-dark); }

.single-product .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 3rem;
    border-top: 2px solid var(--gray-200);
}
.single-product .woocommerce-tabs ul.tabs {
    padding: 0; margin: 0; list-style: none; display: flex; background: none;
}
.single-product .woocommerce-tabs ul.tabs::before { display: none; }
.single-product .woocommerce-tabs ul.tabs li { border: none; border-radius: 0; background: none; margin: 0; }
.single-product .woocommerce-tabs ul.tabs li a {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--gray-500);
    padding: 1rem 1.5rem;
    display: block;
    border-bottom: 3px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}
.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--brand-blue-dark);
    border-bottom-color: var(--brand-blue-dark);
    background: none;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    border: none;
    border-top: 1px solid var(--gray-200);
    padding: 2rem 0;
}

.single-product .related.products { grid-column: 1 / -1; margin-top: 1rem; }
.single-product .related.products > h2,
.cross-sells > h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.5rem;
    color: var(--gray-900);
    margin-bottom: 1.5rem;
    padding-bottom: 0.625rem;
    border-bottom: 2px solid var(--brand-gold);
    display: inline-block;
}

/* ── Cart ── */

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-order-received .woocommerce { padding: 1rem 0; }

.woocommerce-cart table.shop_table,
.woocommerce-account .woocommerce-orders-table {
    border: 1px solid var(--gray-200);
    border-radius: 0;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    width: 100%;
    font-family: 'Barlow', sans-serif;
}
.woocommerce-account .woocommerce-orders-table { font-size: 0.9rem; }

.woocommerce-cart table.shop_table th,
.woocommerce-account .woocommerce-orders-table th {
    background: var(--brand-blue-dark);
    color: #ffffff;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 12px 16px;
    border: none;
    text-align: left;
}
.woocommerce-account .woocommerce-orders-table th { font-size: 0.8rem; padding: 10px 14px; }
.woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number {
    color: var(--gray-900);
    background-color:#fff !important;
    border-top:1px solid var(--gray-200) !important;
}

.woocommerce-cart table.shop_table td,
.woocommerce-account .woocommerce-orders-table td {
    padding: 16px;
    border-top: 1px solid var(--gray-200);
    border-bottom: none;
    vertical-align: middle;
    color: var(--gray-900);
}
.woocommerce-account .woocommerce-orders-table td { padding: 12px 14px; }
.woocommerce-cart table.shop_table tr:first-child td { border-top: none; }
.woocommerce-cart table.shop_table tr:hover td,
.woocommerce-account .woocommerce-orders-table tr:hover td { background: var(--gray-50); }

.woocommerce-cart table.cart td.product-thumbnail img {
    width: 72px; height: 72px; object-fit: cover; border-radius: 0; border: 1px solid var(--gray-200);
}
.woocommerce-cart table.cart td.product-name a { font-weight: 600; color: var(--brand-blue-dark); text-decoration: none; }
.woocommerce-cart table.cart td.product-name a:hover { color: var(--brand-blue-mid); }
.woocommerce-cart table.cart td.product-quantity input.qty {
    width: 64px; text-align: center;
    border: 1px solid var(--gray-200);
    border-radius: 4px; padding: 6px;
    font-family: 'Barlow', sans-serif; font-size: 0.95rem;
}
.woocommerce-cart table.cart td.product-remove a.remove {
    color: var(--gray-400) !important; font-size: 1.25rem; line-height: 1; transition: color 0.2s ease;
}
.woocommerce-cart table.cart td.product-remove a.remove:hover { color: #c0392b !important; background: none; }
.woocommerce-cart table.shop_table tfoot tr th,
.woocommerce-cart table.shop_table tfoot tr td { background: var(--gray-50); font-weight: 600; color: var(--gray-900); }

.woocommerce-cart .actions { display: flex; align-items: center; gap: 12px; padding: 1rem 0; flex-wrap: wrap; }
.woocommerce-cart .actions .coupon { display: flex; gap: 8px; flex: 1; min-width: 240px; }
.woocommerce-cart .actions .coupon input#coupon_code {
    flex: 1; padding: 10px 14px;
    border: 1px solid var(--gray-200);
    border-radius: 4px; font-family: 'Barlow', sans-serif; font-size: 0.9rem; max-width: 200px;
}

.woocommerce-cart .cart_totals {
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 0;
    padding: 1.75rem;
    margin-top: 2rem;
}
.woocommerce-cart .cart_totals h2 { margin-top: 0; }
.woocommerce-cart .cart_totals table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
    padding: 10px 0;
    border-bottom: 1px solid var(--gray-200);
    font-family: 'Barlow', sans-serif; font-size: 0.95rem; vertical-align: top;
}
.woocommerce-cart .cart_totals table .order-total th,
.woocommerce-cart .cart_totals table .order-total td {
    font-size: 1.15rem; font-weight: 700; color: var(--brand-blue-dark);
    border-bottom: none; padding-top: 1rem;
}
.woocommerce-cart .wc-proceed-to-checkout { margin-top: 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    display: block; width: 100%; text-align: center;
    font-size: 1rem !important; padding: 14px 24px !important; letter-spacing: 0.06em;
}
.woocommerce-cart .cart-empty { text-align: center; padding: 3rem 1rem; font-size: 1rem; color: var(--gray-600); }
.woocommerce-cart .woocommerce-info { font-family: 'Barlow', sans-serif; }

/* ── Cart & Checkout — WooCommerce Blocks ─────────────────────────────────── */

/* Cart item thumbnail — make <a> block so WC's width:100% resolves to the td width */
.wc-block-cart-item__image { min-width: 96px; width: 96px; }
.wc-block-cart-item__image a { display: block; }
.wc-block-cart-item__image img { width: 96px !important; max-width: none !important; height: auto !important; }

/* "Cart totals" sidebar heading — brand blue, match column header scale */
.wc-block-cart__totals-title {
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    color: var(--brand-blue-dark) !important;
}

/* Cart item product name */
.wc-block-components-product-name { font-size: 1rem !important; }

/* Cart item price row */
.wc-block-cart-item__prices { font-size: 1rem !important; }
.wc-block-components-product-price__value { font-size: 1rem !important; }

/* Remove link — slightly bigger than WC default 13px */
.wc-block-cart-item__remove-link { font-size: 0.875rem !important; }

/* Coupon — always expanded, hide the collapse toggle */
.wc-block-components-totals-coupon .wc-block-components-panel__button { display: none !important; }
.wc-block-components-totals-coupon .wc-block-components-panel__content { display: block !important; }

/* Checkout sidebar order summary thumbnail */
.wc-block-components-order-summary-item__image { min-width: 64px; width: 64px; }
.wc-block-components-order-summary-item__image img { width: 64px !important; max-width: none !important; height: auto !important; }

/* Checkout sidebar per-item price */
.wc-block-components-order-summary-item__individual-prices { font-size: 0.9375rem !important; }

/* Checkout form inputs — lighten border to match order summary block */
.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-blocks-components-select__select {
    border-color: var(--gray-200) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus,
.wc-blocks-components-select__select:focus {
    border-color: var(--brand-blue-mid) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(0, 82, 159, 0.15) !important;
}

/* Proceed to Checkout (cart) + Apply coupon + Place Order (checkout) — brand blue, white text */
.wc-block-components-button.contained {
    background-color: var(--brand-blue-dark) !important;
    border-color: var(--brand-blue-dark) !important;
    color: #fff !important;
    border-radius: 4px !important;
}
.wc-block-components-button.contained:hover,
.wc-block-components-button.contained:focus {
    background-color: var(--brand-blue-mid) !important;
    border-color: var(--brand-blue-mid) !important;
    color: #fff !important;
}

/* Place Order — match Proceed to Checkout size */
.wc-block-components-checkout-place-order-button {
    width: 100% !important;
    font-size: 1rem !important;
    padding: 14px 24px !important;
    letter-spacing: 0.06em !important;
    margin-top: 1rem !important;
}

/* ── Checkout ── */

.woocommerce-checkout #customer_details { float: left; width: 57%; margin-right: 3%; }
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review { float: right; width: 40%; }
.woocommerce-checkout form.woocommerce-checkout::after { content: ''; display: table; clear: both; }
.woocommerce-checkout h3#order_review_heading {
    font-family: 'Barlow Condensed', sans-serif; font-size: 1.35rem; color: var(--brand-blue-dark);
}
.woocommerce-checkout .form-row { margin-bottom: 1rem; }
.woocommerce-checkout .form-row label {
    font-family: 'Barlow', sans-serif; font-size: 0.875rem; font-weight: 600;
    color: var(--gray-600); margin-bottom: 5px; display: block;
}

.woocommerce-checkout #order_review table.shop_table {
    border: 1px solid var(--gray-200);
    border-radius: 0;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    width: 100%;
    font-family: 'Barlow', sans-serif;
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}
.woocommerce-checkout #order_review table.shop_table th {
    background: var(--brand-blue-dark); color: #ffffff;
    font-family: 'Barlow Condensed', sans-serif; font-size: 0.8rem; font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase; padding: 10px 14px; border: none;
}
.woocommerce-checkout #order_review table.shop_table td {
    padding: 12px 14px; border-top: 1px solid var(--gray-200); vertical-align: middle;
}
.woocommerce-checkout #order_review table.shop_table tfoot tr:last-child th,
.woocommerce-checkout #order_review table.shop_table tfoot tr:last-child td {
    font-size: 1.05rem; font-weight: 700; color: var(--brand-blue-dark);
}
.woocommerce-checkout #payment {
    background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 0; padding: 1.5rem;
}
.woocommerce-checkout #payment ul.payment_methods {
    border-bottom: 1px solid var(--gray-200); margin-bottom: 1.25rem; padding: 0; list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li {
    padding: 0.75rem 0; border-top: 1px solid var(--gray-200);
    font-family: 'Barlow', sans-serif; font-size: 0.95rem;
}
.woocommerce-checkout #payment ul.payment_methods li:first-child { border-top: none; }
.woocommerce-checkout #payment div.payment_box {
    background: #ffffff; border: 1px solid var(--gray-200); border-radius: 0;
    padding: 1rem; font-size: 0.875rem; color: var(--gray-600);
}
.woocommerce-checkout #place_order {
    width: 100%; font-size: 1rem !important; padding: 14px 24px !important;
    letter-spacing: 0.06em; margin-top: 1rem;
}

/* ── My Account ── */

.woocommerce-account .woocommerce { display: flex; gap: 3rem; align-items: flex-start; padding: 1rem 0; }

/* Login / register pages — centered single column */
body.woocommerce-account:not(.logged-in) .woocommerce {
    flex-direction: column;
    align-items: center;
    gap: 0;
}
body.woocommerce-account:not(.logged-in) .woocommerce > h2 {
    width: 100%;
    max-width: 480px;
    margin-bottom: 0.5rem;
}
body.woocommerce-account:not(.logged-in) .woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce-form-register {
    width: 100%;
    max-width: 480px;
}
.woocommerce-account .woocommerce-MyAccount-navigation { flex-shrink: 0; width: 200px; }
.woocommerce-account .woocommerce::after, .woocommerce-account .woocommerce::before {display:none}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none; margin: 0; padding: 0;
    border: 1px solid var(--gray-200); border-radius: 0; overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block; padding: 12px 16px;
    font-family: 'Barlow', sans-serif; font-size: 0.9rem; font-weight: 500;
    color: var(--gray-600); text-decoration: none;
    border-bottom: 1px solid var(--gray-200);
    transition: background-color 0.15s ease, color 0.15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child a { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background: var(--gray-50); color: var(--brand-blue-dark);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--active a {
    background: var(--brand-blue-dark); color: #ffffff; font-weight: 600;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: var(--gray-500); font-size: 0.85rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    background: var(--gray-50); color: #c0392b;
}
.woocommerce-account .woocommerce-MyAccount-content { flex: 1; min-width: 0; }
/* Addresses grid — override WC's float-based col-1/col-2 layout */
.woocommerce-account .u-columns {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    width: 100%;
}
.woocommerce-account .u-columns .col-1,
.woocommerce-account .u-columns .col-2 {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}
.woocommerce-account .u-columns .col-1 { grid-column: 1; grid-row: 1; }
.woocommerce-account .u-columns .col-2 { grid-column: 2; grid-row: 1; }
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
    background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 0; padding: 2rem;
}
.woocommerce-account .woocommerce-form__label-for-checkbox {
    display: flex; align-items: center; gap: 8px; font-weight: 400; color: var(--gray-600);
}
.woocommerce-account .lost_password { margin-top: 0.75rem; }
.woocommerce-account .lost_password a { font-size: 0.875rem; color: var(--brand-blue-mid); text-decoration: none; }
.woocommerce-account .lost_password a:hover { color: var(--brand-blue-dark); text-decoration: underline; }

.woocommerce-account .woocommerce-orders-table mark.order-status {
    background: none; padding: 3px 8px; border-radius: 0;
    font-size: 0.78rem; font-weight: 600; font-family: 'Barlow', sans-serif;
}
.woocommerce-account .woocommerce-orders-table mark.order-status.status-completed { background: #d1fae5; color: #065f46; }
.woocommerce-account .woocommerce-orders-table mark.order-status.status-processing { background: #dbeafe; color: #1e40af; }
.woocommerce-account .woocommerce-orders-table mark.order-status.status-on-hold { background: #fef3c7; color: #92400e; }
.woocommerce-account .woocommerce-orders-table mark.order-status.status-cancelled,
.woocommerce-account .woocommerce-orders-table mark.order-status.status-failed { background: #fee2e2; color: #991b1b; }

.woocommerce-account .woocommerce-Address {
    background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 0;
    padding: 1.5rem; width: 100%; box-sizing: border-box;
}
.woocommerce-account .woocommerce-Address-title {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--gray-200);
    width: 100%;
}
.woocommerce-account .woocommerce-Address-title h2 {
    font-size: 0.95rem; font-weight: 700; font-family: 'Barlow', sans-serif;
    color: var(--gray-900); margin: 0; line-height: 1.3;
    text-transform: uppercase; letter-spacing: 0.05em;
}
.woocommerce-account .woocommerce-Address-title a {
    font-size: 0.8rem; color: var(--brand-blue-mid); text-decoration: none;
    white-space: nowrap; flex-shrink: 0;
}
.woocommerce-account .woocommerce-Address-title a:hover { color: var(--brand-blue-dark); text-decoration: underline; }
.woocommerce-account address { font-style: normal; font-size: 0.9rem; color: var(--gray-600); line-height: 1.7; }

/* Account + address edit form inputs — match checkout light border */
.woocommerce-account .woocommerce-Input,
.woocommerce-account .input-text,
.woocommerce-account select {
    border-color: var(--gray-200) !important;
    border-radius: 4px;
    font-family: 'Barlow', sans-serif;
    font-size: 0.95rem;
    padding: 10px 14px;
}
.woocommerce-account .woocommerce-Input:focus,
.woocommerce-account .input-text:focus,
.woocommerce-account select:focus {
    border-color: var(--brand-blue-mid) !important;
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 82, 159, 0.15);
}

/* Account form labels */
.woocommerce-account .woocommerce-form-row label,
.woocommerce-account .woocommerce-address-fields label {
    font-family: 'Barlow', sans-serif; font-size: 0.875rem;
    font-weight: 600; color: var(--gray-700);
}

/* Password change section header */
.woocommerce-account fieldset legend,
.woocommerce-account .woocommerce-EditAccountForm .fieldset-heading {
    font-family: 'Barlow', sans-serif; font-size: 0.875rem;
    font-weight: 700; color: var(--gray-500);
    text-transform: uppercase; letter-spacing: 0.06em;
    border-bottom: 1px solid var(--gray-200); padding-bottom: 0.5rem;
    margin-bottom: 1rem; display: block;
}

.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { margin: 1rem 0; }

/* ── Order received ── */

.woocommerce-order-received .woocommerce-thankyou-section {
    background: var(--gray-50); border: 1px solid var(--gray-200);
    border-radius: 0; padding: 2rem; margin-bottom: 2rem; text-align: center;
}
.woocommerce-order-received .woocommerce-notice--success { font-family: 'Barlow', sans-serif; font-size: 1.2rem; }
.woocommerce-order-received .woocommerce-order-overview {
    display: flex; flex-wrap: wrap; gap: 0; list-style: none; padding: 0; margin: 0 0 2rem;
    border: 1px solid var(--gray-200); border-radius: 0; overflow: hidden;
}
.woocommerce-order-received .woocommerce-order-overview li {
    flex: 1; min-width: 140px; padding: 1.25rem 1rem;
    border-right: 1px solid var(--gray-200);
    font-family: 'Barlow', sans-serif; font-size: 0.85rem;
    color: var(--gray-500); text-transform: uppercase; letter-spacing: 0.04em;
}
.woocommerce-order-received .woocommerce-order-overview li:last-child { border-right: none; }
.woocommerce-order-received .woocommerce-order-overview li strong {
    display: block; font-size: 1rem; color: var(--gray-900);
    text-transform: none; letter-spacing: 0; margin-top: 4px;
}
.woocommerce ul.order_details {margin-bottom:1.4rem;}
.woocommerce ul.order_details li {margin:0; padding:1rem;}
.woocommerce ul.order_details li strong {line-height:1;}

/* ── WooCommerce responsive ── */

@media (max-width: 960px) {
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
    .single-product div.product { grid-template-columns: minmax(0, 1fr); gap:1rem;}
    .single-product div.product .summary { grid-column: 1; grid-row: 2; }
    .single-product .woocommerce-tabs,
    .single-product .related.products { grid-column: 1; }
}
@media (max-width: 768px) {
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review { float: none; width: 100%; margin-right: 0; }
    .woocommerce-account .woocommerce { flex-direction: column; gap: 1.5rem; }
    .woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; 
        border-left:none;
    }
    
    .woocommerce-account .woocommerce-MyAccount-navigation ul li {
        flex: 1; min-width: 120px; border-bottom: none; border-left: 1px solid var(--gray-200);
    }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { border-right: none; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
        text-align: center; font-size: 0.8rem; padding: 10px 8px;
    }
    .woocommerce-account .u-columns { grid-template-columns: 1fr; }
    .woocommerce-cart table.shop_table .product-subtotal { display: none; }
    .woocommerce-order-received .woocommerce-order-overview li { min-width: 50%; }
    .woocommerce-products-header__title {font-size:2.4rem; line-height:1;}
}
@media (max-width: 600px) {
    .woocommerce ul.products { grid-template-columns: 1fr; }
    .single-product .product_title { font-size: 1.75rem; }
    .single-product form.cart { flex-wrap: wrap; }
    .single-product .single_add_to_cart_button { width: 100%; }
    .shop-filter-bar { padding: 1rem; }
    .shop-filter-dims { flex-direction: column; gap: 0.625rem; }
    .shop-filter-group { flex-direction: column; gap: 6px; }
    .shop-filter-group__label { padding-top: 0; }
}

/* =============================================================================
   Search Results
   ============================================================================= */

.search-results .site-main { padding: 2rem 0; }

.search-result-card {
    display: flex; align-items: flex-start; gap: 1.25rem;
    background: #ffffff; border: 1px solid var(--gray-200);
    border-radius: 0; padding: 1.25rem 1.5rem; margin-bottom: 1rem;
    transition: box-shadow 0.2s ease;
}
.search-result-card:hover { box-shadow: 0 4px 16px rgba(0, 64, 121, 0.1); }
.search-result-card__thumb-link { flex-shrink: 0; display: block; width: 80px; height: 80px; }
.search-result-card__thumb { width: 80px; height: 80px; object-fit: cover; border-radius: 0; display: block; }
.search-result-card__thumb--placeholder { background: var(--gray-50); border-radius: 0; }
.search-result-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.search-result-card__category {
    font-family: 'Barlow', sans-serif; font-size: 0.75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.06em; color: var(--brand-gold);
}
.search-result-card__title {
    font-family: 'Barlow Condensed', sans-serif; font-size: 1.25rem; font-weight: 700;
    color: var(--brand-blue-dark); margin: 0; line-height: 1.2;
}
.search-result-card__title a { color: inherit; text-decoration: none; }
.search-result-card__title a:hover { color: var(--brand-blue-mid); }
.search-result-card__link {
    font-family: 'Barlow', sans-serif; font-size: 0.85rem; font-weight: 600;
    color: var(--brand-blue-mid); text-decoration: none; margin-top: 0.25rem;
}
.search-result-card__link:hover { color: var(--brand-blue-dark); text-decoration: underline; }

.search-no-results .page-content { font-size: 1rem; color: var(--gray-600); }
.search-no-results .search-form { margin-top: 1.5rem; display: flex; gap: 8px; max-width: 480px; }
.search-no-results .search-field {
    flex: 1; padding: 10px 14px;
    border: 1px solid var(--gray-200);
    border-radius: 4px; font-family: 'Barlow', sans-serif; font-size: 0.95rem;
}
.search-no-results .search-submit {
    padding: 10px 20px; background: var(--brand-blue-dark); color: #ffffff;
    border: none; border-radius: 4px; font-family: 'Barlow', sans-serif; font-weight: 600; cursor: pointer;
}

/* =============================================================================
   Block Editor — Buttons
   ============================================================================= */

/* Typography + shape apply always — colors are fallbacks only.
   :not(.has-background) / :not(.has-text-color) let editor-chosen colors win. */
.wp-block-button__link {
    font-family: 'Barlow', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
    border: 2px solid transparent;
    border-radius: 4px;
    padding: 10px 24px;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Fill — brand navy default, only when no editor color is set */
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background) {
    background-color: var(--brand-blue-dark);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-text-color) {
    color: #ffffff;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background):hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link.has-background:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22), inset 0 0 0 999px rgba(0, 0, 0, 0.09);
}

/* Outline — white bg, navy border + text default, only when no editor color is set */
.wp-block-button.is-style-outline .wp-block-button__link {
    border: 2px solid currentColor;
    border-radius: 4px;
}
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-background) {
    background-color: transparent;
}
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) {
    color: var(--brand-blue-dark);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22), inset 0 0 0 999px rgba(0, 0, 0, 0.09);
}

/* =============================================================================
   Shop Hero — Category Card Grid + Ramp Wizard Strip
   ============================================================================= */

.shop-hero {
    margin-bottom: 2rem;
}

/* ── Category card grid ── */

.shop-cat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    padding: 0 0 1rem;
}

.shop-cat-card {
    position: relative;
    display: block;
    border-radius: 4px;
    overflow: hidden;
    min-height: 320px;
    background-color: var(--brand-blue-dark);
    background-size: cover;
    background-position: center;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.shop-cat-card:hover {
    box-shadow: 0 10px 36px rgba(0, 64, 121, 0.28);
    transform: translateY(-4px);
    text-decoration: none;
    color: inherit;
}

/* Permanent bottom-to-top gradient — keeps category name legible at rest */
.shop-cat-card__grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 18, 42, 0.94) 0%, rgba(0, 18, 42, 0.22) 52%, transparent 100%);
    transition: opacity 0.3s ease;
    z-index: 1;
}

.shop-cat-card:hover .shop-cat-card__grad {
    opacity: 0;
}

/* Solid navy tint that fades in on hover, replacing the gradient */
.shop-cat-card__tint {
    position: absolute;
    inset: 0;
    background: rgba(0, 42, 98, 0.80);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

.shop-cat-card:hover .shop-cat-card__tint {
    opacity: 1;
}

/* Body fills the card; flexbox pushes footer to the bottom */
.shop-cat-card__body {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.shop-cat-card__footer {
    padding: 1.5rem;
}

/* Higher specificity beats theme/WooCommerce h3 overrides */
.shop-cat-card .shop-cat-card__name {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #fff !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
    /* Clamp to 3 lines max */
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Reveal container — max-height: 0 means desc/cta take NO space at rest */
.shop-cat-card__reveal {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.shop-cat-card:hover .shop-cat-card__reveal {
    max-height: 12rem;
}

/* Description */
.shop-cat-card__desc {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.88);
    margin: 0.625rem 0 1rem;
    line-height: 1.5;
    opacity: 0;
    transition: opacity 0.25s ease 0.15s;
}

.shop-cat-card:hover .shop-cat-card__desc {
    opacity: 1;
}

/* CTA pill */
.shop-cat-card__cta {
    display: inline-block;
    padding: 0.5rem 1.125rem;
    background: #fff;
    color: var(--brand-blue-dark);
    font-family: 'Barlow', sans-serif;
    font-weight: 700;
    font-size: 0.8125rem;
    letter-spacing: 0.02em;
    border-radius: 4px;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.25s ease 0.2s;
}

.shop-cat-card:hover .shop-cat-card__cta {
    opacity: 1;
}

/* ── Ramp Wizard strip ── */

.shop-wizard-strip {
    display: flex;
    margin: 2rem 0;
    border-radius: 4px;
    overflow: hidden;
    min-height: 130px;
}

/* Left image panel — update the background-image URL to suit */
.shop-wizard-strip__img {
    width: 220px;
    flex-shrink: 0;
    background-image: url('/wp-content/uploads/2025/05/standard-aluminum2.webp');
    background-size: cover;
    background-position: center;
    background-color: var(--gray-600);
}

.shop-wizard-strip__inner {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem 2rem;
    background: var(--gray-600);
}

.shop-wizard-strip__icon {
    width: 3rem;
    height: 3rem;
    flex-shrink: 0;
    color: var(--brand-blue-light);
}

.shop-wizard-strip__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.shop-wizard-strip__text strong {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.8rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
}

.shop-wizard-strip__text span {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.5;
}

.shop-wizard-strip__btn {
    display: inline-block;
    padding: 0.75rem 1.625rem;
    background: var(--brand-gold);
    color: #fff;
    font-family: 'Barlow', sans-serif;
    font-weight: 700;
    font-size: 0.9375rem;
    border-radius: 4px;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.shop-wizard-strip__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22), inset 0 0 0 999px rgba(0, 0, 0, 0.09);
    text-decoration: none;
}

/* ── Responsive ── */

@media (max-width: 1199px) {
    .shop-cat-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 767px) {
    .shop-cat-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.625rem;
    }

    .shop-cat-card {
        min-height: 220px;
    }

    .shop-cat-card .shop-cat-card__name {
        font-size: 1.375rem !important;
    }

    /* On touch devices, keep reveal hidden — tap goes straight to category */
    .shop-cat-card__reveal {
        display: none;
    }

    .shop-wizard-strip__img {
        display: none;
    }

    .shop-wizard-strip__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        padding: 1.25rem 1.5rem;
    }

    .shop-wizard-strip__icon {
        display: none;
    }

    .shop-wizard-strip__btn {
        width: 100%;
        text-align: center;
    }
}

/* =============================================================================
   FAQ Dropdowns — wp-block-details
   ============================================================================= */

.wp-block-details {
    border: 1px solid var(--gray-200);
    border-radius: 0;
    overflow: hidden;
    margin: 0 0 1rem;
    background: #fff;
    transition: box-shadow 0.2s ease;
}

.wp-block-details:hover {
    box-shadow: 0 2px 10px rgba(0, 64, 121, 0.08);
}

.wp-block-details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem 1.5rem;
    font-family: 'Barlow', sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--gray-900);
    cursor: pointer;
    list-style: none;
    gap: 1rem;
    user-select: none;
    transition: background 0.15s ease, color 0.15s ease;
}

/* Remove native triangle in all browsers */
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::marker { display: none; }

/* Custom chevron via pseudo-element */
.wp-block-details summary::after {
    content: '';
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background-color: var(--brand-blue-mid);
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5l5 5 5-5' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5l5 5 5-5' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    border-radius: 50%;
    background-color: var(--brand-blue-mid);
    padding: 2px;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.15s ease;
}

.wp-block-details[open] > summary {
    color: var(--brand-blue-mid);
    background: var(--gray-50);
    border-bottom: 1px solid var(--gray-200);
}

.wp-block-details[open] > summary::after {
    transform: rotate(180deg);
    background-color: var(--brand-blue-dark);
}

.wp-block-details > *:not(summary) {
    padding: 1rem 1.5rem;
    color: var(--gray-600);
    font-size: 0.975rem;
    line-height: 1.7;
    margin-block-start:0;
}

.wp-block-details > *:not(summary) p:last-child {
    margin-bottom: 0;
}

/* ── Category archive header ─────────────────────────────────────────────── */

/* Gallery: absolute top-right of the products header */
body.tax-product_cat .woocommerce-products-header {
    position: relative;
}

body.tax-product_cat .woocommerce-products-header:has(.shedramps-cat-gallery__thumbs) {
    padding-right: calc(438px + 2.5rem);
}

body.tax-product_cat .woocommerce-products-header:has(.shedramps-cat-gallery):not(:has(.shedramps-cat-gallery__thumbs)) {
    padding-right: calc(220px + 2rem);
}

.shedramps-cat-gallery {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    gap: 6px;
    align-items: stretch;
}

.shedramps-cat-header {
    margin-bottom: 0.25rem;
}

/* Gallery image buttons */
.shedramps-cat-gallery__btn {
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    display: block;
    overflow: hidden;
    transition: opacity 0.15s;
}

.shedramps-cat-gallery__btn:hover { opacity: 0.85; }

.shedramps-cat-gallery__main img {
    width: 220px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    border:1px solid var(--gray-200);
}

.shedramps-cat-gallery__thumbs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 6px;
}

.shedramps-cat-gallery__thumb {
    overflow: hidden;
    display: flex;
}

.shedramps-cat-gallery__thumb img {
    width: 100px;
    height: 100%;
    object-fit: cover;
    display: block;
    border:1px solid var(--gray-200);
}

/* Gallery lightbox */
.shedramps-gallery-lightbox {
    padding: 0;
    background: transparent;
    border: none;
    width: 100vw;
    height: 100vh;
    max-width: 100vw;
    max-height: 100vh;
}

.shedramps-gallery-lightbox::backdrop {
    background: rgba(0, 0, 0, 0.88);
}

.shedramps-gallery-lightbox__inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.shedramps-gallery-lightbox__frame {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.shedramps-gallery-lightbox__img {
    max-width: 100vw;
    max-height: 92vh;
    object-fit: contain;
    display: block;
}

.shedramps-gallery-lightbox__caption {
    margin: 0.6rem 0 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.875rem;
    text-align: center;
}

.shedramps-gallery-lightbox__close {
    position: absolute;
    top: 1rem;
    right: 1.25rem;
    background: none;
    border: none;
    color: #fff;
    font-size: 2.25rem;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}

.shedramps-gallery-lightbox__close:hover,
.shedramps-gallery-lightbox__close:focus {
    background: none !important;
    background-color: transparent !important;
    opacity: 0.75;
}

.shedramps-gallery-lightbox__prev,
.shedramps-gallery-lightbox__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #fff;
    font-size: 3rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.5rem 0.875rem;
    transition: opacity 0.15s;
}

.shedramps-gallery-lightbox__prev:hover,
.shedramps-gallery-lightbox__prev:focus,
.shedramps-gallery-lightbox__next:hover,
.shedramps-gallery-lightbox__next:focus {
    background: none !important;
    background-color: transparent !important;
    opacity: 0.75;
}

.shedramps-gallery-lightbox__prev { left: 0.5rem; }
.shedramps-gallery-lightbox__next { right: 0.5rem; }

/* Admin gallery picker */
.shedramps-gallery-admin {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.shedramps-gallery-slot {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
}

.shedramps-gallery-slot__thumb img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border: 1px solid #ddd;
    display: block;
}

/* Responsive — stack gallery below header text on small screens */
@media (max-width: 700px) {
    body.product-category .woocommerce-products-header {
        grid-template-columns: 1fr;
    }

    body.tax-product_cat .woocommerce-products-header,
    body.tax-product_cat .woocommerce-products-header:has(.shedramps-cat-gallery__thumbs),
    body.tax-product_cat .woocommerce-products-header:has(.shedramps-cat-gallery):not(:has(.shedramps-cat-gallery__thumbs)) {
        position: static;
        padding-right: 0;
    }

    .shedramps-cat-gallery {
        position: static;
        margin-top: 0.4rem;
        margin-bottom:1rem;
        flex-wrap: wrap;
    }

    .shedramps-cat-gallery__main img { width: 100%; }
    .shedramps-cat-gallery__thumbs   { flex: 1; }
    .shedramps-cat-gallery__thumb img { width: 100%; height: auto; }
}

@media (max-width: 530px) {
    .shedramps-cat-gallery {
        flex-direction: column;
    }

    .shedramps-cat-gallery__thumbs {
        width: 100%;
        grid-template-rows: auto;
    }

    .shedramps-cat-gallery__thumb img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
    }
}

.shedramps-cat-header__desc {
    margin: 0 0 1rem;
    font-size: 1.1rem;
    line-height: 1.65;
    color: var(--gray-700);
}

/* ── How to Choose trigger link ──────────────────────────────────────────── */

.shedramps-cat-howto-trigger-wrap {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    /* margin-top: 0.75rem; */
    margin-bottom: 1.6rem;
    /* padding-top: 0.75rem; */
    /* border-top: 1px solid var(--gray-200); */
}

.shedramps-cat-howto-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1rem;
    color: var(--gray-500);
    text-decoration: none;
    transition: color 0.15s ease;
    letter-spacing:0.2px;
}
.shedramps-cat-howto-trigger span {
    text-decoration: underline;
    text-underline-offset: 2px;
    /* text-decoration-color: transparent; */
    transition: text-decoration-color 0.15s ease;
}
.shedramps-cat-howto-trigger:hover,
.shedramps-cat-howto-trigger:focus {
    background: none;
    color: var(--brand-blue-mid);
}
.shedramps-cat-howto-trigger:hover span,
.shedramps-cat-howto-trigger:focus span {
    text-decoration-color: currentColor;
}

/* ── How to Choose modal ─────────────────────────────────────────────────── */

.shedramps-howto-modal {
    border: none;
    border-radius: 0;
    padding: 0;
    max-width: 580px;
    width: calc(100% - 2rem);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.2);
}

.shedramps-howto-modal::backdrop {
    background: rgba(0, 0, 0, 0.45);
}

.shedramps-howto-modal__inner {
    padding: 2rem;
    position: relative;
}

.shedramps-howto-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    color: var(--gray-400);
    transition: color 0.15s ease;
}

.shedramps-howto-modal__close:hover,
.shedramps-howto-modal__close:focus { background: none; color: var(--gray-700); }

.shedramps-howto-modal__title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--brand-blue-dark);
    margin: 0 0 1.25rem;
    padding-right: 2rem;
}

.shedramps-howto-modal__body {
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--gray-700);
}

.shedramps-howto-modal__body p:last-child,
.shedramps-howto-modal__body ul:last-child,
.shedramps-howto-modal__body ol:last-child { margin-bottom: 0; }

.shedramps-howto-modal__body ul,
.shedramps-howto-modal__body ol { padding-left: 1.25rem; }

.shedramps-howto-modal__body strong { color: var(--gray-900); }

/* =============================================================================
   Single Product — Specs block
   ============================================================================= */

.shedramps-product-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 1.25rem 0 1.25rem;
}

.shedramps-product-specs__item {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    background: #fff;
    border: 1px solid var(--gray-200, #e9ecef);
    border-radius: 0;
    padding: 0.4rem 0.6rem;
}

.shedramps-product-specs__label {
    font-family: 'Barlow', sans-serif;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gray-500, #6c757d);
    line-height: 1;
}

.shedramps-product-specs__value {
    font-family: 'Barlow', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gray-900, #111);
    line-height: 1.2;
}

/* =============================================================================
   Single Product — Recommended Accessories
   ============================================================================= */

.shedramps-accessories {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--gray-200);
}

.shedramps-accessories__label {
    font-family: 'Barlow', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--gray-500);
    margin: 0 0 0.6rem;
}

.shedramps-accessories__list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.shedramps-acc-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-decoration: none;
    color: inherit;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--gray-200);
    border-radius: 4px;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.shedramps-acc-item:hover {
    border-color: var(--brand-blue-mid);
    box-shadow: 0 2px 8px rgba(0,0,0,0.07);
    background: #fff;
}

.shedramps-acc-item__img {
    flex-shrink: 0;
    width: 66px;
    height: 66px;
    border-radius: 0;
    overflow: hidden;
    background: var(--gray-50);
}

.shedramps-acc-item__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.shedramps-acc-item__body {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.shedramps-acc-item__name {
    font-family: 'Barlow', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gray-800);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shedramps-acc-item__price {
    font-family: 'Barlow', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-blue-dark);
}

/* =============================================================================
   Utility — Mobile column reverse
   ============================================================================= */

@media (max-width: 768px) {
    .mobile-reverse {
        flex-direction: column-reverse !important;
    }
}

/* =============================================================================
   Custom List Styles — im-checklist & im-numbered
   Apply as Additional CSS Class on WP List blocks.
   ============================================================================= */

/* ── im-checklist — bulleted list with FA circle-check icons ── */

.im-checklist {
    list-style: none;
    padding-left: 0;
    margin: 1rem 0;
}

.im-checklist li {
    position: relative;
    padding-left: 1.8rem;
    margin-bottom: 0.65rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--gray-800);
}

.im-checklist li::before {
    content: '\f058'; /* fa-circle-check */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 0.2em;
    font-size: 1.15em;
    color: var(--brand-blue-mid);
    line-height: 1;
}

.im-checklist li strong,
.im-checklist li b {
    font-size: 1.1em; color:var(--brand-blue-mid);
}

/* ── im-numbered — ordered list with numbers in blue circles ── */

.im-numbered {
    list-style: none;
    padding-left: 0;
    margin: 1rem 0;
    counter-reset: im-counter;
}

.im-numbered li {
    position: relative;
    padding-left: 1.8rem;
    margin-bottom: 0.65rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--gray-800);
    counter-increment: im-counter;
}

.im-numbered li::before {
    content: counter(im-counter);
    position: absolute;
    left: 0;
    top: 0.36em;
    width: 1.4em;
    height: 1.4em;
    background: var(--brand-blue-mid);
    color: #fff;
    font-size: 0.8em;
    font-weight: 700;
    font-family: 'Barlow', sans-serif;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.im-numbered li strong,
.im-numbered li b {
    font-size: 1.1em; color:var(--brand-blue-mid);

}

/* ── Custom-length product UI ────────────────────────────────────────────── */

/* Allow custom-length block to break onto its own row */
.woocommerce form.cart {
    flex-wrap: wrap;
    align-items: center;
}

.shedramps-custom-length {
    margin: 0 0 1rem;
    flex: 0 0 100%; /* own row */
}
.shedramps-price-from {
    color:var(--gray-500);
    font-weight:600;
}
.shedramps-price-from .woocommerce-Price-amount.amount {font-weight:700;}
.shedramps-custom-length__label {
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.shedramps-custom-length__selects {
    display: flex;
    gap: 0.9rem;
    align-items: center;
}

.shedramps-custom-length__selects select {
    width: auto !important; /* override WC's select { width:100% } */
    flex: 0 0 auto;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--gray-300, #ccc);
    border-radius: 4px;
    font-size: 1rem;
    background: #fff;
    cursor: pointer;
}

#custom_inches  { min-width: 110px; }
#custom_fraction { min-width: 90px; }

/* Warning state when a standard exact size is selected */
.shedramps-custom-price-display.shedramps-custom-price-display--warn {
    color: var(--gray-700);
    font-weight: 500;
    font-size: 0.85rem;
    line-height: 1.3;
}

.shedramps-custom-footnote {
    font-size: 0.875rem;
    color: var(--gray-600);
    margin-top: 0.4rem;
}

.shedramps-custom-length__selects select:focus {
    outline: 2px solid var(--brand-blue-mid);
    outline-offset: 1px;
}

.shedramps-custom-price-display {
    margin:0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--brand-blue-dark);
    min-height: 1.5em;
}

.shedramps-price-info-wrap {
    display: none;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.shedramps-price-info-wrap:has(.shedramps-custom-price-display:not(:empty)) {
    display: flex;
}

.shedramps-info-icon {
    color: var(--brand-gold);
    font-size: 1rem;
    margin-top: 0.2em;
    flex-shrink: 0;
}


@media ( max-width: 600px ) {
    .shedramps-custom-length__selects {
        flex-direction: column;
        align-items: stretch;
    }
    .shedramps-custom-length__selects select,
    #custom_inches,
    #custom_fraction {
        width: 100% !important;
        min-width: 0;
    }
}

/* ── Attachment Point alert ──────────────────────────────────────────────── */

.shedramps-attachment-alert {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    background: rgba(189,179,21,0.04);
    border: 1px solid var(--brand-gold);
    border-left: 4px solid var(--brand-gold);
    border-radius: 6px;
    padding: 1rem;
    margin: 1rem 0 1.25rem;
}

.shedramps-attachment-alert__icon {
    flex-shrink: 0;
    color: var(--brand-gold);
    font-size: 1.2rem;
    line-height: 1.4;
}

.shedramps-attachment-alert__body {
    flex: 1;
}

.shedramps-attachment-alert__heading {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--gray-700);
    margin: 0 0 0.3rem;
}

.shedramps-attachment-alert__text {
    font-size: 0.875rem;
    color: var(--gray-700, #374151);
    margin: 0 0 0.75rem;
    line-height: 1.45;
}

.shedramps-attachment-alert__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.shedramps-attachment-alert__btn {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.35rem 0.85rem;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.shedramps-attachment-alert__btn--primary {
    background: var(--brand-gold);
    color: #fff;
}

.shedramps-attachment-alert__btn--primary:hover {
    background: #a09d0f;
    color: #fff;
}

.shedramps-attachment-alert__btn--secondary {
    background: #fff;
    color: var(--brand-gold);
    border: 1px solid var(--brand-gold);
}

.shedramps-attachment-alert__btn--secondary:hover {
    background: #fffef5;
    color: #8a7e00;
}

/* Hide AvaTax exemption certificate block on checkout */
.wp-block-woocommerce-checkout-order-summary-ecm-links-block {
    display: none !important;
}

/* Order received — shipping notice */
.shedramps-thankyou-shipping {
    display: flex;
    align-items: flex-start;
    gap: 0.6em;
    background: var(--gray-100, #f0f0f0);
    border-radius: 6px;
    padding: 0.85em 1.1em;
    margin: 1.25em 0;
    font-size: 0.95em;
    color: var(--gray-700, #444);
}

.shedramps-thankyou-shipping::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f48b"; /* fa-truck-fast */
    font-size: 1.1em;
    color: var(--brand-blue-mid);
    flex-shrink: 0;
    margin-top: 0.1em;
}

/* Cart — applied coupon chip */
.wc-block-components-totals-discount .wc-block-components-chip {
    background: var(--brand-blue-dark);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.4em 0.75em;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
}

.wc-block-components-totals-discount .wc-block-components-chip__remove {
    color: rgba(255,255,255,0.75);
}

.wc-block-components-totals-discount .wc-block-components-chip__remove:hover {
    color: #fff;
}

/* ── Pay for Order page ─────────────────────────────────────────────────────── */

.woocommerce-order-pay .woocommerce {
    max-width: 620px;
    margin: 0 auto;
    padding: 0 1rem;
}

.woocommerce-order-pay .woocommerce-order-pay-section--items {
    margin-bottom: 2rem;
}

/* Order meta row */
.woocommerce-order-pay .woocommerce-order-overview,
.woocommerce-order-pay ul.woocommerce-order-overview {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
}
.woocommerce-order-pay ul.woocommerce-order-overview li {
    flex: 1 1 auto;
    padding: 1rem 1.25rem;
    border-right: 1px solid var(--gray-200);
    font-family: 'Barlow', sans-serif;
    font-size: 0.8rem;
    color: var(--gray-500);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.woocommerce-order-pay ul.woocommerce-order-overview li:last-child {
    border-right: none;
}
.woocommerce-order-pay ul.woocommerce-order-overview li strong {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: var(--gray-900);
    text-transform: none;
    letter-spacing: 0;
    margin-top: 0.25rem;
}

/* Payment box — remove WC's default float, center everything */
.woocommerce-order-pay #order_review {
    float: none !important;
    width: 100% !important;
}

.woocommerce-order-pay #payment {
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    padding: 1.75rem;
}

.woocommerce-order-pay #payment ul.payment_methods {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    border-bottom: 1px solid var(--gray-200);
    padding-bottom: 1.25rem;
}

.woocommerce-order-pay #payment ul.payment_methods li {
    font-family: 'Barlow', sans-serif;
    font-size: 0.95rem;
    color: var(--gray-700);
    padding: 0;
}

/* Remove the tooltip arrow WC adds above the card form */
.woocommerce-order-pay #payment div.payment_box::before {
    display: none !important;
}

.woocommerce-order-pay #payment div.payment_box {
    background: #fff;
    border: 1px solid var(--gray-200);
    padding: 1.5rem;
    margin-top: 1rem;
}

/* Elavon card fields — full width card number, side-by-side expiry/csc */
.woocommerce-order-pay #payment div.payment_box .sv-wc-payment-gateway-payment-form .form-row {
    margin-bottom: 1.25rem;
}
.woocommerce-order-pay #payment div.payment_box label {
    display: block;
    font-family: 'Barlow', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gray-700);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.4rem;
}
.woocommerce-order-pay #payment div.payment_box input[type="text"],
.woocommerce-order-pay #payment div.payment_box input[type="tel"],
.woocommerce-order-pay #payment div.payment_box input[type="number"] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 14px;
    border: 1px solid var(--gray-300);
    border-radius: 0;
    font-family: 'Barlow', sans-serif;
    font-size: 1rem;
    color: var(--gray-900);
    background: #fff;
    transition: border-color 0.15s ease;
}
.woocommerce-order-pay #payment div.payment_box input:focus {
    outline: none;
    border-color: var(--brand-blue-mid);
    box-shadow: 0 0 0 3px rgba(3, 107, 173, 0.12);
}

/* Place Order button */
.woocommerce-order-pay #payment #place_order {
    width: 100%;
    padding: 14px 24px !important;
    font-size: 1rem !important;
    letter-spacing: 0.06em;
    margin-top: 0.5rem;
}

/* Mobile */
@media (max-width: 600px) {
    .woocommerce-order-pay ul.woocommerce-order-overview {
        flex-direction: column;
    }
    .woocommerce-order-pay ul.woocommerce-order-overview li {
        border-right: none;
        border-bottom: 1px solid var(--gray-200);
        padding: 0.75rem 1rem;
    }
    .woocommerce-order-pay ul.woocommerce-order-overview li:last-child {
        border-bottom: none;
    }
    .woocommerce-order-pay #payment {
        padding: 1.25rem;
    }
    .woocommerce-order-pay #payment div.payment_box {
        padding: 1.25rem;
    }
}
}
