@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');

:root {
    --j-ink: #13213c;
    --j-marigold: #f6c64a;
    --j-vermilion: #e4553f;
    --j-leaf: #758c63;
    --j-paper: #fff8e8;
    --j-white: #ffffff;
    --j-sky: #dcecf2;
    --j-peach: #f7d8c8;
    --j-muted: #5c6270;
    --j-border: rgba(19, 33, 60, .14);
    --j-shadow: 6px 6px 0 #13213c;
    --j-display: 'Open Sans', Arial, sans-serif;
    --j-body: 'Open Sans', Arial, sans-serif;
    --j-shell: 1480px;
    --j-ease: cubic-bezier(.2, .8, .2, 1);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    background: var(--j-paper);
    color: var(--j-ink);
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    margin: 0;
    background: var(--j-paper);
    color: var(--j-ink);
    font-family: var(--j-body);
    font-size: 16px;
    line-height: 1.6;
    overflow-x: hidden;
}

body.jonacart-theme {
    overflow-x: hidden;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

:focus-visible {
    outline: 3px solid var(--j-marigold);
    outline-offset: 3px;
}

.screen-reader-text,
.j-skip-link {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}

.j-skip-link:focus {
    z-index: 9999;
    width: auto;
    height: auto;
    clip: auto;
    top: 12px;
    left: 12px;
    padding: 10px 14px;
    background: var(--j-ink);
    color: var(--j-white);
}

.j-shell {
    width: min(calc(100% - 48px), var(--j-shell));
    margin-inline: auto;
}

.j-announcement {
    background: var(--j-marigold);
    border-bottom: 1.5px solid var(--j-ink);
    color: var(--j-ink);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.j-announcement__inner {
    display: flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    gap: 28px;
    text-align: center;
}

.j-header {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid var(--j-border);
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(14px);
}

.j-header__main {
    display: grid;
    grid-template-columns: auto minmax(130px, 220px) minmax(280px, 1fr) auto;
    min-height: 82px;
    align-items: center;
    gap: 24px;
}

.j-wordmark {
    display: inline-flex;
    align-items: baseline;
    font-family: var(--j-display);
    font-size: 40px;
    line-height: 1;
    text-transform: uppercase;
}

.j-wordmark span {
    color: var(--j-vermilion);
}

.j-menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-white);
    color: var(--j-ink);
}

.j-menu-toggle svg,
.j-header__icons svg,
.j-search svg,
.j-button svg,
.j-text-link svg,
.j-product-card__button svg,
.j-trust svg,
.j-product-note svg,
.j-occasion-card svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.j-search {
    display: flex;
    min-height: 50px;
    overflow: hidden;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-white);
    box-shadow: 4px 4px 0 rgba(19, 33, 60, .16);
}

.j-search input[type="search"] {
    min-width: 0;
    flex: 1;
    border: 0;
    padding: 0 18px;
    background: transparent;
    color: var(--j-ink);
}

.j-search button {
    width: 54px;
    border: 0;
    border-left: 1.5px solid var(--j-ink);
    background: var(--j-marigold);
    color: var(--j-ink);
    cursor: pointer;
}

.j-header__icons {
    display: flex;
    align-items: center;
    gap: 10px;
}

.j-header__icons a {
    position: relative;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-white);
}

.j-cart-link span {
    position: absolute;
    top: -8px;
    right: -8px;
    display: grid;
    min-width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 999px;
    background: var(--j-vermilion);
    color: var(--j-white);
    font-size: 11px;
    font-weight: 800;
}

.j-nav {
    display: flex;
    min-height: 46px;
    align-items: center;
    gap: 22px;
    overflow-x: auto;
    border-top: 1px solid var(--j-border);
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
}

.j-nav a {
    padding: 12px 0;
}

.j-nav a:hover {
    color: var(--j-vermilion);
}

.j-main {
    min-height: 60vh;
}

.j-hero {
    position: relative;
    min-height: 700px;
    overflow: hidden;
    border-bottom: 2px solid var(--j-ink);
    background: var(--j-ink);
}

.j-hero__media {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: repeat(6, 1fr);
    gap: 14px;
    padding: 24px;
    opacity: .92;
}

.j-hero__media::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(19, 33, 60, .93) 0%, rgba(19, 33, 60, .72) 46%, rgba(19, 33, 60, .18) 100%),
        radial-gradient(circle at 78% 18%, rgba(246, 198, 74, .45), transparent 28%);
    z-index: 2;
}

.j-hero__photo {
    position: relative;
    z-index: 1;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, .72);
    background: var(--j-white);
}

.j-hero__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.j-hero__photo--1 {
    grid-column: 7 / 10;
    grid-row: 1 / 4;
}

.j-hero__photo--2 {
    grid-column: 10 / 13;
    grid-row: 1 / 3;
}

.j-hero__photo--3 {
    grid-column: 8 / 13;
    grid-row: 3 / 7;
}

.j-hero__photo--4 {
    grid-column: 5 / 8;
    grid-row: 4 / 7;
}

.j-hero__photo--5,
.j-hero__photo--6 {
    display: none;
}

.j-hero__shade {
    position: absolute;
    inset: 0;
    z-index: 3;
    background-image:
        linear-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .08) 1px, transparent 1px);
    background-size: 42px 42px;
    pointer-events: none;
}

.j-hero__content {
    position: relative;
    z-index: 4;
    display: flex;
    min-height: 700px;
    flex-direction: column;
    justify-content: center;
    padding: 70px 0 96px;
    color: var(--j-white);
}

.j-sticker {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    align-items: center;
    margin: 0 0 20px;
    padding: 6px 13px;
    transform: rotate(-2deg);
    border: 1.5px solid var(--j-ink);
    background: var(--j-marigold);
    color: var(--j-ink);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.j-hero h1,
.j-section-head h2,
.j-finder h2,
.j-personalised h2,
.j-corporate h2,
.j-page__header h1,
.woocommerce-products-header__title,
.product_title {
    margin: 0;
    font-family: var(--j-display);
    font-weight: 400;
    line-height: .94;
    letter-spacing: 0;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.j-hero h1 {
    max-width: 780px;
    font-size: 128px;
}

.j-hero__content > p:not(.j-sticker) {
    max-width: 650px;
    margin: 22px 0 30px;
    color: rgba(255, 255, 255, .86);
    font-size: 19px;
}

.j-button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.j-button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 24px;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    font-weight: 800;
    transition: transform .2s var(--j-ease), box-shadow .2s var(--j-ease), background .2s var(--j-ease);
}

.j-button--yellow {
    background: var(--j-marigold);
    color: var(--j-ink);
    box-shadow: var(--j-shadow);
}

.j-button--ink {
    background: var(--j-ink);
    color: var(--j-white);
}

.j-button--light {
    border-color: rgba(255, 255, 255, .66);
    background: rgba(255, 255, 255, .12);
    color: var(--j-white);
}

.j-button:hover {
    transform: translate(-2px, -2px);
}

.j-button--yellow:hover {
    box-shadow: 8px 8px 0 var(--j-ink);
}

.j-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 720px;
    margin-top: 34px;
}

.j-hero__chips a {
    padding: 9px 13px;
    border: 1px solid rgba(255, 255, 255, .52);
    border-radius: 8px;
    background: rgba(255, 255, 255, .11);
    color: var(--j-white);
    font-size: 13px;
    font-weight: 800;
}

.j-section {
    padding: 92px 0;
}

.j-section-head {
    max-width: 840px;
    margin-bottom: 38px;
}

.j-section-head--row {
    display: flex;
    max-width: none;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.j-eyebrow {
    margin: 0 0 12px;
    color: var(--j-vermilion);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.j-section-head h2,
.j-finder h2,
.j-personalised h2,
.j-corporate h2,
.j-page__header h1,
.woocommerce-products-header__title {
    font-size: 76px;
}

.j-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
}

.j-text-link:hover {
    color: var(--j-vermilion);
}

.j-occasion-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.j-occasion-card {
    position: relative;
    min-height: 280px;
    overflow: hidden;
    padding: 22px;
    border: 2px solid var(--j-ink);
    color: var(--j-ink);
}

.j-occasion-card span {
    display: block;
    max-width: 230px;
    font-weight: 800;
}

.j-occasion-card strong {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 22px;
    font-family: var(--j-display);
    font-size: 52px;
    font-weight: 400;
    line-height: .96;
    text-transform: uppercase;
}

.j-occasion-card svg {
    position: absolute;
    right: 18px;
    top: 18px;
    width: 42px;
    height: 42px;
}

.j-occasion-card--marigold {
    background: var(--j-marigold);
}

.j-occasion-card--sky {
    background: var(--j-sky);
}

.j-occasion-card--vermilion {
    background: var(--j-vermilion);
    color: var(--j-white);
}

.j-occasion-card--leaf {
    background: var(--j-leaf);
    color: var(--j-white);
}

.j-finder {
    padding: 68px 0;
    border-block: 2px solid var(--j-ink);
    background: var(--j-white);
}

.j-finder__grid {
    display: grid;
    grid-template-columns: minmax(280px, 480px) 1fr;
    gap: 34px;
    align-items: center;
}

.j-finder__links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.j-finder__links a {
    display: flex;
    min-height: 62px;
    align-items: center;
    justify-content: space-between;
    padding: 13px 16px;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-paper);
    font-weight: 800;
}

.j-finder__links a::after {
    content: ">";
}

.j-product-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.j-product-card {
    position: relative;
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    overflow: hidden;
    border: 1.5px solid var(--j-border);
    border-radius: 8px;
    background: var(--j-white);
    text-align: left !important;
    transition: transform .2s var(--j-ease), border-color .2s var(--j-ease), box-shadow .2s var(--j-ease);
}

.j-product-card:hover {
    transform: translateY(-4px);
    border-color: var(--j-ink);
    box-shadow: 8px 8px 0 rgba(19, 33, 60, .14);
}

.j-product-card__media {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--j-paper);
}

.j-product-card__media img {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: contain;
    padding: 12px;
    transition: transform .24s var(--j-ease);
}

.j-product-card:hover .j-product-card__media img {
    transform: scale(1.025);
}

.j-sale-badge {
    position: absolute;
    z-index: 2;
    top: 12px;
    left: 12px;
    padding: 6px 9px;
    transform: rotate(-3deg);
    border: 1.5px solid var(--j-ink);
    border-radius: 6px;
    background: var(--j-vermilion);
    color: var(--j-white);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.j-product-card__body {
    padding: 16px;
}

.j-product-card__brand {
    margin: 0 0 5px;
    color: var(--j-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.j-product-card h3 {
    min-height: 52px;
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.j-product-card__price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--j-ink);
    font-size: 21px;
    font-weight: 800;
}

.j-product-card__price del,
.woocommerce div.product p.price del {
    color: var(--j-muted);
    font-size: 13px;
    font-weight: 600;
    opacity: 1;
}

.j-product-card__price ins,
.woocommerce div.product p.price ins {
    text-decoration: none;
}

.j-product-card__availability {
    margin: 4px 0 13px;
    color: var(--j-vermilion);
    font-size: 12px;
    font-weight: 800;
}

.j-product-card__button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 800;
}

.j-personalised {
    padding: 92px 0;
    border-block: 2px solid var(--j-ink);
    background: var(--j-leaf);
    color: var(--j-white);
}

.j-personalised__grid {
    display: grid;
    grid-template-columns: minmax(300px, 560px) 1fr;
    gap: 56px;
    align-items: center;
}

.j-personalised h2 {
    color: var(--j-white);
}

.j-personalised p:not(.j-sticker) {
    max-width: 580px;
    margin: 24px 0;
    color: rgba(255, 255, 255, .84);
    font-size: 18px;
}

.j-personalised__stack {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.j-personalised__stack img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border: 2px solid var(--j-ink);
    background: var(--j-white);
}

.j-personalised__stack img:nth-child(2) {
    transform: translateY(34px);
}

.j-category-mosaic {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}

.j-category-card {
    min-height: 210px;
    padding: 20px;
    border: 2px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-white);
}

.j-category-card:nth-child(1),
.j-category-card:nth-child(4) {
    grid-column: span 3;
}

.j-category-card:nth-child(2),
.j-category-card:nth-child(3),
.j-category-card:nth-child(5),
.j-category-card:nth-child(6) {
    grid-column: span 2;
}

.j-category-card span {
    display: inline-block;
    margin-bottom: 36px;
    color: rgba(19, 33, 60, .36);
    font-family: var(--j-display);
    font-size: 54px;
    line-height: .9;
}

.j-category-card strong {
    display: block;
    margin-bottom: 10px;
    font-family: var(--j-display);
    font-size: 42px;
    font-weight: 400;
    line-height: .96;
    text-transform: uppercase;
}

.j-category-card p {
    margin: 0;
    color: var(--j-muted);
    font-weight: 700;
}

.j-category-card--1 {
    background: var(--j-marigold);
}

.j-category-card--2 {
    background: var(--j-sky);
}

.j-category-card--3 {
    background: var(--j-peach);
}

.j-category-card--4 {
    background: var(--j-white);
}

.j-offers {
    background: var(--j-white);
}

.j-corporate {
    padding: 96px 0;
    background: var(--j-ink);
    color: var(--j-white);
}

.j-corporate__inner {
    display: grid;
    grid-template-columns: minmax(0, 820px) auto;
    gap: 30px;
    align-items: end;
}

.j-corporate h2 {
    color: var(--j-white);
}

.j-trust {
    padding: 38px 0;
    border-bottom: 2px solid var(--j-ink);
    background: var(--j-marigold);
}

.j-trust__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}

.j-trust__grid > div {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.j-trust strong,
.j-trust span {
    display: block;
}

.j-trust strong {
    font-size: 14px;
}

.j-trust span {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.j-footer {
    padding: 72px 0 26px;
    background: var(--j-ink);
    color: var(--j-white);
}

.j-footer__grid {
    display: grid;
    grid-template-columns: 2fr repeat(3, 1fr);
    gap: 52px;
}

.j-footer__brand p {
    max-width: 520px;
    margin: 22px 0 0;
    color: rgba(255, 255, 255, .72);
}

.j-wordmark--footer {
    color: var(--j-white);
}

.j-footer h2 {
    margin: 0 0 16px;
    color: var(--j-marigold);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.j-footer a {
    display: block;
    margin-bottom: 10px;
    color: rgba(255, 255, 255, .78);
    font-weight: 700;
}

.j-footer a:hover {
    color: var(--j-marigold);
}

.j-footer__bottom {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    margin-top: 54px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .62);
    font-size: 12px;
}

.j-page {
    padding: 80px 0;
}

.j-page__header {
    max-width: 920px;
    margin-bottom: 34px;
}

.j-content {
    max-width: 840px;
    font-size: 18px;
}

.j-content h2 {
    margin-top: 34px;
    font-family: var(--j-display);
    font-size: 38px;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}

.woocommerce .woocommerce-breadcrumb,
.woocommerce-result-count,
.woocommerce-ordering {
    margin: 0 0 22px;
    color: var(--j-muted);
    font-size: 13px;
    font-weight: 700;
}

.woocommerce main.j-main,
.woocommerce-page main.j-main {
    padding-bottom: 70px;
}

.woocommerce-shop .site-main,
.post-type-archive-product .j-main,
.tax-product_cat .j-main,
.single-product .j-main {
    width: min(calc(100% - 48px), var(--j-shell));
    margin-inline: auto;
    padding-top: 58px;
}

.woocommerce-products-header {
    max-width: 760px;
    margin-bottom: 30px;
}

.woocommerce div.product {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: 58px;
    align-items: start;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
    float: none;
    width: auto;
}

.woocommerce div.product div.images img {
    border: 1.5px solid var(--j-border);
    border-radius: 8px;
    background: var(--j-white);
}

.product_title {
    font-size: 58px;
}

.woocommerce div.product .product_meta {
    display: grid;
    gap: 8px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--j-border);
    color: var(--j-muted);
    font-size: 13px;
    font-weight: 700;
}

.woocommerce div.product div.images.woocommerce-product-gallery {
    opacity: 1 !important;
}

.woocommerce div.product form.cart {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin: 26px 0;
}

.woocommerce div.product form.cart .quantity {
    margin: 0;
}

.woocommerce div.product form.cart .qty {
    width: 86px;
    min-height: 52px;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-white);
    color: var(--j-ink);
    font-weight: 800;
    text-align: center;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
    min-height: 52px;
    padding-inline: 28px;
}

.woocommerce div.product .stock.out-of-stock {
    display: block;
    margin: 22px 0;
    color: var(--j-vermilion);
    font-weight: 800;
}

.j-product-note {
    display: flex;
    gap: 12px;
    margin: 22px 0;
    padding: 16px;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-marigold);
}

.j-product-note strong,
.j-product-note span {
    display: block;
}

.j-product-note span {
    color: rgba(19, 33, 60, .78);
    font-size: 13px;
    font-weight: 700;
}

.woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products {
    grid-column: 1 / -1;
}

.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products {
    width: 100%;
    margin-top: 54px;
    padding-top: 34px;
    border-top: 1px solid var(--j-border);
}

.woocommerce div.product .related.products > h2,
.woocommerce div.product .upsells.products > h2 {
    margin: 0 0 24px;
    font-size: 32px;
    line-height: 1.15;
}

.woocommerce div.product .related.products ul.products,
.woocommerce div.product .upsells.products ul.products {
    width: 100%;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
    border-bottom-color: var(--j-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    border-color: var(--j-border);
    border-radius: 8px 8px 0 0;
    background: var(--j-white);
}

.woocommerce div.product .woocommerce-tabs .panel {
    max-width: 860px;
    font-size: 17px;
}

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-ink);
    color: var(--j-white);
    font-weight: 800;
}

.woocommerce nav.woocommerce-pagination ul {
    border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: 0;
    margin: 0 3px;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    min-width: 42px;
    border: 1.5px solid var(--j-ink);
    border-radius: 8px;
    background: var(--j-white);
    color: var(--j-ink);
    font-weight: 800;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--j-marigold);
}

@media (max-width: 1100px) {
    .j-header__main {
        grid-template-columns: auto 1fr auto;
    }

    .j-menu-toggle {
        display: grid;
    }

    .j-search {
        grid-column: 1 / -1;
        order: 5;
        width: 100%;
        min-width: 0;
        margin-bottom: 14px;
    }

    .j-nav {
        display: none;
        padding: 12px 0 18px;
    }

    .j-nav.is-open {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        white-space: normal;
    }

    .j-occasion-grid,
    .j-product-grid,
    .j-trust__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .j-finder__grid,
    .j-personalised__grid,
    .j-corporate__inner,
    .woocommerce div.product {
        grid-template-columns: 1fr;
    }

    .j-category-card:nth-child(n) {
        grid-column: span 3;
    }
}

@media (max-width: 720px) {
    .j-shell,
    .woocommerce-shop .site-main,
    .post-type-archive-product .j-main,
    .tax-product_cat .j-main,
    .single-product .j-main {
        width: calc(100% - 28px);
    }

    .j-announcement__inner {
        justify-content: center;
        gap: 0;
        white-space: normal;
    }

    .j-announcement__inner span:not(:first-child) {
        display: none;
    }

    .j-header__main {
        min-height: 70px;
        gap: 12px;
    }

    .j-wordmark {
        font-size: 32px;
    }

    .j-header__icons a,
    .j-menu-toggle {
        width: 40px;
        height: 40px;
    }

    .j-hero,
    .j-hero__content {
        min-height: 620px;
    }

    .j-hero__media {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: repeat(5, 1fr);
        gap: 10px;
        padding: 12px;
    }

    .j-hero__media::before {
        background: linear-gradient(180deg, rgba(19, 33, 60, .92) 0%, rgba(19, 33, 60, .66) 58%, rgba(19, 33, 60, .28) 100%);
    }

    .j-hero__photo--1 {
        grid-column: 2 / 5;
        grid-row: 1 / 3;
    }

    .j-hero__photo--2 {
        grid-column: 3 / 5;
        grid-row: 3 / 5;
    }

    .j-hero__photo--3 {
        grid-column: 1 / 3;
        grid-row: 4 / 6;
    }

    .j-hero__photo--4 {
        display: none;
    }

    .j-hero__content {
        justify-content: flex-start;
        padding-top: 74px;
    }

    .j-hero h1 {
        max-width: 360px;
        font-size: 68px;
    }

    .j-hero__content > p:not(.j-sticker) {
        max-width: 360px;
        font-size: 16px;
    }

    .j-hero .j-button-row {
        display: grid;
        max-width: 360px;
        grid-template-columns: 1fr;
    }

    .j-hero .j-button {
        width: 100%;
    }

    .j-hero__chips {
        display: grid;
        max-width: 360px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .j-hero__chips a {
        min-width: 0;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .j-section {
        padding: 64px 0;
    }

    .j-section-head h2,
    .j-finder h2,
    .j-personalised h2,
    .j-corporate h2,
    .j-page__header h1,
    .woocommerce-products-header__title {
        font-size: 48px;
    }

    .product_title {
        font-size: 42px;
    }

    .j-section-head--row,
    .j-footer__bottom {
        display: block;
    }

    .j-text-link {
        margin-top: 18px;
    }

    .j-occasion-grid,
    .j-product-grid,
    .j-product-grid--compact,
    .j-finder__links,
    .j-personalised__stack,
    .j-trust__grid {
        grid-template-columns: 1fr;
    }

    .j-occasion-card {
        min-height: 220px;
    }

    .j-occasion-card strong {
        font-size: 42px;
    }

    .j-category-mosaic {
        grid-template-columns: 1fr;
    }

    .j-category-card:nth-child(n) {
        grid-column: auto;
    }

    .j-footer__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .j-personalised__stack img:nth-child(2) {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}

/* Jonacart v2 gifting redesign */
:root {
    --jg-plum: #2b1633;
    --jg-berry: #b8325f;
    --jg-rose: #fff1f4;
    --jg-cream: #fff9ee;
    --jg-gold: #e7b85d;
    --jg-ink: #2b2430;
    --jg-muted: #756b78;
    --jg-line: rgba(43, 22, 51, .12);
    --jg-shadow: 0 22px 70px rgba(65, 31, 50, .14);
}

body.jonacart-theme {
    background: radial-gradient(circle at 8% 2%, rgba(184, 50, 95, .12), transparent 28rem), radial-gradient(circle at 92% 10%, rgba(231, 184, 93, .16), transparent 26rem), var(--jg-cream);
    color: var(--jg-ink);
}

.j-announcement { background: var(--jg-plum); color: #fff; border-bottom: 0; }
.j-header { background: rgba(255, 249, 238, .92); border-bottom: 1px solid var(--jg-line); }
.j-wordmark { color: var(--jg-plum); letter-spacing: -.03em; }
.j-wordmark span { color: var(--jg-berry); }
.j-search, .j-header__icons a { border-color: var(--jg-line); border-radius: 999px; box-shadow: 0 12px 28px rgba(43, 22, 51, .06); }
.j-search button { background: var(--jg-berry); color: #fff; border-color: var(--jg-line); }
.j-cart-link span { background: var(--jg-gold); color: var(--jg-plum); }
.j-nav { border-top: 1px solid var(--jg-line); }
.j-nav a:hover { color: var(--jg-berry); }

.jg-hero { padding: 54px 0 72px; }
.jg-hero__inner { display: grid; grid-template-columns: minmax(0, .88fr) minmax(420px, .78fr); gap: 54px; align-items: center; }
.jg-eyebrow { margin: 0 0 14px; color: var(--jg-berry); font-size: 12px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.jg-hero h1, .jg-section-head h2, .jg-banner h2 { margin: 0; color: var(--jg-plum); font-family: var(--j-display); font-size: clamp(54px, 7vw, 112px); line-height: .92; letter-spacing: -.035em; text-transform: uppercase; }
.jg-hero__copy > p:not(.jg-eyebrow) { max-width: 620px; margin: 24px 0 0; color: var(--jg-muted); font-size: 19px; line-height: 1.65; }
.jg-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.jg-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 24px; border-radius: 999px; border: 1px solid transparent; font-weight: 900; text-transform: uppercase; }
.jg-button svg, .jg-text-link svg, .jg-category-card svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.jg-button--primary { background: var(--jg-berry); color: #fff; box-shadow: 0 16px 36px rgba(184, 50, 95, .24); }
.jg-button--ghost { background: #fff; color: var(--jg-plum); border-color: var(--jg-line); }
.jg-button--light { background: #fff; color: var(--jg-plum); }
.jg-promise { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.jg-promise span { border: 1px solid var(--jg-line); border-radius: 999px; background: rgba(255, 255, 255, .66); padding: 9px 12px; color: var(--jg-muted); font-size: 12px; font-weight: 800; }
.jg-hero__gallery { position: relative; min-height: 560px; }
.jg-photo { position: absolute; overflow: hidden; border: 10px solid #fff; border-radius: 32px; background: #fff; box-shadow: var(--jg-shadow); }
.jg-photo img { width: 100%; height: 100%; object-fit: cover; }
.jg-photo--1 { width: 56%; aspect-ratio: 4 / 5; left: 3%; top: 0; }
.jg-photo--2 { width: 45%; aspect-ratio: 1; right: 0; top: 42px; }
.jg-photo--3 { width: 42%; aspect-ratio: 4 / 5; left: 28%; bottom: 0; }
.jg-photo--4 { width: 34%; aspect-ratio: 1; right: 10%; bottom: 54px; }
.jg-photo--5, .jg-photo--6 { display: none; }
.jg-gift-tag { position: absolute; left: 0; bottom: 46px; display: grid; width: 136px; height: 136px; padding: 18px; place-items: center; border-radius: 28px; background: var(--jg-gold); color: var(--jg-plum); text-align: center; transform: rotate(-5deg); box-shadow: var(--jg-shadow); }
.jg-gift-tag strong { display: block; font-size: 44px; line-height: .85; }
.jg-gift-tag span { font-size: 11px; font-weight: 900; text-transform: uppercase; }

.jg-occasion-bar { padding: 18px 0; background: var(--jg-plum); color: #fff; }
.jg-occasion-bar__inner { display: flex; align-items: center; gap: 12px; overflow-x: auto; white-space: nowrap; }
.jg-occasion-bar span { color: rgba(255, 255, 255, .62); font-weight: 900; text-transform: uppercase; }
.jg-occasion-bar a { border-radius: 999px; background: rgba(255, 255, 255, .1); padding: 10px 14px; font-weight: 800; }

.jg-section { padding: 82px 0; }
.jg-section--cream { background: rgba(255, 255, 255, .48); }
.jg-section-head { margin-bottom: 34px; }
.jg-section-head h2, .jg-banner h2 { max-width: 860px; font-size: clamp(38px, 5vw, 74px); }
.jg-section-head--row { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.jg-text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--jg-berry); font-weight: 900; text-transform: uppercase; }
.jg-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.jg-category-card { min-height: 230px; padding: 26px; border: 1px solid var(--jg-line); border-radius: 30px; background: #fff; box-shadow: 0 18px 44px rgba(43, 22, 51, .08); }
.jg-category-card span { color: var(--jg-plum); font-size: 28px; font-weight: 900; }
.jg-category-card p { color: var(--jg-muted); }
.jg-category-card em { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; color: var(--jg-berry); font-style: normal; font-weight: 900; }

.jg-banner { padding: 72px 0; background: linear-gradient(135deg, var(--jg-plum), #5b2342); color: #fff; }
.jg-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.jg-banner h2, .jg-banner .jg-eyebrow { color: #fff; }
.jg-banner p { max-width: 720px; color: rgba(255, 255, 255, .72); }

.jg-trust { padding: 34px 0; background: #fff; border-top: 1px solid var(--jg-line); }
.jg-trust__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.jg-trust__grid > div { border: 1px solid var(--jg-line); border-radius: 22px; padding: 18px; background: var(--jg-cream); }
.jg-trust strong { display: block; color: var(--jg-plum); font-size: 15px; text-transform: uppercase; }
.jg-trust span { display: block; margin-top: 5px; color: var(--jg-muted); font-size: 13px; }

.j-product-card { overflow: hidden; border: 1px solid var(--jg-line) !important; border-radius: 28px; background: #fff !important; box-shadow: 0 18px 44px rgba(43, 22, 51, .08); }
.j-product-card__media { background: linear-gradient(180deg, #fff7f8, #fff); }
.j-product-card__media img { padding: 14px; object-fit: contain; }
.j-product-card__brand, .j-product-card__availability { color: var(--jg-muted); }
.j-product-card h3 { color: var(--jg-plum); }
.j-product-card__actions { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; margin-top: 14px; }
.j-product-card__button, .j-product-card__button.button { display: inline-flex !important; align-items: center; justify-content: center; min-height: 42px; border-radius: 999px !important; background: var(--jg-berry) !important; color: #fff !important; padding: 0 16px !important; font-size: 12px !important; font-weight: 900 !important; text-transform: uppercase; }
.j-product-card__link { color: var(--jg-berry); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.j-sale-badge, .onsale { background: var(--jg-gold) !important; color: var(--jg-plum) !important; border-radius: 999px !important; }

.woocommerce div.product form.cart { display: flex; gap: 12px; align-items: center; margin-top: 24px; }
.woocommerce div.product form.cart .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button { border-radius: 999px !important; background: var(--jg-berry) !important; color: #fff !important; font-weight: 900 !important; text-transform: uppercase; }
.j-product-note { border-left: 4px solid var(--jg-gold); border-radius: 18px; background: #fff; box-shadow: 0 14px 34px rgba(43, 22, 51, .08); }

@media (max-width: 980px) {
    .jg-hero__inner { grid-template-columns: 1fr; }
    .jg-hero__gallery { min-height: 420px; }
    .jg-category-grid, .jg-trust__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jg-section-head--row, .jg-banner__inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 640px) {
    .jg-hero { padding-top: 34px; }
    .jg-hero h1 { font-size: clamp(42px, 13vw, 58px); overflow-wrap: anywhere; }
    .jg-actions, .jg-button { width: 100%; }
    .jg-hero__copy > p:not(.jg-eyebrow) { font-size: 16px; }
    .jg-hero__gallery { min-height: 330px; }
    .jg-photo { border-width: 6px; border-radius: 22px; }
    .jg-gift-tag { width: 108px; height: 108px; }
    .jg-category-grid, .jg-trust__grid { grid-template-columns: 1fr; }
    .j-product-card__actions { grid-template-columns: 1fr; }
}

/* Jonacart final fixes: Open Sans, compact header, global WooCommerce grids */
body,
button,
input,
select,
textarea,
.j-wordmark,
.jg-hero h1,
.jg-section-head h2,
.jg-banner h2,
.woocommerce-products-header__title,
.product_title {
    font-family: 'Open Sans', Arial, sans-serif !important;
}

.j-announcement__inner {
    min-height: 36px;
    justify-content: center;
    gap: 42px;
    font-size: 13px;
    letter-spacing: .01em;
}

.j-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 249, 238, .96);
    box-shadow: 0 18px 50px rgba(43, 22, 51, .08);
}

.j-header__main {
    display: grid;
    grid-template-columns: auto minmax(430px, 1fr) minmax(280px, 360px) auto;
    min-height: 82px;
    align-items: center;
    gap: 22px;
}

.j-menu-toggle {
    display: none;
}

.j-wordmark {
    font-size: 31px;
    font-weight: 800;
    letter-spacing: -.055em;
    min-width: max-content;
}

.j-nav {
    display: flex;
    min-height: auto;
    align-items: center;
    justify-content: center;
    gap: 4px;
    overflow: visible;
    border-top: 0;
    font-size: 14px;
    font-weight: 800;
}

.j-nav a {
    border-radius: 999px;
    padding: 10px 12px;
    color: #33293a;
}

.j-nav a:hover {
    background: #fff1f4;
    color: var(--jg-berry);
}

.j-search {
    min-height: 46px;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(43, 22, 51, .08);
}

.j-search input[type="search"] {
    padding-left: 18px;
    font-size: 14px;
}

.j-search button {
    width: 52px;
}

.j-header__icons {
    gap: 8px;
}

.j-header__icons a {
    width: 44px;
    height: 44px;
}

.jg-hero {
    padding-top: 72px;
}

.jg-hero h1 {
    max-width: 820px;
    font-size: clamp(54px, 5.7vw, 96px);
    font-weight: 800;
    line-height: .98;
    letter-spacing: -.06em;
}

.jg-section-head h2,
.jg-banner h2,
.woocommerce-products-header__title {
    font-weight: 800;
    letter-spacing: -.045em;
}

.woocommerce .j-main,
.woocommerce-page .j-main {
    width: min(calc(100% - 60px), 1540px);
    margin-inline: auto;
}

.post-type-archive-product .j-main,
.tax-product_cat .j-main,
.page-id-0 .j-main {
    padding-block: 56px 76px;
}

.woocommerce-products-header,
.j-page__header {
    padding: 44px 0 24px !important;
}

.woocommerce-products-header__title,
.j-page__header h1,
.page .j-page > h1 {
    font-size: clamp(42px, 4.2vw, 76px) !important;
    line-height: 1.02 !important;
}

.woocommerce .woocommerce-result-count {
    margin: 0 0 22px !important;
    color: var(--jg-muted);
    font-weight: 700;
}

.woocommerce .woocommerce-ordering {
    margin: 0 0 22px !important;
}

.woocommerce .woocommerce-ordering select {
    min-height: 42px;
    min-width: 220px;
    border: 1px solid var(--jg-line);
    border-radius: 999px;
    background: #fff;
    padding: 0 14px;
    color: var(--jg-ink);
    font-weight: 700;
}

.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce.columns-5 ul.products,
.woocommerce .products.columns-5,
.woocommerce .products.columns-4,
.woocommerce .products.columns-3,
.woocommerce .products.columns-2 {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 22px !important;
    clear: both;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce.columns-5 ul.products li.product,
.woocommerce .products.columns-5 li.product,
.woocommerce .products.columns-4 li.product,
.woocommerce .products.columns-3 li.product,
.woocommerce .products.columns-2 li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    min-width: 0;
}

.woocommerce ul.products li.product .j-product-card__media,
.j-product-card__media {
    aspect-ratio: 1 / 1;
}

.woocommerce ul.products li.product .j-product-card__media img,
.j-product-card__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

.woocommerce ul.products li.product .j-product-card__body {
    min-height: 220px;
}

.woocommerce ul.products li.product .j-product-card h3,
.j-product-card h3 {
    font-size: 15px;
    line-height: 1.32;
}

.j-product-card__price,
.woocommerce ul.products li.product .price {
    font-size: 16px !important;
    line-height: 1.3;
}

.j-product-card__availability {
    color: var(--jg-muted);
}

@media (max-width: 1320px) {
    .j-header__main {
        grid-template-columns: auto minmax(340px, 1fr) minmax(240px, 320px) auto;
        gap: 16px;
    }

    .j-nav {
        font-size: 13px;
    }

    .j-nav a {
        padding-inline: 9px;
    }

    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce.columns-5 ul.products,
    .woocommerce .products.columns-5,
    .woocommerce .products.columns-4,
    .woocommerce .products.columns-3,
    .woocommerce .products.columns-2 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 1100px) {
    .j-header__main {
        grid-template-columns: auto 1fr auto;
    }

    .j-menu-toggle {
        display: grid;
        border-radius: 999px;
    }

    .j-wordmark {
        font-size: 28px;
    }

    .j-nav {
        display: none;
        grid-column: 1 / -1;
        order: 4;
        padding: 10px 0 0;
    }

    .j-nav.is-open {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .j-search {
        grid-column: 1 / -1;
        order: 5;
        margin-bottom: 14px;
    }

    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce.columns-5 ul.products,
    .woocommerce .products.columns-5,
    .woocommerce .products.columns-4,
    .woocommerce .products.columns-3,
    .woocommerce .products.columns-2 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 760px) {
    .woocommerce .j-main,
    .woocommerce-page .j-main,
    .j-shell {
        width: calc(100% - 28px);
    }

    .j-announcement__inner span:not(:first-child) {
        display: none;
    }

    .jg-hero h1 {
        font-size: clamp(38px, 12vw, 54px);
        letter-spacing: -.045em;
    }

    .woocommerce .woocommerce-result-count,
    .woocommerce .woocommerce-ordering {
        float: none !important;
        width: 100%;
    }

    .woocommerce .woocommerce-ordering select {
        width: 100%;
    }

    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce.columns-5 ul.products,
    .woocommerce .products.columns-5,
    .woocommerce .products.columns-4,
    .woocommerce .products.columns-3,
    .woocommerce .products.columns-2 {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .woocommerce ul.products li.product .j-product-card__body {
        min-height: 0;
        padding: 13px;
    }

    .j-product-card__availability {
        display: none;
    }
}

@media (max-width: 430px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce.columns-5 ul.products,
    .woocommerce .products.columns-5,
    .woocommerce .products.columns-4,
    .woocommerce .products.columns-3,
    .woocommerce .products.columns-2 {
        grid-template-columns: 1fr !important;
    }
}

.j-page .j-content--commerce {
    max-width: none !important;
    width: 100%;
}

.j-content--commerce .woocommerce {
    width: 100%;
}

.j-content--commerce .woocommerce ul.products {
    margin-top: 10px !important;
}

.woocommerce ul.products li.product .j-product-card__body {
    min-height: 238px;
    display: flex;
    flex-direction: column;
}

.woocommerce ul.products li.product .j-product-card__price {
    margin-top: auto;
}

.j-product-card__actions {
    grid-template-columns: 1fr !important;
}

.j-product-card__button,
.j-product-card__button.button {
    width: 100%;
    min-height: 40px;
    border-radius: 14px !important;
    white-space: normal !important;
    text-align: center;
}

.j-product-card__link {
    justify-self: center;
    margin-top: 2px;
}

@media (min-width: 1321px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .woocommerce.columns-5 ul.products,
    .woocommerce .products.columns-5,
    .woocommerce .products.columns-4,
    .woocommerce .products.columns-3,
    .woocommerce .products.columns-2 {
        grid-template-columns: repeat(5, minmax(190px, 1fr)) !important;
    }
}

.j-product-card h3,
.j-product-card h3 a,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}

@media (max-width: 760px) {
    .j-page.j-shell {
        width: calc(100vw - 28px) !important;
        max-width: calc(100vw - 28px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .j-page.j-shell .j-content--commerce {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto;
        margin-right: auto;
    }

    .j-content--commerce,
    .j-content--commerce .woocommerce,
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden;
    }

    .woocommerce ul.products li.product,
    .j-product-card {
        max-width: 100% !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .woocommerce ul.products li.product .j-product-card__body {
        min-height: 0 !important;
        padding: 14px;
    }

    .j-product-card,
    .j-product-card *,
    .woocommerce ul.products li.product,
    .woocommerce ul.products li.product * {
        max-width: 100%;
    }

    .j-product-card__actions {
        width: 100% !important;
        min-width: 0 !important;
    }

    .j-product-card__button,
    .j-product-card__button.button {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}

@media (max-width: 760px) {
    html,
    body,
    body.jonacart-theme,
    .j-site,
    .j-main {
        max-width: 100vw !important;
        overflow-x: clip !important;
    }

    .j-header__main {
        width: calc(100vw - 28px) !important;
        max-width: calc(100vw - 28px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        grid-template-columns: auto minmax(0, 1fr) auto !important;
        overflow: hidden;
    }

    .j-header__icons {
        display: none !important;
    }

    .j-search {
        width: 100% !important;
        max-width: 100% !important;
    }

    .j-content--commerce .woocommerce ul.products,
    .woocommerce-page .j-content--commerce ul.products {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 16px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .j-content--commerce .woocommerce ul.products li.product,
    .woocommerce-page .j-content--commerce ul.products li.product {
        flex: 0 0 auto !important;
        width: min(100%, calc(100vw - 44px)) !important;
        max-width: calc(100vw - 44px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body .woocommerce ul.products,
    body.woocommerce ul.products,
    body.woocommerce-page ul.products {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        width: min(100%, 360px) !important;
        max-width: min(calc(100vw - 44px), 360px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        overflow: visible !important;
    }

    body .woocommerce ul.products li.product,
    body.woocommerce ul.products li.product,
    body.woocommerce-page ul.products li.product {
        flex: 0 0 auto !important;
        width: min(calc(100vw - 64px), 330px) !important;
        max-width: min(calc(100vw - 64px), 330px) !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body .woocommerce ul.products li.product .j-product-card {
        width: 100% !important;
        max-width: 100% !important;
    }

    .j-product-card h3,
    .j-product-card h3 a,
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        font-size: 16px !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    .j-product-card__body {
        width: min(calc(100vw - 104px), 286px) !important;
        max-width: min(calc(100vw - 104px), 286px) !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
        overflow: visible !important;
    }
}

/* Jonacart commerce flow redesign */
.j-page--commerce {
    padding-top: 58px;
    padding-bottom: 92px;
}

.j-page--commerce .j-page__header {
    display: grid;
    gap: 12px;
    max-width: none;
    margin: 0 0 18px;
    padding: 34px;
    border: 1px solid var(--jg-line);
    border-radius: 28px;
    background:
        radial-gradient(circle at 0 0, rgba(184, 50, 95, .12), transparent 30rem),
        radial-gradient(circle at 100% 0, rgba(231, 184, 93, .16), transparent 32rem),
        rgba(255, 255, 255, .56);
}

.j-page--commerce .j-page__header h1 {
    max-width: 980px;
    font-size: clamp(46px, 7vw, 86px);
    line-height: .95;
    letter-spacing: -.035em;
}

.j-commerce-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 28px;
}

.j-commerce-strip span {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    border: 1px solid var(--jg-line);
    border-radius: 999px;
    background: #fff;
    color: var(--jg-muted);
    padding: 7px 13px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.j-content--commerce {
    max-width: none !important;
    width: 100%;
}

.j-content--commerce > .woocommerce,
.j-content--commerce .wp-block-woocommerce-cart,
.j-content--commerce .wp-block-woocommerce-checkout {
    width: 100%;
}

.j-content--commerce .woocommerce-notices-wrapper,
.j-content--commerce .wc-block-components-notice-banner,
.j-content--commerce .woocommerce-info,
.j-content--commerce .woocommerce-message,
.j-content--commerce .woocommerce-error {
    border: 1px solid var(--jg-line) !important;
    border-radius: 18px !important;
    background: #fff !important;
    color: var(--jg-ink) !important;
    box-shadow: 0 18px 44px rgba(43, 22, 51, .07);
}

.j-content--commerce input[type="text"],
.j-content--commerce input[type="email"],
.j-content--commerce input[type="tel"],
.j-content--commerce input[type="password"],
.j-content--commerce input[type="number"],
.j-content--commerce select,
.j-content--commerce textarea,
.j-content--commerce .input-text,
.j-content--commerce .wc-block-components-text-input input,
.j-content--commerce .wc-block-components-combobox .wc-block-components-combobox-control input,
.j-content--commerce .wc-block-components-country-input input,
.j-content--commerce .wc-block-components-state-input input {
    min-height: 52px;
    border: 1.5px solid rgba(43, 22, 51, .22) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--jg-ink) !important;
    box-shadow: none !important;
}

.j-content--commerce label,
.j-content--commerce .wc-block-components-text-input label,
.j-content--commerce .wc-block-components-checkout-step__title,
.j-content--commerce .wc-block-components-title {
    color: var(--jg-plum);
    font-weight: 900;
}

.j-content--commerce .button,
.j-content--commerce button.button,
.j-content--commerce input.button,
.j-content--commerce .wc-block-components-button,
.j-content--commerce .wp-element-button {
    min-height: 52px;
    border-radius: 999px !important;
    background: var(--jg-berry) !important;
    color: #fff !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    box-shadow: 0 16px 34px rgba(184, 50, 95, .22);
    transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.j-content--commerce .button:hover,
.j-content--commerce button.button:hover,
.j-content--commerce input.button:hover,
.j-content--commerce .wc-block-components-button:hover,
.j-content--commerce .wp-element-button:hover {
    background: #9d284f !important;
    transform: translateY(-1px);
    box-shadow: 0 20px 42px rgba(184, 50, 95, .28);
}

.wc-block-cart,
.wc-block-checkout,
.woocommerce-cart .j-content--commerce .woocommerce,
.woocommerce-checkout .j-content--commerce .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
    gap: 30px;
    align-items: start;
}

.wp-block-woocommerce-checkout.wc-block-checkout > .wc-block-components-sidebar-layout.wc-block-checkout {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 430px) !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__form {
    width: 100% !important;
    max-width: none !important;
}

.wc-block-cart__main,
.wc-block-checkout__main,
.woocommerce-cart-form,
.woocommerce-checkout #customer_details,
.woocommerce-account:not(.logged-in) .woocommerce-form-login,
.woocommerce-account:not(.logged-in) .woocommerce-form-register,
.lost_reset_password {
    min-width: 0;
    border: 1px solid var(--jg-line);
    border-radius: 24px;
    background: rgba(255, 255, 255, .86);
    padding: 24px;
    box-shadow: 0 18px 44px rgba(43, 22, 51, .08);
}

.wc-block-cart__main,
.wc-block-checkout__main {
    grid-column: 1 / 2 !important;
    width: 100% !important;
    max-width: none !important;
}

.wc-block-cart__sidebar,
.wc-block-checkout__sidebar,
.cart-collaterals,
.woocommerce-checkout #order_review {
    border: 1px solid var(--jg-line) !important;
    border-radius: 24px !important;
    background: #fff !important;
    padding: 24px !important;
    box-shadow: 0 24px 70px rgba(43, 22, 51, .11);
}

.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
    grid-column: 2 / 3 !important;
    width: 100% !important;
    max-width: none !important;
}

.wc-block-cart__sidebar,
.wc-block-checkout__sidebar,
.cart-collaterals,
.woocommerce-checkout #order_review {
    position: sticky;
    top: 130px;
}

.wc-block-cart-items,
.wc-block-cart-items__row,
.wc-block-components-order-summary,
.wc-block-components-order-summary-item {
    border-color: var(--jg-line) !important;
}

.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
    border-radius: 16px;
    background: var(--jg-rose);
}

.wc-block-cart-item__product,
.wc-block-components-product-name {
    color: var(--jg-plum) !important;
    font-weight: 900 !important;
}

.wc-block-components-product-metadata,
.wc-block-cart-item__prices,
.wc-block-components-totals-item__description {
    color: var(--jg-muted) !important;
}

.wc-block-components-quantity-selector {
    min-height: 38px;
    border: 1px solid var(--jg-line) !important;
    border-radius: 999px !important;
    overflow: hidden;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
    width: 100% !important;
    min-height: 56px !important;
    padding: 0 24px !important;
    justify-content: center;
}

.wc-block-cart__submit-container,
.wc-block-components-checkout-place-order-button__text {
    width: 100%;
}

.wc-block-components-totals-footer-item {
    border-top: 1px solid var(--jg-line) !important;
    padding-top: 18px !important;
    color: var(--jg-plum);
    font-size: 24px;
    font-weight: 900;
}

.wc-block-checkout__main .wc-block-components-checkout-step {
    border: 1px solid var(--jg-line);
    border-radius: 22px;
    background: rgba(255, 255, 255, .86);
    margin: 0 0 18px;
    padding: 22px;
    box-shadow: 0 12px 30px rgba(43, 22, 51, .06);
}

.wc-block-components-checkout-step__heading {
    margin-bottom: 16px !important;
}

.wc-block-components-checkout-step__title {
    font-size: 24px !important;
    line-height: 1.2 !important;
}

.woocommerce-order {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
    gap: 28px;
    align-items: start;
}

.woocommerce-order-received .j-content--commerce > .woocommerce {
    display: block !important;
}

.woocommerce-order-received .woocommerce-order {
    width: 100% !important;
}

.woocommerce-order .woocommerce-notice,
.woocommerce-order .woocommerce-order-overview,
.j-order-next-steps {
    grid-column: 1 / -1;
}

.woocommerce-order .woocommerce-notice {
    margin: 0;
    border: 1px solid rgba(35, 122, 87, .22);
    border-radius: 24px;
    background: #e7f4ee;
    padding: 22px 24px;
    color: #1d6b4d;
    font-size: 22px;
    font-weight: 900;
}

.woocommerce-order .woocommerce-order-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    border: 1px solid var(--jg-line);
    border-radius: 24px;
    background: #fff;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 18px 44px rgba(43, 22, 51, .08);
}

.woocommerce-order .woocommerce-order-overview li {
    margin: 0;
    border-right: 1px solid var(--jg-line);
    padding: 20px;
    color: var(--jg-muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.woocommerce-order .woocommerce-order-overview li:last-child {
    border-right: 0;
}

.woocommerce-order .woocommerce-order-overview strong {
    display: block;
    margin-top: 6px;
    color: var(--jg-plum);
    font-size: 20px;
    text-transform: none;
}

.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-bacs-bank-details,
.j-order-next-steps {
    border: 1px solid var(--jg-line);
    border-radius: 24px;
    background: #fff;
    padding: 24px;
    box-shadow: 0 18px 44px rgba(43, 22, 51, .08);
}

.woocommerce-order-details h2,
.woocommerce-customer-details h2,
.j-order-next-steps h2 {
    margin: 0 0 18px;
    color: var(--jg-plum);
    font-size: 28px;
    line-height: 1.15;
}

.j-order-next-steps {
    display: grid;
    grid-template-columns: 1fr repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.j-order-next-steps div {
    border: 1px solid var(--jg-line);
    border-radius: 18px;
    background: var(--jg-cream);
    padding: 16px;
}

.j-order-next-steps span {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--jg-gold);
    color: var(--jg-plum);
    font-weight: 900;
}

.j-order-next-steps p {
    margin: 12px 0 0;
    color: var(--jg-muted);
    font-weight: 700;
}

.woocommerce-account:not(.logged-in) .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.woocommerce-lost-password:not(.logged-in) .j-content--account > .woocommerce {
    display: block;
    max-width: 760px;
    margin-inline: auto;
}

.woocommerce-lost-password:not(.logged-in) .lost_reset_password,
.woocommerce-lost-password:not(.logged-in) .woocommerce-ResetPassword {
    width: 100%;
}

.woocommerce-account:not(.logged-in) .j-auth-intro {
    grid-column: 1 / 2 !important;
    grid-row: 1 / 3 !important;
}

.woocommerce-account:not(.logged-in) .woocommerce > .woocommerce-notices-wrapper {
    grid-column: 2 / 3 !important;
}

.woocommerce-account:not(.logged-in) .woocommerce > .woocommerce-notices-wrapper:empty {
    display: none !important;
}

.woocommerce-account:not(.logged-in) .u-columns {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
}

.j-auth-intro {
    border: 1px solid var(--jg-line);
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0, rgba(231, 184, 93, .22), transparent 20rem),
        var(--jg-plum);
    color: #fff;
    padding: 28px;
    box-shadow: 0 24px 70px rgba(43, 22, 51, .16);
}

.j-auth-intro span {
    color: var(--jg-gold);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.j-auth-intro h2 {
    margin: 14px 0 12px;
    color: #fff;
    font-size: 34px;
    line-height: 1.05;
}

.j-auth-intro p {
    margin: 0;
    color: rgba(255, 255, 255, .74);
    font-weight: 700;
}

.j-auth-intro__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.j-auth-intro__chips em {
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    padding: 7px 10px;
    color: #fff;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}

.woocommerce-account:not(.logged-in) .u-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2 {
    width: auto;
    float: none;
    clear: none;
}

.woocommerce-account:not(.logged-in) .u-column1 {
    grid-column: 1 / 2 !important;
    grid-row: 1 !important;
}

.woocommerce-account:not(.logged-in) .u-column2 {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account .lost_reset_password,
.woocommerce-account .woocommerce-ResetPassword {
    border: 1px solid var(--jg-line);
    border-radius: 24px;
    background: #fff;
    padding: 24px;
    box-shadow: 0 18px 44px rgba(43, 22, 51, .08);
}

.woocommerce-account .woocommerce-form-login .form-row,
.woocommerce-account .woocommerce-form-register .form-row,
.woocommerce-account .lost_reset_password .form-row {
    margin-bottom: 16px;
}

.woocommerce-account .woocommerce-form-login__rememberme {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-left: 14px;
}

.woocommerce-account.logged-in .j-content--account > .woocommerce {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    float: none;
    width: auto;
    grid-column: 1 / 2 !important;
    grid-row: 1 !important;
    border: 1px solid var(--jg-line);
    border-radius: 24px;
    background: #fff;
    padding: 12px;
    box-shadow: 0 18px 44px rgba(43, 22, 51, .08);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: flex;
    min-height: 44px;
    align-items: center;
    border-radius: 14px;
    padding: 10px 12px;
    color: var(--jg-muted);
    font-weight: 900;
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
    background: var(--jg-rose);
    color: var(--jg-berry);
}

.woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: auto;
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
    min-width: 0;
    border: 1px solid var(--jg-line);
    border-radius: 24px;
    background: #fff;
    padding: 24px;
    box-shadow: 0 18px 44px rgba(43, 22, 51, .08);
}

.j-account-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0 0;
}

.j-account-dashboard-card {
    display: grid;
    gap: 10px;
    border: 1px solid var(--jg-line);
    border-radius: 20px;
    background: var(--jg-cream);
    padding: 18px;
}

.j-account-dashboard-card strong {
    color: var(--jg-plum);
    font-size: 18px;
}

.j-account-dashboard-card span {
    color: var(--jg-muted);
    font-size: 14px;
    font-weight: 700;
}

.j-account-dashboard-card em {
    color: var(--jg-berry);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}

.woocommerce-account table.shop_table,
.woocommerce-order table.shop_table {
    overflow: hidden;
    border: 1px solid var(--jg-line) !important;
    border-radius: 18px;
    background: #fff;
}

.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td,
.woocommerce-order table.shop_table th,
.woocommerce-order table.shop_table td {
    border-color: var(--jg-line) !important;
    padding: 14px 16px !important;
}

@media (max-width: 1100px) {
    .wc-block-cart,
    .wc-block-checkout,
    .woocommerce-cart .j-content--commerce .woocommerce,
    .woocommerce-checkout .j-content--commerce .woocommerce,
    .woocommerce-account:not(.logged-in) .woocommerce,
    .woocommerce-account.logged-in .j-content--account > .woocommerce,
    .woocommerce-order {
        grid-template-columns: 1fr;
    }

    .woocommerce-account:not(.logged-in) .j-auth-intro,
    .woocommerce-account:not(.logged-in) .woocommerce > .woocommerce-notices-wrapper,
    .woocommerce-account:not(.logged-in) .u-columns {
        grid-column: auto !important;
        grid-row: auto !important;
    }

    .wc-block-cart__main,
    .wc-block-checkout__main,
    .wc-block-cart__sidebar,
    .wc-block-checkout__sidebar {
        grid-column: auto !important;
    }

    .wc-block-cart__sidebar,
    .wc-block-checkout__sidebar,
    .cart-collaterals,
    .woocommerce-checkout #order_review {
        position: static;
    }

    .j-order-next-steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .j-page--commerce {
        padding-top: 30px;
    }

    .j-page--commerce .j-page__header {
        padding: 22px;
        border-radius: 22px;
    }

    .j-page--commerce .j-page__header h1 {
        font-size: clamp(38px, 13vw, 58px);
    }

    .wc-block-cart__main,
    .wc-block-checkout__main,
    .woocommerce-cart-form,
    .woocommerce-checkout #customer_details,
    .woocommerce-account:not(.logged-in) .woocommerce-form-login,
    .woocommerce-account:not(.logged-in) .woocommerce-form-register,
    .lost_reset_password,
    .wc-block-cart__sidebar,
    .wc-block-checkout__sidebar,
    .cart-collaterals,
    .woocommerce-checkout #order_review,
    .woocommerce-account .woocommerce-MyAccount-content {
        padding: 16px !important;
        border-radius: 18px !important;
    }

    .woocommerce-account:not(.logged-in) .u-columns,
    .woocommerce-order .woocommerce-order-overview,
    .j-account-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .woocommerce-order .woocommerce-order-overview li {
        border-right: 0;
        border-bottom: 1px solid var(--jg-line);
    }

    .woocommerce-order .woocommerce-order-overview li:last-child {
        border-bottom: 0;
    }
}
