.pp-notice-bar {
    min-height: 35px;
    padding: 8px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 9px;
    color: var(--pp-lilac-ink);
    background: var(--pp-lilac-100);
    font-size: 10px;
    line-height: 1.5;
    text-align: center;
    letter-spacing: 0.02em;
}
.pp-status-dot {
    width: 4px;
    height: 4px;
    background: #8e73cf;
    border-radius: 50%;
    flex-shrink: 0;
}
.pp-header {
    position: sticky;
    top: 0;
    background: #fffffff2;
    backdrop-filter: blur(16px);
    z-index: 30;
    border-bottom: 1px solid #eeedf1;
}
.admin-bar .pp-header {
    top: 32px;
}
.pp-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 88px;
}
.pp-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--pp-heading);
    font-size: 25px;
    font-weight: 500;
    letter-spacing: -0.04em;
    white-space: nowrap;
}
.pp-brand > svg {
    width: 31px;
    height: 36px;
}
.pp-brand-dot {
    color: #9e83da;
}
.pp-brand-symbol {
    display: inline-flex;
    width: 28px;
    height: 30px;
    padding: 5px;
    border: 1px solid #d2c9df;
    border-radius: 9px 12px 9px 12px;
    background: var(--pp-chrome);
    transform: rotate(-10deg);
}
.pp-brand-symbol > span {
    width: 100%;
    height: 100%;
    border: 1px solid #e6e2eb;
    border-radius: 4px 7px 4px 7px;
    background: #fff;
}
.pp-mobile-account {
    display: none;
}
.pp-logo {
    max-width: 220px;
    max-height: 55px;
    width: auto;
    object-fit: contain;
}
.pp-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 32px;
    font-size: 12px;
    font-weight: 500;
}
.pp-menu a {
    padding-block: 14px;
    transition: color 0.18s;
}
.pp-menu a:hover {
    color: #7c6897;
}
.pp-header-actions {
    display: flex;
    align-items: center;
    gap: 15px;
}
.pp-icon-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: transparent;
    min-width: 44px;
    min-height: 44px;
    border-radius: 50%;
}
.pp-icon-button:hover {
    background: var(--pp-lilac);
}
.pp-icon-button svg {
    width: 21px;
    height: 21px;
}
.pp-bag-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 8px 13px;
    gap: 9px;
    border: 1px solid var(--pp-cyan-300);
    background: var(--pp-cyan-100);
    color: var(--pp-cyan-ink);
    border-radius: 9px;
    font-size: 12px;
}
.pp-bag-button > svg {
    width: 17px;
    height: 17px;
}
[data-pp-cart-count] {
    min-width: 20px;
    text-align: center;
    font-size: 10px;
    line-height: 20px;
    border-radius: 50%;
    background: var(--pp-lilac-300);
    color: var(--pp-lilac-ink);
}
.pp-menu-toggle {
    display: none;
}
.pp-button,
.woocommerce a.button.pp-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 51px;
    padding: 15px 24px;
    gap: 10px;
    border-radius: 9px;
    border: 1px solid transparent;
    font-family: var(--pp-body);
    font-size: 12px;
    line-height: 1.5;
    font-weight: 600;
    text-align: center;
    white-space: normal;
    transition:
        background 0.2s,
        box-shadow 0.2s,
        transform 0.2s;
}
.pp-button-primary {
    color: var(--pp-lilac-ink);
    background:
        linear-gradient(var(--pp-lilac-500), var(--pp-lilac-500)) padding-box,
        var(--pp-chrome) border-box;
    box-shadow:
        0 4px 14px #7f60b91a,
        inset 0 1px 0 #ffffff50;
}
.pp-button-primary:hover {
    background:
        linear-gradient(var(--pp-lilac-600), var(--pp-lilac-600)) padding-box,
        var(--pp-chrome) border-box;
    box-shadow: 0 5px 18px #7f60b929;
    transform: translateY(-1px);
}
.pp-button-secondary,
.woocommerce a.button.pp-button-secondary {
    color: var(--pp-cyan-ink);
    background: var(--pp-cyan-500);
    border-color: #91d4e4;
}
.pp-button-secondary:hover,
.woocommerce a.button.pp-button-secondary:hover {
    background: var(--pp-cyan-600);
}
.pp-button-small,
.woocommerce a.button.pp-button-small {
    min-height: 44px;
    padding: 11px 17px;
    font-size: 11px;
}
.pp-text-link {
    display: inline-block;
    padding-block: 5px;
    border-bottom: 2px solid var(--pp-lilac-300);
    color: var(--pp-lilac-ink);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.6;
}
.pp-text-link:hover {
    border-color: var(--pp-cyan-600);
}
.pp-actions {
    display: flex;
    align-items: center;
    gap: 26px;
    flex-wrap: wrap;
}
.pp-chrome-line {
    display: block;
    width: 92px;
    height: 4px;
    border-radius: 4px;
    background: var(--pp-chrome);
}
.pp-footer {
    padding-block: 60px 24px;
    background: #f8f5ff;
    border-top: 1px solid var(--pp-border);
}
.pp-footer-top {
    display: flex;
    justify-content: space-between;
    gap: 32px;
    padding-bottom: 54px;
}
.pp-footer-top p {
    font-size: 12px;
    color: var(--pp-muted);
    margin: 14px 0 0;
}
.pp-footer-top nav {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    padding-top: 8px;
    font-size: 12px;
}
.pp-footer-top nav a:hover,
.pp-footer-bottom a:hover {
    text-decoration: underline;
}
.pp-footer-bottom {
    padding-top: 22px;
    border-top: 1px solid var(--pp-border);
    display: flex;
    justify-content: space-between;
    gap: 24px;
    font-size: 10px;
    color: var(--pp-muted);
}
.pp-footer-bottom p {
    margin: 0;
}
.pp-cart {
    margin: 0 0 0 auto;
    padding: 0;
    border: 0;
    width: min(100%, 460px);
    max-width: 100%;
    height: 100%;
    max-height: 100dvh;
    color: var(--pp-ink);
    background: #fff;
    box-shadow: -8px 0 60px #16122418;
}
.pp-cart[open] {
    display: flex;
    flex-direction: column;
    animation: pp-drawer-in 0.25s ease-out;
}
.pp-cart::backdrop {
    background: #211e325c;
    backdrop-filter: blur(3px);
}
.pp-cart-top {
    padding: 25px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid var(--pp-border);
    background: linear-gradient(110deg, var(--pp-lilac-100), #fff 75%);
    border-image: var(--pp-chrome) 1;
}
.pp-cart-top h2 {
    font-size: 31px;
}
#pp-cart-contents {
    overflow: auto;
    overscroll-behavior: contain;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.pp-cart-empty {
    text-align: center;
    padding: 80px 35px;
    margin-block: auto;
}
.pp-empty-bag {
    display: inline-flex;
    padding: 25px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: var(--pp-lilac);
}
.pp-empty-bag svg {
    width: 34px;
    height: 34px;
}
.pp-cart-empty p {
    margin: 18px 0 28px;
    color: var(--pp-muted);
    font-size: 13px;
}
.pp-cart-items {
    margin: 0;
    padding: 0 28px;
    list-style: none;
}
.pp-cart-item {
    display: flex;
    align-items: flex-start;
    gap: 17px;
    padding-block: 25px;
    border-bottom: 1px solid var(--pp-border);
}
.pp-cart-image {
    width: 82px;
    flex-shrink: 0;
    border-radius: 10px;
    background: var(--pp-mist);
    overflow: hidden;
}
.pp-cart-image img {
    aspect-ratio: 1;
    object-fit: contain;
}
.pp-cart-item-info {
    flex: 1;
    min-width: 0;
    font-size: 12px;
}
.pp-cart-product-title {
    display: block;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}
.pp-cart-item-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
}
.pp-quantity {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--pp-border);
    border-radius: 8px;
}
.pp-quantity button {
    width: 34px;
    height: 40px;
    background: transparent;
    padding: 9px;
}
.pp-quantity button:hover {
    background: var(--pp-lilac);
}
.pp-quantity svg {
    width: 14px;
    height: 14px;
}
.pp-quantity > span {
    min-width: 23px;
    text-align: center;
}
.pp-remove {
    padding: 10px 0;
    background: transparent;
    font-size: 11px;
    color: var(--pp-muted);
    text-decoration: underline;
}
.pp-cart-summary {
    margin-top: auto;
    padding: 30px 28px;
    background: var(--pp-cyan-100);
}
.pp-cart-summary > div {
    display: flex;
    justify-content: space-between;
}
.pp-cart-summary p {
    margin-block: 10px 22px;
    font-size: 11px;
    color: var(--pp-muted);
}
.pp-cart-summary .pp-button {
    display: flex;
}
.pp-cart-summary > .pp-text-link {
    display: table;
    margin: 16px auto 0;
}
.pp-cart-message {
    margin: 0;
    padding: 0 28px;
    font-size: 12px;
}
.pp-cart-message:not(:empty) {
    padding-block: 12px;
}
@keyframes pp-drawer-in {
    from {
        opacity: 0.3;
        transform: translateX(35px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
@media (max-width: 960px) {
    .pp-menu {
        gap: 22px;
    }
    .pp-header-actions {
        gap: 5px;
    }
    .pp-header-inner {
        gap: 15px;
    }
}
@media (max-width: 760px) {
    .pp-header-inner {
        min-height: 76px;
    }
    .pp-brand {
        font-size: 23px;
        gap: 8px;
    }
    .pp-brand > svg {
        width: 28px;
        height: 32px;
    }
    .pp-menu-toggle {
        display: inline-flex;
    }
    .pp-account-link,
    .pp-bag-label {
        display: none;
    }
    .pp-bag-button {
        padding: 8px 9px;
        border-color: transparent;
    }
    .pp-header-actions {
        gap: 1px;
    }
    .pp-navigation {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        padding: 22px var(--pp-gutter) 28px;
        background: #fff;
        border-bottom: 1px solid var(--pp-border);
        box-shadow: var(--pp-shadow);
    }
    .pp-menu {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }
    .pp-menu a {
        display: block;
        font-size: 16px;
    }
    .pp-mobile-account {
        display: block;
        padding-block: 14px;
        font-size: 16px;
    }
    .js .pp-navigation:not(.is-open) {
        display: none;
    }
    html:not(.js) .pp-header {
        position: relative;
        margin-bottom: 200px;
    }
    .pp-footer-top {
        flex-direction: column;
        padding-bottom: 35px;
    }
    .pp-footer-bottom {
        flex-wrap: wrap;
        gap: 12px;
    }
    .pp-footer-bottom p {
        order: 3;
        width: 100%;
    }
}
@media (max-width: 782px) {
    .admin-bar .pp-header {
        top: 46px;
    }
}
@media (max-width: 360px) {
    .pp-header-inner {
        gap: 6px;
    }
    .pp-brand {
        font-size: 21px;
    }
    .pp-brand-symbol {
        display: none;
    }
    .pp-logo {
        max-width: 140px;
    }
}
@media (max-width: 600px) {
    .admin-bar .pp-header {
        top: 0;
    }
}

/* Original supplied logo, shared across every page header and footer. */
.pp-brand .pp-logo {
    display: block;
    width: 225px;
    height: auto;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
}
.pp-footer .pp-brand .pp-logo { width: 234px; }
@media (max-width: 600px) {
    .pp-header .pp-brand .pp-logo { width: 176px; }
}
@media (max-width: 360px) {
    .pp-header .pp-brand .pp-logo { width: 140px; }
}

/* Footer directory and editable company information. */
.pp-footer-grid { display: grid; grid-template-columns: 1.4fr .8fr 1fr 1fr; gap: 32px; padding-bottom: 48px; }
.pp-footer-identity p { margin: 16px 0 12px; color: var(--pp-muted); font-size: 12px; }
.pp-footer-brand-note { display: inline-block; font-size: 10px; color: var(--pp-cyan-ink); background: var(--pp-cyan-100); border: 1px solid #d5eaf1; border-radius: 6px; padding: 6px 10px; }
.pp-footer-column { min-width: 0; }
.pp-footer-column h2 { font-size: 14px; font-weight: 600; margin: 6px 0 18px; }
.pp-footer-column ul { margin: 0; padding: 0; list-style: none; }
.pp-footer-column li { margin: 0; }
.pp-footer-column li > a, .pp-footer-column li > span { display: block; padding: 10px 0; font-size: 12px; line-height: 1.5; }
.pp-footer-column a { text-underline-offset: 4px; }
.pp-footer-column a:hover { color: var(--pp-lilac-ink); text-decoration: underline; }
.pp-footer-pending { color: var(--pp-muted); }
.pp-footer-contact h3 { font-size: 11px; font-weight: 600; margin: 22px 0 8px; color: var(--pp-muted); }
.pp-footer-contact address, .pp-footer-contact p, .pp-footer-contact > a { font-size: 12px; line-height: 1.8; font-style: normal; margin: 0; overflow-wrap: anywhere; }
.pp-footer-column a:focus-visible { outline: 2px solid #8260b4; outline-offset: 4px; border-radius: 2px; }
@media (max-width: 1024px) { .pp-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pp-footer-identity { grid-column: 1 / -1; } }
@media (max-width: 600px) { .pp-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; } .pp-footer-contact { grid-column: 1 / -1; } .pp-footer-column li > a, .pp-footer-column li > span { min-height: 44px; } }
/* A mobile sheet with space left visible for context. */
.pp-cart::backdrop { background: rgba(28, 23, 42, .35); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
@media (max-width: 600px) {
    dialog.pp-cart { width: 85vw; max-width: 85vw; }
    .pp-cart-top { padding: 20px 16px; }
    .pp-cart-top h2 { font-size: 25px; }
    .pp-cart-items { padding-inline: 16px; }
    .pp-cart-item { grid-template-columns: 48px minmax(0, 1fr); gap: 12px; }
    .pp-cart-image { width: 48px; }
    .pp-cart-summary { padding: 20px 16px; }
    .pp-cart-product-title { overflow-wrap: anywhere; }
    .pp-cart-item-actions { flex-wrap: wrap; gap: 10px; }
}
/* Main menu accommodates six destinations across phone, tablet and desktop. */
.pp-menu a { display: inline-flex; align-items: center; gap: 8px; }
.pp-menu .pp-icon { width: 18px; height: 18px; flex-shrink: 0; }
.pp-menu-pending { display: block; padding-block: 14px; font-size: 12px; color: var(--pp-muted); }
@media (min-width: 1101px) { .pp-menu { gap: 22px; } .pp-header .pp-account-link { display: none; } }
@media (max-width: 1100px) {
    .pp-menu-toggle { display: inline-flex; }
    .pp-header .pp-account-link { display: none; }
    .pp-navigation { position: absolute; top: 100%; left: 0; width: 100%; padding: 14px var(--pp-gutter) 22px; background: #fff; border-bottom: 1px solid var(--pp-border); box-shadow: var(--pp-shadow); max-height: calc(100dvh - 150px); overflow-y: auto; overscroll-behavior: contain; }
    .pp-menu { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
    .pp-menu li { border-bottom: 1px solid #eee8f5; }
    .pp-menu li:last-child { border-bottom: 0; }
    .pp-menu a, .pp-menu-pending { display: flex; align-items: center; gap: 12px; padding: 15px 12px; min-height: 50px; font-size: 16px; border-radius: 8px; }
    .pp-menu a:hover { background: var(--pp-lilac-100); }
    .pp-menu .pp-icon { color: var(--pp-lilac-ink); width: 20px; height: 20px; }
    .js .pp-navigation:not(.is-open) { display: none; }
    html:not(.js) .pp-header { position: relative; margin-bottom: 365px; }
}
#pp-footer-contact-title { scroll-margin-top: 130px; }

/* Match the bag and responsive menu controls without a permanent color tile. */
.pp-header .pp-bag-button {
    position: relative;
    width: 44px;
    height: 44px;
    min-height: 44px;
    flex-shrink: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--pp-ink);
}
.pp-header .pp-bag-label { display: none; }
.pp-header .pp-bag-button > svg { width: 21px; height: 21px; }
.pp-header .pp-bag-button [data-pp-cart-count] {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 18px;
    height: 18px;
    line-height: 18px;
    padding-inline: 3px;
}
.pp-dialog-open .pp-header .pp-bag-button,
.pp-header .pp-menu-toggle[aria-expanded=true],
.pp-header .pp-bag-button:focus-visible {
    background: var(--pp-lilac);
}
@media (hover: hover) {
    .pp-header .pp-bag-button:hover { background: var(--pp-lilac); }
}

/* Shared right-side navigation sheet and desktop account control. */
@media (min-width: 1101px) {
    .pp-header .pp-account-link { display: inline-flex; width: 44px; height: 44px; border: 1px solid var(--pp-border); }
}
.pp-mobile-menu {
    margin: 0 0 0 auto; padding: 0; border: 0;
    width: min(85vw, 420px); max-width: 100%; height: 100dvh; max-height: 100dvh;
    color: var(--pp-ink); background: #fff; box-shadow: -8px 0 60px #16122418;
}
.pp-mobile-menu[open] { display: flex; flex-direction: column; animation: pp-drawer-in .25s ease-out; }
.pp-mobile-menu::backdrop { background: rgba(28,23,42,.35); backdrop-filter: blur(4px); }
.pp-mobile-menu-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 24px 20px; border-bottom: 1px solid var(--pp-border); background: linear-gradient(110deg,var(--pp-lilac-100),#fff 75%); }
.pp-mobile-menu-top .pp-brand { min-width: 0; }
.pp-mobile-menu-top .pp-logo { width: 200px; }
.pp-mobile-menu-top button { flex-shrink: 0; }
.pp-mobile-menu-links { padding: 20px; overflow-y: auto; overscroll-behavior: contain; flex: 1; min-height: 0; }
.pp-mobile-menu-policies { padding: 16px 20px max(24px, env(safe-area-inset-bottom)); border-top: 1px solid var(--pp-border); }
.pp-mobile-menu-policies ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0 18px; }
.pp-mobile-menu-policies a, .pp-mobile-menu-policies .pp-footer-pending { display: inline-flex; align-items: center; min-height: 44px; font-size: 11px; }
@media (max-width: 1100px) {
    .js .pp-header .pp-navigation { display: none; }
    html:not(.js) .pp-menu-toggle { display: none; }
}
@media (prefers-reduced-motion: reduce) { .pp-mobile-menu[open] { animation: none; } }

/* More room for desktop bag contents; retain tablet and phone sizing. */
@media (min-width: 1101px) {
    dialog.pp-cart { width: 560px; }
}
