/* ============================================================
   Westchester Blogger — Shop / WooCommerce stylesheet
   ============================================================ */

.wb-shop-page {
    padding-top: var(--wb-nav-h);
    background: var(--wb-bg);
    color: var(--wb-text);
    min-height: 100vh;
}

.wb-shop-section-eyebrow {
    font-family: var(--wb-font-sans);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--wb-accent);
    margin-bottom: 8px;
}
.wb-shop-section-title {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.1;
    color: var(--wb-text);
    margin: 0;
}

/* ── Hero ────────────────────────────────────── */
.wb-shop-hero {
    min-height: 60vh;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    background-color: var(--wb-text);
    color: #F8F7F4;
}
.wb-shop-hero__inner {
    max-width: 720px;
    margin: 0 auto;
    padding: 80px 32px;
    text-align: center;
}
.wb-shop-hero__eyebrow {
    font-size: 12px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--wb-accent);
    margin-bottom: 16px;
}
.wb-shop-hero__title {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: clamp(44px, 7vw, 84px);
    line-height: 1;
    margin: 0 0 20px;
    letter-spacing: -1px;
}
.wb-shop-hero__sub {
    font-size: 17px;
    line-height: 1.65;
    color: #E5E0D8;
    margin-bottom: 32px;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
.wb-shop-hero__cta {
    display: inline-block;
    background: var(--wb-accent);
    color: #1A1A18;
    padding: 16px 36px;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    border-radius: 2px;
    transition: background .2s, transform .2s;
}
.wb-shop-hero__cta:hover { background: #D9B27E; transform: translateY(-1px); }

/* ── Designs strip ───────────────────────────── */
.wb-shop-designs { padding: 80px 0; background: var(--wb-card); border-bottom: 1px solid var(--wb-border); }
.wb-shop-designs__inner { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.wb-shop-designs__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 24px;
    margin-top: 40px;
}
.wb-shop-design-card {
    text-align: center;
    text-decoration: none;
    color: var(--wb-text);
    transition: transform .3s;
}
.wb-shop-design-card:hover { transform: translateY(-4px); }
.wb-shop-design-card__img {
    display: block;
    aspect-ratio: 1;
    background: var(--wb-muted);
    border-radius: 50%;
    margin-bottom: 14px;
    background-size: cover;
    background-position: center;
    box-shadow: var(--wb-shadow);
}
.wb-shop-design-card__name {
    display: block;
    font-family: var(--wb-font-serif);
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 2px;
}
.wb-shop-design-card__count {
    display: block;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--wb-text-muted);
}

/* ── Product grid ────────────────────────────── */
.wb-shop-grid { padding: 100px 0; }
.wb-shop-grid__inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; }
.wb-shop-grid__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 48px;
    flex-wrap: wrap;
    gap: 24px;
}
.wb-shop-grid__sort .woocommerce-ordering select,
.wb-shop-grid__sort select {
    padding: 10px 14px;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius-sm);
    background: var(--wb-card);
    font-family: var(--wb-font-sans);
    font-size: 13px;
    cursor: pointer;
}
ul.products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 40px 28px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.wb-pcard {
    background: var(--wb-card);
    border-radius: var(--wb-radius);
    overflow: hidden;
    transition: transform .3s, box-shadow .3s;
    position: relative;
    display: flex;
    flex-direction: column;
    box-shadow: var(--wb-shadow);
}
.wb-pcard:hover { transform: translateY(-4px); box-shadow: var(--wb-shadow-hover); }
.wb-pcard__link { display: block; text-decoration: none; color: inherit; }
.wb-pcard__img-wrap {
    position: relative;
    aspect-ratio: 1;
    background: var(--wb-muted);
    overflow: hidden;
}
.wb-pcard__img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .5s;
}
.wb-pcard:hover .wb-pcard__img { transform: scale(1.04); }
.wb-pcard__badge {
    position: absolute;
    top: 14px; left: 14px;
    background: var(--wb-accent);
    color: #1A1A18;
    padding: 4px 10px;
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 2px;
}
.wb-pcard__badge--sale { background: var(--wb-red); color: #fff; }
.wb-pcard__body { padding: 20px 20px 4px; }
.wb-pcard__cat {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--wb-accent);
    margin-bottom: 6px;
}
.wb-pcard__title {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: 22px;
    line-height: 1.25;
    margin: 0 0 8px;
}
.wb-pcard__price {
    font-family: var(--wb-font-sans);
    font-size: 16px;
    font-weight: 500;
    color: var(--wb-text);
    margin: 0;
}
.wb-pcard__price del { color: var(--wb-text-muted); font-weight: 400; margin-right: 8px; }
.wb-pcard__actions { padding: 0 20px 20px; }
.wb-pcard__btn,
.wb-pcard__actions .button {
    display: block;
    text-align: center;
    background: transparent;
    color: var(--wb-text);
    padding: 12px;
    border: 1px solid var(--wb-text);
    border-radius: 2px;
    text-decoration: none;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s, color .2s;
    width: 100%;
}
.wb-pcard__btn:hover,
.wb-pcard__actions .button:hover { background: var(--wb-text); color: var(--wb-bg); }
.wb-pcard__actions .added_to_cart {
    display: block;
    text-align: center;
    margin-top: 8px;
    font-size: 11px;
    color: var(--wb-accent);
    text-decoration: none;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.wb-shop-empty {
    text-align: center;
    padding: 80px 20px;
    font-size: 16px;
    color: var(--wb-text-muted);
}

/* ── Trust strip ─────────────────────────────── */
.wb-shop-trust {
    padding: 60px 0;
    background: var(--wb-text);
    color: #F8F7F4;
}
.wb-shop-trust__inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 40px;
    text-align: center;
}
.wb-shop-trust__icon {
    display: block;
    font-size: 22px;
    color: var(--wb-accent);
    margin-bottom: 12px;
}
.wb-shop-trust__title {
    font-family: var(--wb-font-serif);
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 6px;
}
.wb-shop-trust__text {
    font-size: 14px;
    color: #A8A29E;
    line-height: 1.5;
}

/* ── Single product ──────────────────────────── */
.wb-product-single__inner { max-width: 1200px; margin: 0 auto; padding: 60px 32px 100px; }
.wb-product-single__crumb {
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--wb-text-muted);
    margin-bottom: 32px;
}
.wb-product-single__crumb a { color: var(--wb-text-muted); text-decoration: none; }
.wb-product-single__crumb a:hover { color: var(--wb-accent); }
.wb-product-single__crumb span { margin: 0 8px; }
.wb-product-single__crumb-current { color: var(--wb-text); }
.wb-product-single__layout {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 60px;
    align-items: start;
}
@media (max-width: 860px) {
    .wb-product-single__layout { grid-template-columns: 1fr; gap: 32px; }
}
.wb-product-single__main-img {
    aspect-ratio: 1;
    background: var(--wb-muted);
    border-radius: var(--wb-radius);
    overflow: hidden;
    box-shadow: var(--wb-shadow);
}
.wb-product-single__main-img img { width: 100%; height: 100%; object-fit: cover; }
.wb-product-single__thumbs {
    display: flex;
    gap: 10px;
    margin-top: 14px;
    overflow-x: auto;
}
.wb-product-single__thumb {
    width: 72px; height: 72px;
    border: 1px solid var(--wb-border);
    background: var(--wb-card);
    padding: 0;
    cursor: pointer;
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
    transition: border-color .2s;
}
.wb-product-single__thumb.is-active { border-color: var(--wb-accent); }
.wb-product-single__thumb img { width: 100%; height: 100%; object-fit: cover; }

.wb-product-single__cat {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--wb-accent);
    margin-bottom: 10px;
}
.wb-product-single__title {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: clamp(32px, 4vw, 44px);
    line-height: 1.1;
    margin: 0 0 12px;
    letter-spacing: -.5px;
}
.wb-product-single__price {
    font-size: 22px;
    font-weight: 500;
    margin: 0 0 24px;
}
.wb-product-single__price del { color: var(--wb-text-muted); font-weight: 400; margin-right: 8px; }
.wb-product-single__short {
    font-size: 15px;
    line-height: 1.65;
    color: var(--wb-text-muted);
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--wb-border);
}
.wb-product-single__form { margin-bottom: 24px; }
.wb-product-single__form .variations {
    width: 100%;
    margin-bottom: 20px;
}
.wb-product-single__form .variations td {
    padding: 10px 0;
    vertical-align: middle;
}
.wb-product-single__form .variations td.label {
    padding-right: 16px;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--wb-text-muted);
    width: 90px;
}
.wb-product-single__form .variations select,
.wb-product-single__form .reset_variations {
    padding: 12px 14px;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius-sm);
    background: var(--wb-card);
    font-family: var(--wb-font-sans);
    font-size: 14px;
    width: 100%;
    cursor: pointer;
}
.wb-product-single__form .reset_variations {
    display: inline-block;
    width: auto;
    background: transparent;
    border: none;
    color: var(--wb-text-muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 8px 0;
    text-decoration: underline;
}
.wb-product-single__form .quantity {
    display: inline-flex;
    margin-right: 12px;
}
.wb-product-single__form .quantity input {
    width: 70px;
    padding: 14px 8px;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius-sm);
    text-align: center;
    font-size: 15px;
    font-family: var(--wb-font-sans);
    background: var(--wb-card);
}
.wb-product-single__form .single_add_to_cart_button,
.wb-product-single__form button.button {
    background: var(--wb-text);
    color: var(--wb-bg);
    border: none;
    padding: 16px 32px;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 2px;
    cursor: pointer;
    transition: background .2s;
}
.wb-product-single__form .single_add_to_cart_button:hover,
.wb-product-single__form button.button:hover { background: var(--wb-accent-dark); color: #fff; }
.wb-product-single__form .woocommerce-variation-price { margin-bottom: 16px; }
.wb-product-single__form .woocommerce-variation-price .price {
    font-size: 20px;
    font-weight: 500;
}
.wb-product-single__form .woocommerce-variation-availability { font-size: 13px; color: var(--wb-accent); margin-bottom: 12px; }

.wb-product-single__meta {
    list-style: none;
    padding: 20px 0 0;
    margin: 0;
    border-top: 1px solid var(--wb-border);
}
.wb-product-single__meta li {
    padding: 8px 0;
    font-size: 13px;
    color: var(--wb-text-muted);
    display: flex;
    gap: 10px;
    align-items: center;
}
.wb-product-single__meta li span { color: var(--wb-accent); }
.wb-product-single__details {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--wb-border);
}
.wb-product-single__details summary {
    cursor: pointer;
    font-family: var(--wb-font-serif);
    font-size: 18px;
    font-weight: 500;
    padding: 8px 0;
}
.wb-product-single__desc-body {
    padding: 16px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--wb-text-muted);
}
.wb-product-single__desc-body ul { padding-left: 20px; margin: 12px 0; }
.wb-product-single__desc-body li { margin-bottom: 6px; }

/* Related */
.related.products, .up-sells.products {
    margin-top: 80px;
    padding-top: 60px;
    border-top: 1px solid var(--wb-border);
}
.related.products > h2, .up-sells.products > h2 {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: 28px;
    margin-bottom: 32px;
    text-align: center;
}

/* ── Cart ────────────────────────────────────── */
.wb-cart__inner { max-width: 1200px; margin: 0 auto; padding: 60px 32px 100px; }
.wb-cart__header { margin-bottom: 48px; }
.wb-cart__title {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: clamp(32px, 5vw, 48px);
    margin: 0;
}
.wb-cart__empty {
    text-align: center;
    padding: 80px 20px;
    background: var(--wb-card);
    border-radius: var(--wb-radius);
    box-shadow: var(--wb-shadow);
}
.wb-cart__empty-title {
    font-family: var(--wb-font-serif);
    font-size: 26px;
    margin-bottom: 8px;
}
.wb-cart__empty-sub { font-size: 15px; color: var(--wb-text-muted); margin-bottom: 24px; }
.wb-btn-gold {
    display: inline-block;
    background: var(--wb-accent);
    color: #1A1A18;
    padding: 14px 32px;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    transition: background .2s;
}
.wb-btn-gold:hover { background: var(--wb-accent-dark); color: #fff; }

.wb-cart__layout {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 48px;
}
@media (max-width: 860px) { .wb-cart__layout { grid-template-columns: 1fr; } }
.wb-cart__items {
    background: var(--wb-card);
    border-radius: var(--wb-radius);
    padding: 12px 24px;
    box-shadow: var(--wb-shadow);
}
.wb-cart__item {
    display: grid;
    grid-template-columns: 100px 1fr auto auto;
    gap: 20px;
    align-items: center;
    padding: 24px 0;
    border-bottom: 1px solid var(--wb-border);
}
.wb-cart__item:last-of-type { border-bottom: none; }
.wb-cart__item-img-wrap { display: block; border-radius: 8px; overflow: hidden; background: var(--wb-muted); }
.wb-cart__item-img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.wb-cart__item-name {
    font-family: var(--wb-font-serif);
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 4px;
}
.wb-cart__item-name a { color: inherit; text-decoration: none; }
.wb-cart__item-info dl.variation { margin: 4px 0; font-size: 12px; color: var(--wb-text-muted); }
.wb-cart__item-info dl.variation dt { display: inline; font-weight: 500; }
.wb-cart__item-info dl.variation dd { display: inline; margin-right: 12px; }
.wb-cart__item-remove {
    display: inline-block;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--wb-red);
    text-decoration: none;
    margin-top: 6px;
}
.wb-cart__item-qty input {
    width: 68px;
    padding: 10px;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius-sm);
    text-align: center;
    background: var(--wb-bg);
    font-family: var(--wb-font-sans);
    font-size: 14px;
}
.wb-cart__item-price {
    font-size: 15px;
    font-weight: 500;
    text-align: right;
    min-width: 80px;
}
@media (max-width: 640px) {
    .wb-cart__item { grid-template-columns: 80px 1fr; grid-template-rows: auto auto; }
    .wb-cart__item-qty, .wb-cart__item-price { grid-column: 2; }
}

.wb-cart__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0 12px;
    flex-wrap: wrap;
    gap: 16px;
}
.wb-cart__continue { font-size: 13px; color: var(--wb-text-muted); text-decoration: none; }
.wb-cart__continue:hover { color: var(--wb-accent); }
.wb-cart__update {
    background: transparent;
    border: 1px solid var(--wb-border);
    padding: 10px 20px;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    font-family: var(--wb-font-sans);
    border-radius: 2px;
    transition: background .2s;
}
.wb-cart__update:hover { background: var(--wb-muted); }

.wb-cart__summary {
    background: var(--wb-card);
    border-radius: var(--wb-radius);
    padding: 32px;
    height: fit-content;
    position: sticky;
    top: 120px;
    box-shadow: var(--wb-shadow);
}
.wb-cart__summary-title {
    font-family: var(--wb-font-serif);
    font-size: 22px;
    font-weight: 500;
    margin: 0 0 24px;
}
.wb-cart__coupon-label { display: block; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--wb-text-muted); margin-bottom: 8px; }
.wb-cart__coupon-row { display: flex; gap: 8px; margin-bottom: 24px; }
.wb-cart__coupon-input {
    flex: 1;
    padding: 12px;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius-sm);
    background: var(--wb-bg);
    font-size: 13px;
    font-family: var(--wb-font-sans);
}
.wb-cart__coupon-btn {
    padding: 12px 18px;
    background: transparent;
    border: 1px solid var(--wb-text);
    color: var(--wb-text);
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    border-radius: 2px;
    font-family: var(--wb-font-sans);
    transition: background .2s, color .2s;
}
.wb-cart__coupon-btn:hover { background: var(--wb-text); color: var(--wb-bg); }
.wb-cart__totals { padding: 16px 0; border-top: 1px solid var(--wb-border); border-bottom: 1px solid var(--wb-border); }
.wb-cart__totals-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 14px;
    color: var(--wb-text-muted);
}
.wb-cart__totals-row--total {
    padding-top: 14px;
    margin-top: 8px;
    border-top: 1px solid var(--wb-border);
    font-size: 18px;
    font-weight: 600;
    color: var(--wb-text);
}
.wb-cart__checkout-btn {
    display: block;
    background: var(--wb-text);
    color: var(--wb-bg);
    text-align: center;
    padding: 18px;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    border-radius: 2px;
    margin-top: 24px;
    transition: background .2s;
}
.wb-cart__checkout-btn:hover { background: var(--wb-accent-dark); }
.wb-cart__trust {
    list-style: none;
    padding: 20px 0 0;
    margin: 0;
    font-size: 12px;
    color: var(--wb-text-muted);
}
.wb-cart__trust li { padding: 4px 0; }

/* ── Checkout ────────────────────────────────── */
.wb-checkout {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 32px 100px;
}
.wb-checkout__title {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: clamp(28px, 4vw, 40px);
    margin: 0 0 8px;
    text-align: center;
}
.wb-checkout__subtitle {
    text-align: center;
    color: var(--wb-text-muted);
    margin-bottom: 40px;
    font-size: 14px;
}
.wb-checkout__layout {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: start;
}
@media (max-width: 860px) { .wb-checkout__layout { grid-template-columns: 1fr; } }

.wb-checkout__form-card {
    background: var(--wb-card);
    padding: 32px;
    border-radius: var(--wb-radius);
    box-shadow: var(--wb-shadow);
}
.wb-checkout__stripe-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--wb-border);
    margin-bottom: 24px;
}
.wb-checkout__stripe-badge {
    background: var(--wb-accent);
    color: #1A1A18;
    padding: 4px 12px;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 2px;
}
.wb-checkout__lock { margin-left: auto; font-size: 16px; }
.wb-checkout__section-heading {
    font-family: var(--wb-font-serif);
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--wb-border);
}
.wb-checkout__field-group { display: flex; flex-direction: column; }
.wb-checkout__label {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--wb-text-muted);
    margin-bottom: 6px;
    font-weight: 500;
}
.wb-checkout__label abbr { color: var(--wb-red); text-decoration: none; margin-left: 2px; }
.wb-checkout__input {
    padding: 12px 14px;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius-sm);
    background: var(--wb-bg);
    font-family: var(--wb-font-sans);
    font-size: 14px;
    color: var(--wb-text);
    transition: border-color .2s;
}
.wb-checkout__input:focus { outline: none; border-color: var(--wb-accent); }
.wb-checkout__row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 500px) { .wb-checkout__row-2 { grid-template-columns: 1fr; } }

.wb-checkout__payment .wc_payment_method { border: 1px solid var(--wb-border); border-radius: var(--wb-radius-sm); padding: 14px 16px; margin-bottom: 10px; background: var(--wb-bg); }
.wb-checkout__payment .wc_payment_method label { display: inline-block; margin-left: 8px; }

.wb-checkout__submit {
    display: block;
    width: 100%;
    background: var(--wb-text);
    color: var(--wb-bg);
    border: none;
    padding: 18px;
    font-size: 14px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 2px;
    cursor: pointer;
    transition: background .2s;
    margin-top: 12px;
}
.wb-checkout__submit:hover { background: var(--wb-accent-dark); }

.wb-checkout__summary {
    background: var(--wb-card);
    padding: 32px;
    border-radius: var(--wb-radius);
    box-shadow: var(--wb-shadow);
    position: sticky;
    top: 120px;
}
.wb-checkout__summary-title {
    font-family: var(--wb-font-serif);
    font-size: 22px;
    font-weight: 500;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--wb-border);
}
.wb-checkout__lines { display: flex; flex-direction: column; gap: 16px; }
.wb-checkout__line {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--wb-border);
}
.wb-checkout__line:last-child { border-bottom: none; }
.wb-checkout__line-img { position: relative; }
.wb-checkout__line-img img { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; background: var(--wb-muted); }
.wb-checkout__line-qty {
    position: absolute;
    top: -6px; right: -6px;
    background: var(--wb-text);
    color: var(--wb-bg);
    width: 22px; height: 22px;
    border-radius: 50%;
    font-size: 11px;
    display: flex; align-items: center; justify-content: center;
    font-weight: 600;
}
.wb-checkout__line-name { font-size: 14px; font-weight: 500; margin: 0 0 2px; }
.wb-checkout__line-meta { font-size: 11px; color: var(--wb-text-muted); }
.wb-checkout__line-meta dl.variation dt, .wb-checkout__line-meta dl.variation dd { display: inline; margin-right: 6px; }
.wb-checkout__line-price { font-size: 13px; font-weight: 500; }

.wb-checkout__totals { padding: 16px 0; margin-top: 12px; border-top: 1px solid var(--wb-border); }
.wb-checkout__totals-row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 13px;
    color: var(--wb-text-muted);
}
.wb-checkout__total {
    display: flex;
    justify-content: space-between;
    padding: 16px 0;
    border-top: 1px solid var(--wb-border);
    border-bottom: 1px solid var(--wb-border);
    margin: 12px 0 20px;
}
.wb-checkout__total-label {
    font-family: var(--wb-font-serif);
    font-size: 18px;
    font-weight: 500;
}
.wb-checkout__total-price {
    font-family: var(--wb-font-sans);
    font-size: 22px;
    font-weight: 600;
    color: var(--wb-text);
}
.wb-checkout__badges {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
    font-size: 11px;
    color: var(--wb-text-muted);
    letter-spacing: .5px;
}
.wb-checkout__badges li { padding: 4px 0; }
.wb-checkout__features { list-style: none; padding: 0; margin: 12px 0 0; font-size: 13px; color: var(--wb-text-muted); }
.wb-checkout__features li { padding: 4px 0 4px 20px; position: relative; }
.wb-checkout__features li::before { content: '✓'; position: absolute; left: 0; color: var(--wb-accent); font-weight: 600; }
.wb-checkout__product-name { font-family: var(--wb-font-serif); font-size: 18px; font-weight: 500; margin: 0; }

/* ── Thank you ───────────────────────────────── */
.wb-thankyou { max-width: 1100px; margin: 0 auto; padding: 60px 32px 100px; }
.wb-thankyou__banner {
    background: var(--wb-card);
    padding: 60px 40px;
    text-align: center;
    border-radius: var(--wb-radius);
    box-shadow: var(--wb-shadow);
    margin-bottom: 40px;
}
.wb-thankyou__check {
    width: 88px; height: 88px;
    margin: 0 auto 24px;
    background: var(--wb-accent);
    color: #1A1A18;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wb-thankyou__title {
    font-family: var(--wb-font-serif);
    font-weight: 500;
    font-size: clamp(32px, 5vw, 48px);
    line-height: 1.1;
    margin: 0 0 12px;
    letter-spacing: -.5px;
}
.wb-thankyou__sub {
    font-size: 16px;
    color: var(--wb-text-muted);
    margin-bottom: 20px;
    line-height: 1.6;
}
.wb-thankyou__order-num {
    font-size: 13px;
    color: var(--wb-text-muted);
    letter-spacing: 1px;
    text-transform: uppercase;
}
.wb-thankyou__layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 40px;
    align-items: start;
}
@media (max-width: 860px) { .wb-thankyou__layout { grid-template-columns: 1fr; } }

.wb-thankyou__details {
    background: var(--wb-card);
    padding: 40px;
    border-radius: var(--wb-radius);
    box-shadow: var(--wb-shadow);
}
.wb-thankyou__section-heading {
    font-family: var(--wb-font-serif);
    font-size: 20px;
    font-weight: 500;
    margin: 0 0 20px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--wb-border);
}
.wb-thankyou__meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 20px 24px;
}
.wb-thankyou__meta-label {
    display: block;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--wb-text-muted);
    margin-bottom: 4px;
}
.wb-thankyou__meta-value {
    display: block;
    font-size: 15px;
    color: var(--wb-text);
    font-weight: 500;
}
.wb-thankyou__status {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 11px;
    letter-spacing: .5px;
    text-transform: uppercase;
    background: var(--wb-muted);
}
.wb-thankyou__status--processing, .wb-thankyou__status--completed { background: rgba(16, 185, 129, .15); color: var(--wb-green); }
.wb-thankyou__status--failed, .wb-thankyou__status--cancelled { background: rgba(239, 68, 68, .15); color: var(--wb-red); }
.wb-thankyou__status--pending, .wb-thankyou__status--on-hold { background: rgba(245, 158, 11, .15); color: var(--wb-warning); }

.wb-thankyou__items { display: flex; flex-direction: column; gap: 16px; }
.wb-thankyou__item {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--wb-border);
}
.wb-thankyou__item:last-child { border-bottom: none; }
.wb-thankyou__item-img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; background: var(--wb-muted); }
.wb-thankyou__item-name { font-family: var(--wb-font-serif); font-size: 16px; font-weight: 500; margin: 0 0 4px; }
.wb-thankyou__item-meta { font-size: 12px; color: var(--wb-text-muted); }
.wb-thankyou__item-meta dl.variation dt, .wb-thankyou__item-meta dl.variation dd { display: inline; margin-right: 6px; }
.wb-thankyou__item-qty { font-size: 12px; color: var(--wb-text-muted); margin-top: 2px; }
.wb-thankyou__item-price { font-size: 14px; font-weight: 500; }

.wb-thankyou__addresses {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 32px;
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid var(--wb-border);
}
.wb-thankyou__address-block address {
    font-style: normal;
    font-size: 14px;
    line-height: 1.6;
    color: var(--wb-text);
}

.wb-thankyou__next {
    background: var(--wb-card);
    padding: 32px;
    border-radius: var(--wb-radius);
    box-shadow: var(--wb-shadow);
    position: sticky;
    top: 120px;
}
.wb-thankyou__steps {
    padding-left: 20px;
    margin: 0 0 24px;
    font-size: 14px;
    color: var(--wb-text-muted);
    line-height: 1.6;
}
.wb-thankyou__steps li { padding: 8px 0; }
.wb-thankyou__steps strong { color: var(--wb-text); font-weight: 600; display: block; }
.wb-thankyou__support {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--wb-border);
}
.wb-thankyou__support-heading {
    font-family: var(--wb-font-serif);
    font-size: 16px;
    font-weight: 500;
    margin: 0 0 8px;
}
.wb-thankyou__support-text { font-size: 13px; color: var(--wb-text-muted); line-height: 1.5; }
.wb-thankyou__support-text a { color: var(--wb-accent); text-decoration: none; }

/* ── Nav cart badge ─────────────────────────── */
.wb-nav__cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: 50%;
    color: var(--wb-text);
    text-decoration: none;
    transition: background .2s;
}
.wb-nav__cart:hover { background: var(--wb-muted); }
.wb-nav__cart-count {
    position: absolute;
    top: 2px; right: 2px;
    background: var(--wb-accent);
    color: #1A1A18;
    width: 18px; height: 18px;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    line-height: 1;
}

/* ============ KAIYO-STYLE SINGLE PRODUCT ============ */
.wb-product-single--kaiyo .wb-product-single__inner{
  max-width:1240px;margin:0 auto;padding:1.5rem 1.25rem 4rem;
}
.wb-product-single--kaiyo .wb-product-single__crumb{
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#8b8680;margin-bottom:1.25rem;
}
.wb-product-single--kaiyo .wb-product-single__crumb a{color:#8b8680;text-decoration:none;}
.wb-product-single--kaiyo .wb-product-single__crumb a:hover{color:#1a1a18;}
.wb-product-single--kaiyo .wb-product-single__crumb-current{color:#1a1a18;font-weight:600;}
.wb-product-single--kaiyo .wb-product-single__layout{
  display:grid;grid-template-columns:1.15fr 1fr;gap:3.5rem;align-items:start;
}
@media(max-width:900px){
  .wb-product-single--kaiyo .wb-product-single__layout{grid-template-columns:1fr;gap:1.75rem;}
}

/* Gallery */
.wb-product-single--kaiyo .wb-product-single__stage{
  position:relative;background:#efe9df;border-radius:14px;overflow:hidden;
  aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;
}
.wb-product-single--kaiyo .wb-product-single__main-img{width:100%;height:100%;}
.wb-product-single--kaiyo .wb-product-single__main-img img{
  width:100%;height:100%;object-fit:contain;display:block;
  transition:transform .4s ease;
}
.wb-product-single--kaiyo .wb-product-single__main-img img:hover{transform:scale(1.03);}

.wb-product-single--kaiyo .wb-product-single__badge{
  position:absolute;top:1rem;left:1rem;z-index:3;
  padding:.5rem .95rem;font-size:.7rem;font-weight:800;letter-spacing:.09em;
  color:#fff;border-radius:4px;text-transform:uppercase;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.wb-product-single--kaiyo .wb-product-single__badge.is-coming-soon{background:#1a5c3a;}
.wb-product-single--kaiyo .wb-product-single__badge.is-sale{background:#c02a2a;}

/* Thumbnails */
.wb-product-single--kaiyo .wb-product-single__thumbs{
  display:flex;gap:.65rem;margin-top:.9rem;overflow-x:auto;padding-bottom:.4rem;
  scrollbar-width:thin;
}
.wb-product-single--kaiyo .wb-product-single__thumb{
  flex:0 0 84px;height:84px;padding:0;border:2px solid transparent;background:#efe9df;
  border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .15s ease;
}
.wb-product-single--kaiyo .wb-product-single__thumb img{
  width:100%;height:100%;object-fit:contain;display:block;
}
.wb-product-single--kaiyo .wb-product-single__thumb.is-active{border-color:#1a1a18;}
.wb-product-single--kaiyo .wb-product-single__thumb:hover{border-color:#8b8680;}

/* Info column */
.wb-product-single--kaiyo .wb-product-single__cat{
  font-size:.72rem;letter-spacing:.14em;color:#8b8680;margin:0 0 .5rem;font-weight:600;
}
.wb-product-single--kaiyo .wb-product-single__title{
  font-size:clamp(1.75rem,2.4vw,2.4rem);line-height:1.15;margin:0 0 .85rem;
  font-weight:700;color:#1a1a18;
}

/* Rating stars */
.wb-product-single--kaiyo .wb-product-single__rating{
  display:flex;align-items:center;gap:.5rem;margin:0 0 1.1rem;font-size:.88rem;color:#4a4640;
}
.wb-product-single--kaiyo .wb-stars{display:inline-flex;gap:1px;}
.wb-product-single--kaiyo .wb-star{color:#e0dbd2;font-size:1.05rem;line-height:1;}
.wb-product-single--kaiyo .wb-star--full{color:#c8a56d;}
.wb-product-single--kaiyo .wb-star--half{
  background:linear-gradient(90deg,#c8a56d 50%,#e0dbd2 50%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.wb-product-single--kaiyo .wb-product-single__rating-num{font-weight:600;color:#1a1a18;}
.wb-product-single--kaiyo .wb-product-single__rating-count{color:#8b8680;}

/* Price */
.wb-product-single--kaiyo .wb-product-single__price{
  font-size:1.75rem;font-weight:700;color:#1a1a18;margin:0 0 1.1rem;
}
.wb-product-single--kaiyo .wb-product-single__price del{color:#b8b3ad;font-weight:400;margin-right:.4rem;}

/* Short desc */
.wb-product-single--kaiyo .wb-product-single__short{
  color:#4a4640;line-height:1.6;margin-bottom:1.5rem;font-size:.98rem;
}
.wb-product-single--kaiyo .wb-product-single__short p:last-child{margin-bottom:0;}

/* Form / add-to-cart */
.wb-product-single--kaiyo .wb-product-single__form{margin-bottom:1.5rem;}
.wb-product-single--kaiyo .wb-product-single__form .single_add_to_cart_button,
.wb-product-single--kaiyo .wb-product-single__form .button{
  width:100%;padding:1.1rem 1.5rem;background:#1a1a18;color:#fff;border:0;border-radius:6px;
  font-size:.95rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;
  transition:background .15s ease;
}
.wb-product-single--kaiyo .wb-product-single__form .single_add_to_cart_button:hover{background:#333;}

/* Coming-soon notice reuses the notice div from functions.php */
.wb-product-single--kaiyo .wb-coming-soon-notice{margin:0 0 1.5rem !important;}

/* Trust list */
.wb-product-single--kaiyo .wb-product-single__meta{
  list-style:none;margin:0 0 1.75rem;padding:1rem 1.25rem;background:#f8f7f4;border-radius:8px;
}
.wb-product-single--kaiyo .wb-product-single__meta li{
  display:flex;align-items:center;gap:.6rem;padding:.35rem 0;color:#4a4640;font-size:.9rem;
}
.wb-product-single--kaiyo .wb-product-single__meta li span{color:#c8a56d;font-size:.85rem;}

/* Details accordion */
.wb-product-single--kaiyo .wb-product-single__details{
  border-top:1px solid #e5e0d8;padding-top:1rem;
}
.wb-product-single--kaiyo .wb-product-single__details summary{
  cursor:pointer;font-weight:700;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;
  padding:.75rem 0;list-style:none;color:#1a1a18;
}
.wb-product-single--kaiyo .wb-product-single__details summary::-webkit-details-marker{display:none;}
.wb-product-single--kaiyo .wb-product-single__details summary::after{content:'+';float:right;font-size:1.2rem;font-weight:400;}
.wb-product-single--kaiyo .wb-product-single__details[open] summary::after{content:'−';}
.wb-product-single--kaiyo .wb-product-single__desc-body{padding-top:.5rem;color:#4a4640;line-height:1.65;font-size:.95rem;}

/* Mobile tweak */
@media(max-width:600px){
  .wb-product-single--kaiyo .wb-product-single__title{font-size:1.5rem;}
  .wb-product-single--kaiyo .wb-product-single__price{font-size:1.4rem;}
  .wb-product-single--kaiyo .wb-product-single__thumb{flex:0 0 68px;height:68px;}
}

/* ============ SINGLE PRODUCT — badge overlay hardening + arrows ============ */
.wb-product-single--kaiyo .wb-product-single__stage{position:relative !important;isolation:isolate;}
.wb-product-single--kaiyo .wb-product-single__badge{
  position:absolute !important;top:1rem !important;left:1rem !important;z-index:10 !important;
  display:inline-block !important;
}

/* Prev/next arrows on stage */
.wb-product-single--kaiyo .wb-product-single__arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:10;
  width:44px;height:44px;border-radius:50%;border:0;
  background:rgba(255,255,255,.85);backdrop-filter:blur(4px);
  color:#1a1a18;font-size:1.6rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.15);transition:background .15s,transform .15s;
}
.wb-product-single--kaiyo .wb-product-single__arrow:hover{background:#1a1a18;color:#fff;}
.wb-product-single--kaiyo .wb-product-single__arrow--prev{left:.75rem;}
.wb-product-single--kaiyo .wb-product-single__arrow--next{right:.75rem;}
@media(max-width:600px){
  .wb-product-single--kaiyo .wb-product-single__arrow{width:38px;height:38px;font-size:1.35rem;}
}

/* ============ SINGLE PRODUCT — mobile polish ============ */
.wb-product-single--kaiyo .wb-coming-soon-notice{
  margin:1rem 0 1.5rem;padding:1rem 1.25rem;background:#f6f0e8;border:1px solid #d9c9b1;
  border-radius:6px;color:#3a2a12;font-size:.95rem;line-height:1.5;
}
.wb-product-single--kaiyo .wb-coming-soon-notice strong{
  display:block;font-size:1.05rem;margin-bottom:.35rem;color:#1a1a18;
}
.wb-product-single--kaiyo .wb-coming-soon-notice a{color:#8a5a1f;text-decoration:underline;}

/* Prevent arrow overlap on very narrow screens */
@media(max-width:400px){
  .wb-product-single--kaiyo .wb-product-single__arrow{width:34px;height:34px;font-size:1.2rem;}
  .wb-product-single--kaiyo .wb-product-single__arrow--prev{left:.4rem;}
  .wb-product-single--kaiyo .wb-product-single__arrow--next{right:.4rem;}
  .wb-product-single--kaiyo .wb-product-single__badge{
    top:.6rem !important;left:.6rem !important;
    padding:.35rem .65rem;font-size:.62rem;
  }
  .wb-product-single--kaiyo .wb-product-single__inner{padding:1rem .85rem 2.5rem;}
  .wb-product-single--kaiyo .wb-product-single__crumb{font-size:.65rem;}
}

/* Ensure related products don't overflow on mobile */
@media(max-width:600px){
  .wb-product-single--kaiyo .related.products ul.products{
    grid-template-columns:1fr 1fr !important;gap:.75rem !important;
  }
  .wb-product-single--kaiyo .related.products h2{font-size:1.2rem;}
}

/* ============ SINGLE PRODUCT — iOS aspect-ratio fallback ============ */
.wb-product-single--kaiyo .wb-product-single__stage{
  aspect-ratio:auto !important;
  display:block !important;
  padding:0 !important;
  height:0 !important;
  padding-bottom:125% !important;   /* 4:5 portrait */
  position:relative !important;
  overflow:hidden !important;
}
.wb-product-single--kaiyo .wb-product-single__stage .wb-product-single__main-img{
  position:absolute !important;inset:0 !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
  padding:1rem !important;
}
.wb-product-single--kaiyo .wb-product-single__stage .wb-product-single__main-img img{
  max-width:100% !important;max-height:100% !important;
  width:auto !important;height:auto !important;
  object-fit:contain !important;
}

/* Support modern browsers with real aspect-ratio too */
@supports (aspect-ratio:1){
  .wb-product-single--kaiyo .wb-product-single__stage{
    aspect-ratio:4/5 !important;
    padding-bottom:0 !important;
    height:auto !important;
  }
}
