.capbp-wrap {
    max-width: 980px;
    margin: 0 auto;
}

.capbp-card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
    padding: 24px;
    margin: 0 0 22px;
}

.capbp-card h2,
.capbp-card h3 {
    margin-top: 0;
}

.capbp-muted {
    color: #666;
}

.capbp-grid {
    display: grid;
    gap: 16px;
}

.capbp-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.capbp-form label {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
}

.capbp-form input[type="text"],
.capbp-form input[type="email"],
.capbp-form input[type="password"],
.capbp-form select,
.capbp-form textarea {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 10px;
    padding: 10px 12px;
    font: inherit;
    box-sizing: border-box;
}

.capbp-form textarea {
    min-height: 110px;
}

.capbp-button {
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: 12px 20px;
    background: #111;
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}

.capbp-button:hover,
.capbp-button:focus {
    opacity: 0.88;
    color: #fff;
}

.capbp-actions {
    margin-bottom: 0;
}

.capbp-notice {
    border-radius: 12px;
    padding: 14px 16px;
    margin: 0 0 18px;
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.capbp-success {
    background: #edf8ef;
    border-color: #b7e0be;
}

.capbp-error,
.capbp-warning {
    background: #fff4f4;
    border-color: #f2c2c2;
}

.capbp-area-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.capbp-logout {
    white-space: nowrap;
    font-weight: 700;
}

.capbp-status {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 0.9em;
    font-weight: 700;
    background: #eee;
}

.capbp-status-pending {
    background: #fff4d6;
}

.capbp-status-approved {
    background: #e7f8e9;
}

.capbp-status-rejected {
    background: #ffe3e3;
}

.capbp-status-deleted {
    background: #e5e7eb;
}

.capbp-profile-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 26px;
    margin: 0;
}

.capbp-profile-list div {
    margin: 0;
}

.capbp-profile-list dt {
    font-weight: 700;
    color: #555;
}

.capbp-profile-list dd {
    margin: 2px 0 0;
}

.capbp-table-wrap {
    overflow-x: auto;
    margin-top: 18px;
}

.capbp-table {
    width: 100%;
    border-collapse: collapse;
}

.capbp-table th,
.capbp-table td {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    padding: 10px;
    text-align: left;
}

.capbp-table th {
    font-weight: 700;
}

.capbp-hp {
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
}

@media (max-width: 720px) {
    .capbp-grid-two,
    .capbp-profile-list {
        grid-template-columns: 1fr;
    }

    .capbp-card {
        padding: 18px;
        border-radius: 14px;
    }

    .capbp-area-header {
        display: block;
    }
}

.capbp-small {
    font-size: 0.94em;
}

.capbp-link-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin-top: 16px;
}

.capbp-link-row-muted a {
    font-weight: 700;
}

.capbp-button-secondary {
    background: #f2f2f2;
    color: #111;
}

.capbp-button-secondary:hover,
.capbp-button-secondary:focus {
    color: #111;
}

.capbp-login-wrap #loginform,
.capbp-area-wrap #loginform {
    margin-top: 18px;
}

.capbp-login-wrap #loginform p,
.capbp-area-wrap #loginform p {
    margin-bottom: 14px;
}

.capbp-login-wrap #loginform label,
.capbp-area-wrap #loginform label {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
}

.capbp-login-wrap #loginform input[type="text"],
.capbp-login-wrap #loginform input[type="password"],
.capbp-area-wrap #loginform input[type="text"],
.capbp-area-wrap #loginform input[type="password"] {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 10px;
    padding: 10px 12px;
    font: inherit;
    box-sizing: border-box;
}

.capbp-login-wrap #wp-submit,
.capbp-area-wrap #wp-submit {
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: 12px 20px;
    background: #111;
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}

.capbp-catalog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.capbp-catalog-head h2 {
    margin: 0 0 6px;
}

.capbp-product-grid {
    display: grid;
    gap: 26px;
}

.capbp-product-grid-1 { grid-template-columns: 1fr; }
.capbp-product-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.capbp-product-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.capbp-product-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.capbp-product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 24px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.10), 0 2px 8px rgba(37, 99, 235, 0.06);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.capbp-product-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, #7dd3fc 0%, #3b82f6 60%, #0f766e 100%);
    opacity: .9;
    pointer-events: none;
}

.capbp-product-card:hover,
.capbp-product-card:focus-within {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.34);
    box-shadow: 0 24px 58px rgba(15, 23, 42, 0.14), 0 8px 18px rgba(37, 99, 235, 0.10);
}

.capbp-product-image-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.capbp-product-image {
    aspect-ratio: 4 / 5;
    background: radial-gradient(circle at 50% 35%, #ffffff 0%, #eef7ff 62%, #dff0ff 100%);
    overflow: hidden;
    padding: 22px 18px 16px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid rgba(37, 99, 235, 0.10);
}

.capbp-product-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 16px 18px rgba(15, 23, 42, 0.16));
}

.capbp-product-image-large {
    aspect-ratio: 3 / 4;
    min-height: 460px;
    border-radius: 16px;
    background: #fff;
    padding: 24px;
    box-sizing: border-box;
}

.capbp-product-image-large img {
    object-fit: contain;
}

.capbp-product-image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #777;
    font-weight: 700;
    min-height: 220px;
    background: #f3f4f6;
}

.capbp-product-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
    padding: 22px;
}

.capbp-product-body h3 {
    margin: 0;
    font-size: 1.18rem;
    line-height: 1.26;
    color: #0f172a;
}

.capbp-product-body h3 a {
    color: inherit;
    text-decoration: none;
}

.capbp-product-body h3 a:hover,
.capbp-product-body h3 a:focus {
    text-decoration: underline;
}

.capbp-product-type {
    align-self: flex-start;
    margin: 0;
    color: #1d4ed8;
    background: #dbeafe;
    border: 1px solid rgba(59, 130, 246, 0.18);
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.capbp-product-summary {
    color: #475569;
    margin: 0;
    line-height: 1.55;
}

.capbp-stock {
    align-self: flex-start;
    margin: 0;
    font-size: 0.9rem;
    font-weight: 800;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f1f5f9;
}

.capbp-stock-available { color: #166534; }
.capbp-stock-limited { color: #92400e; }
.capbp-stock-out { color: #991b1b; }

.capbp-price {
    margin-top: auto;
    padding-top: 8px;
}

.capbp-price strong {
    display: block;
    font-size: 1.35rem;
    line-height: 1.2;
}

.capbp-price > span,
.capbp-price-note {
    color: #666;
    font-size: 0.9rem;
}

.capbp-price-hidden {
    background: #eff6ff;
    border: 1px solid rgba(59, 130, 246, 0.16);
    border-radius: 16px;
    padding: 14px;
    color: #1e3a8a;
}

.capbp-card-button {
    align-self: flex-start;
    margin-top: 8px;
    text-decoration: none;
    background: linear-gradient(135deg, #2563eb, #0284c7);
    box-shadow: 0 10px 22px rgba(37, 99, 235, 0.22);
}

.capbp-card-button:hover,
.capbp-card-button:focus {
    transform: translateY(-1px);
    opacity: 1;
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.28);
}

.capbp-back-link {
    font-weight: 700;
}

.capbp-product-detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.capbp-product-detail-content h2 {
    margin: 0 0 12px;
}

.capbp-product-description p:first-child {
    margin-top: 0;
}

.capbp-product-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
    margin: 20px 0;
}

.capbp-product-meta div,
.capbp-product-meta dt,
.capbp-product-meta dd {
    margin: 0;
}

.capbp-product-meta dt {
    color: #666;
    font-weight: 700;
    font-size: 0.9rem;
}

.capbp-product-meta dd {
    margin-top: 2px;
}

.capbp-product-price-block {
    margin-top: 20px;
}

@media (max-width: 980px) {
    .capbp-product-grid-3,
    .capbp-product-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .capbp-product-detail {
        grid-template-columns: 1fr;
    }

    .capbp-product-image-large {
        min-height: auto;
    }
}

@media (max-width: 640px) {
    .capbp-product-grid,
    .capbp-product-grid-2,
    .capbp-product-grid-3,
    .capbp-product-grid-4 {
        grid-template-columns: 1fr;
    }

    .capbp-product-meta {
        grid-template-columns: 1fr;
    }

    .capbp-catalog-head {
        display: block;
    }
}


@media (max-width: 640px) {
    .capbp-product-card {
        border-radius: 20px;
    }

    .capbp-product-body {
        padding: 18px;
    }
}

.capbp-order-controls {
    display: grid;
    gap: 10px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.capbp-order-controls label {
    display: grid;
    gap: 6px;
    font-weight: 700;
}

.capbp-order-controls input[type="number"] {
    width: 100%;
    min-height: 42px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 10px;
    padding: 8px 10px;
    font: inherit;
    box-sizing: border-box;
}

.capbp-order-form {
    margin-top: 18px;
}

.capbp-cart-table input[type="number"] {
    width: 86px;
    min-height: 38px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 8px;
    padding: 6px 8px;
}

.capbp-cart-money {
    white-space: nowrap;
}

.capbp-link-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: #111;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
    font: inherit;
    font-weight: 700;
}

@media (max-width: 640px) {
    .capbp-cart-table thead {
        display: none;
    }

    .capbp-cart-table,
    .capbp-cart-table tbody,
    .capbp-cart-table tr,
    .capbp-cart-table td,
    .capbp-cart-table tfoot,
    .capbp-cart-table th {
        display: block;
        width: 100%;
    }

    .capbp-cart-table tr {
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        padding: 10px 0;
    }

    .capbp-cart-table td {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        padding: 8px 0;
    }

    .capbp-cart-table td::before {
        content: attr(data-label);
        font-weight: 700;
    }

    .capbp-cart-table tfoot tr {
        display: grid;
        grid-template-columns: 1fr;
    }
}


.capbp-order-link {
    display: inline-flex;
    margin-left: 10px;
    font-weight: 700;
    text-decoration: none;
}

.capbp-added-message {
    margin: 10px 0 0;
    font-size: 0.92rem;
    font-weight: 600;
}

.capbp-added-message a,
.capbp-notice-link {
    font-weight: 800;
    text-decoration: underline;
}

@media (max-width: 640px) {
    .capbp-order-link {
        display: inline-block;
        margin-left: 0;
        margin-top: 8px;
        width: 100%;
    }
}

/* v0.4.2 order UX refinements */

/* Keep hidden cart/toast UI truly hidden. Author-level display:flex/grid rules can override the browser's default [hidden] stylesheet. */
.capbp-order-summary-panel[hidden],
.capbp-floating-cart[hidden],
.capbp-toast[hidden] {
    display: none !important;
}

.capbp-dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0 8px;
}

.capbp-order-summary-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #f8f8f8;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 14px 16px;
    margin: 0 0 18px;
}

.capbp-order-summary-panel strong,
.capbp-floating-cart strong {
    display: block;
    line-height: 1.2;
}

.capbp-order-summary-panel span,
.capbp-floating-cart span {
    display: block;
    margin-top: 2px;
    color: #666;
    font-size: 0.92rem;
}

.capbp-order-summary-compact {
    margin-top: 0;
}


@media (max-width: 640px) {
    .capbp-product-card {
        border-radius: 20px;
    }

    .capbp-product-body {
        padding: 18px;
    }
}

.capbp-order-controls {
    gap: 8px;
}

.capbp-order-note {
    margin: 0;
}

.capbp-order-row {
    display: grid;
    grid-template-columns: minmax(96px, 1fr) auto;
    gap: 10px;
    align-items: end;
}

.capbp-order-row label {
    margin: 0;
}

.capbp-order-row label span {
    display: block;
    margin-bottom: 5px;
}

.capbp-order-row .capbp-button {
    white-space: nowrap;
    min-height: 42px;
}

.capbp-button.is-added {
    opacity: 0.9;
}

.capbp-floating-cart {
    position: fixed;
    left: 50%;
    bottom: 18px;
    z-index: 9999;
    transform: translateX(-50%);
    width: min(760px, calc(100vw - 32px));
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.18);
    padding: 12px 14px;
    box-sizing: border-box;
}

.capbp-toast {
    position: fixed;
    left: 50%;
    bottom: 94px;
    z-index: 10000;
    transform: translateX(-50%);
    max-width: min(520px, calc(100vw - 32px));
    background: #111;
    color: #fff;
    border-radius: 999px;
    padding: 10px 16px;
    font-weight: 700;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.22);
    text-align: center;
}

@media (max-width: 640px) {
    .capbp-dashboard-actions,
    .capbp-order-summary-panel,
    .capbp-floating-cart {
        display: grid;
        grid-template-columns: 1fr;
    }

    .capbp-order-row {
        grid-template-columns: 1fr;
    }

    .capbp-order-summary-panel .capbp-button,
    .capbp-floating-cart .capbp-button {
        width: 100%;
        justify-content: center;
    }

    .capbp-floating-cart {
        bottom: 12px;
        width: calc(100vw - 24px);
    }

    .capbp-toast {
        bottom: 120px;
        border-radius: 14px;
    }
}


/* v0.4.25 baby-blue catalog card refresh */
.capbp-product-card {
    background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%);
    border-color: rgba(147, 197, 253, 0.55);
    box-shadow: 0 18px 44px rgba(30, 64, 175, 0.08), 0 3px 10px rgba(125, 211, 252, 0.16);
}

.capbp-product-card::before {
    background: linear-gradient(90deg, #dbeafe 0%, #bfdbfe 48%, #e0f2fe 100%);
    opacity: 1;
}

.capbp-product-card:hover,
.capbp-product-card:focus-within {
    border-color: rgba(125, 211, 252, 0.90);
    box-shadow: 0 24px 58px rgba(30, 64, 175, 0.11), 0 8px 20px rgba(125, 211, 252, 0.22);
}

.capbp-product-image {
    background: radial-gradient(circle at 50% 34%, #ffffff 0%, #f2f9ff 56%, #dbeafe 100%);
    border-bottom-color: rgba(147, 197, 253, 0.35);
}

.capbp-product-type {
    color: #075985;
    background: #e0f2fe;
    border-color: rgba(125, 211, 252, 0.70);
}

.capbp-price-hidden {
    background: #f0f9ff;
    border-color: rgba(125, 211, 252, 0.45);
    color: #075985;
}

.capbp-card-button {
    background: linear-gradient(135deg, #7dd3fc, #38bdf8);
    color: #083344;
    box-shadow: 0 10px 22px rgba(14, 165, 233, 0.22);
}

.capbp-card-button:hover,
.capbp-card-button:focus {
    box-shadow: 0 14px 28px rgba(14, 165, 233, 0.28);
}


/* v0.4.26 product detail hover zoom */
.capbp-product-detail-media .capbp-product-image-large {
    position: relative;
    overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
    .capbp-product-detail-media .capbp-product-image-large {
        cursor: zoom-in;
    }

    .capbp-product-detail-media .capbp-product-image-large img {
        transition: transform 220ms ease, filter 220ms ease;
        transform-origin: 50% 50%;
        will-change: transform;
    }

    .capbp-product-detail-media .capbp-product-image-large:hover img,
    .capbp-product-detail-media .capbp-product-image-large.is-zooming img {
        transform: scale(1.75);
        filter: drop-shadow(0 18px 22px rgba(15, 23, 42, 0.18));
    }
}

@media (hover: none), (pointer: coarse) {
    .capbp-product-detail-media .capbp-product-image-large img {
        transform: none !important;
    }
}

/* CAP Kopersportaal v0.5.0 customer dashboard */
.capbp-dashboard{display:grid;gap:22px}.capbp-dashboard-hero{background:linear-gradient(135deg,#f2fbff 0%,#ffffff 62%);border:1px solid rgba(125,211,252,.45);box-shadow:0 18px 46px rgba(15,76,117,.08)}.capbp-kicker{margin:0 0 6px;color:#0f6f95;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.capbp-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.capbp-dashboard-tile{padding:18px 20px}.capbp-dashboard-tile-label{display:block;margin-bottom:8px;color:#5b6b7a;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.capbp-dashboard-tile strong{display:block;font-size:24px;color:#11324d;line-height:1.1}.capbp-dashboard-section h3{margin-top:0}.capbp-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.capbp-section-head h3{margin:0 0 4px}.capbp-section-head p{margin:0}.capbp-dashboard-table th,.capbp-dashboard-table td{vertical-align:middle}.capbp-dashboard-table td:last-child,.capbp-dashboard-table th:last-child{text-align:right}.capbp-mini-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 12px;background:#e0f5ff;color:#0f4c75!important;text-decoration:none;font-weight:800;border:1px solid rgba(125,211,252,.7)}.capbp-mini-button:hover{background:#c9edfb}.capbp-dashboard-status{white-space:nowrap}.capbp-status-accepted,.capbp-status-paid{background:#dcfce7;color:#166534}.capbp-status-converted{background:#dbeafe;color:#1d4ed8}.capbp-status-unpaid,.capbp-status-pending{background:#fef3c7;color:#92400e}.capbp-status-rejected,.capbp-status-cancelled{background:#fee2e2;color:#991b1b}.capbp-num{font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:820px){.capbp-dashboard-grid{grid-template-columns:1fr}.capbp-section-head{display:block}.capbp-section-head .capbp-button{margin-top:12px}.capbp-dashboard-table{min-width:680px}}

.capbp-payment-status{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .6rem;font-size:.82rem;font-weight:700;background:#eef2ff;color:#1e3a8a;white-space:nowrap}
.capbp-payment-status-paid{background:#dcfce7;color:#166534}
.capbp-payment-status-unpaid{background:#fef3c7;color:#92400e}
.capbp-payment-status-refunded{background:#e0f2fe;color:#075985}
.capbp-payment-status-cancelled{background:#fee2e2;color:#991b1b}
