.public-theme {
    --public-danger: #a53a46;
    --public-danger-soft: #fff3f4;
    --public-success: #166b5b;
    --public-success-soft: #edf8f5;
}

.public-theme :is(.selection-page, .cart-page, .checkout-page, .account-page) {
    color: var(--public-ink);
}

.public-theme :is(.selection-page, .cart-page, .checkout-page, .account-page) :is(input, select, textarea)[aria-invalid="true"] {
    border-color: var(--public-danger) !important;
    outline: 3px solid var(--public-danger);
    outline-offset: 1px;
}

.public-theme :is(.selection-page, .cart-page) {
    width: min(var(--public-width), calc(100% - clamp(2rem, 6vw, 5rem)));
    max-width: none;
    margin-inline: auto;
}

.public-theme :is(.selection-page, .cart-page) h1,
.public-theme .checkout-page h1,
.public-theme .account-title {
    color: var(--public-ink);
    font-weight: 760;
    letter-spacing: -0.035em;
}

.public-theme :is(.selection-page, .cart-page, .checkout-page, .account-page) :is(h1, h2, h3) {
    text-wrap: balance;
}

.public-theme :is(.selection-page, .cart-page, .checkout-page, .account-page) :is(p, li, dd, dt, label) {
    overflow-wrap: anywhere;
}

/* Favorites and comparison: the product card itself remains shared. */
.public-theme .selection-page {
    min-height: 65vh;
    padding-block: clamp(2.25rem, 6vw, 4.75rem) clamp(4rem, 8vw, 7rem);
}

.public-theme .selection-page__back {
    align-items: center;
    color: var(--public-accent);
    display: inline-flex;
    font-size: 0.88rem;
    font-weight: 700;
    gap: 0.45rem;
    min-height: 2.75rem;
    text-decoration: none;
    text-underline-offset: 0.25em;
}

.public-theme .selection-page__back:hover {
    color: var(--public-accent-hover);
    text-decoration: underline;
}

.public-theme .selection-page__heading {
    max-width: 52rem;
    margin: clamp(1.75rem, 4vw, 2.75rem) 0 clamp(2rem, 4vw, 3rem);
}

.public-theme .selection-page__heading h1 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.08;
}

.public-theme .selection-page__heading > p:last-child {
    max-width: 62ch;
    margin: 1rem 0 0;
    color: var(--public-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.public-theme .selection-page__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 2.3vw, 1.5rem);
}

.public-theme .selection-page__empty {
    display: grid;
    min-height: 19rem;
    place-content: center;
    gap: 1.25rem;
    margin-top: 1rem;
    padding: clamp(2.25rem, 8vw, 5.5rem) clamp(1.25rem, 6vw, 4rem);
    border: 1px solid var(--public-line);
    border-radius: var(--public-radius);
    background: var(--public-soft);
    text-align: center;
}

.public-theme .selection-page__empty h2 {
    max-width: 28ch;
    margin: 0;
    color: var(--public-ink);
    font-size: clamp(1.2rem, 2.4vw, 1.55rem);
    line-height: 1.3;
}

.public-theme .selection-page__empty .button {
    justify-self: center;
}

/* Shared action treatment for these journeys. */
.public-theme :is(.cart-page, .checkout-page, .account-page) :is(.button, .account-button, .account-secondary-button, .checkout-submit, .checkout-whatsapp button) {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 720;
    justify-content: center;
    line-height: 1.2;
    min-height: 2.875rem;
    padding: 0.72rem 1.05rem;
    text-decoration: none;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.public-theme :is(.selection-page, .cart-page, .checkout-page, .account-page) :where([hidden]) {
    display: none !important;
}

.public-theme :is(.cart-page, .checkout-page, .account-page) :is(.button, .account-button, .checkout-submit) {
    color: #fff;
    background: var(--public-accent);
}

.public-theme :is(.cart-page, .checkout-page, .account-page) :is(.button, .account-button, .checkout-submit):hover {
    background: var(--public-accent-hover);
    box-shadow: 0 0.5rem 1.25rem rgb(23 105 117 / 16%);
}

.public-theme :is(.cart-page, .checkout-page, .account-page) :is(.button, .account-button, .checkout-submit):active {
    transform: translateY(1px);
}

.public-theme :is(.cart-page, .checkout-page, .account-page) :is(.button, .account-button, .checkout-submit):disabled,
.public-theme .account-secondary-button:disabled {
    cursor: not-allowed;
    opacity: 0.58;
    box-shadow: none;
    transform: none;
}

/* Cart */
.public-theme .cart-page {
    min-height: 65vh;
    padding-block: clamp(2.25rem, 6vw, 4.5rem) clamp(4rem, 8vw, 7rem);
}

.public-theme .cart-heading {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.public-theme .cart-heading h1 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.08;
}

.public-theme .cart-page .cart-muted {
    color: var(--public-muted);
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0.8rem 0 0;
}

.public-theme .cart-continue,
.public-theme .account-store-link {
    align-items: center;
    color: var(--public-accent);
    display: inline-flex;
    flex-shrink: 0;
    font-size: 0.88rem;
    font-weight: 700;
    gap: 0.5rem;
    min-height: 2.75rem;
    text-decoration: none;
    text-underline-offset: 0.25em;
}

.public-theme :is(.cart-continue, .account-store-link):hover {
    color: var(--public-accent-hover);
    text-decoration: underline;
}

.public-theme .cart-layout {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 23rem);
    gap: clamp(1.25rem, 3vw, 2rem);
}

.public-theme .cart-main {
    display: grid;
    gap: 1.25rem;
    min-width: 0;
}

.public-theme :is(.cart-items, .cart-benefits-panel, .cart-summary, .cart-empty) {
    border: 1px solid var(--public-line);
    border-radius: var(--public-radius);
    background: #fff;
    box-shadow: 0 1rem 2.5rem -2rem rgb(16 46 64 / 34%);
}

.public-theme .cart-section-heading {
    align-items: center;
    border-bottom: 1px solid var(--public-line);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.15rem clamp(1.15rem, 3vw, 1.6rem);
}

.public-theme .cart-page h2 {
    color: var(--public-ink);
    font-size: 1.08rem;
    line-height: 1.35;
    margin: 0;
}

.public-theme .cart-count {
    border: 1px solid var(--public-line);
    border-radius: 999px;
    color: var(--public-muted);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.4rem 0.68rem;
    white-space: nowrap;
}

.public-theme .cart-item {
    align-items: start;
    display: grid;
    grid-template-columns: 6.25rem minmax(0, 1fr) auto;
    gap: clamp(1rem, 2.5vw, 1.5rem);
    padding: clamp(1.25rem, 3vw, 1.65rem);
}

.public-theme .cart-item + .cart-item {
    border-top: 1px solid var(--public-line);
}

.public-theme .cart-thumbnail {
    align-items: center;
    aspect-ratio: 4 / 5;
    background: var(--public-soft);
    border: 1px solid var(--public-line);
    border-radius: 12px;
    color: var(--public-muted);
    display: flex;
    justify-content: center;
    overflow: hidden;
    padding: 0.5rem;
    text-align: center;
    width: 6.25rem;
}

.public-theme .cart-thumbnail .product-reference-image {
    flex: 0 0 auto;
    margin: 0;
    width: 4.75rem;
}

.public-theme .cart-item-copy {
    min-width: 0;
}

.public-theme .cart-item h3 {
    margin: 0;
    color: var(--public-ink);
    font-size: 1rem;
    line-height: 1.45;
}

.public-theme .cart-item h3 a {
    color: inherit;
    text-decoration: none;
    text-underline-offset: 0.2em;
}

.public-theme .cart-item h3 a:hover {
    color: var(--public-accent);
    text-decoration: underline;
}

.public-theme .cart-quantity-form {
    margin-top: 1.15rem;
}

.public-theme .cart-quantity-form label,
.public-theme .cart-field label {
    color: var(--public-muted);
    display: block;
    font-size: 0.76rem;
    font-weight: 720;
    margin-bottom: 0.45rem;
}

.public-theme .cart-quantity-controls {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.public-theme .cart-page :is(input, select, textarea) {
    min-width: 0;
    min-height: 2.875rem;
    border: 1px solid #c7d8dd;
    border-radius: 10px;
    background: #fff;
    color: var(--public-ink);
    font: inherit;
    padding: 0.68rem 0.78rem;
}

.public-theme .cart-page :is(input, select, textarea):hover {
    border-color: #9bbac0;
}

.public-theme .cart-page :is(input, select, textarea):focus {
    border-color: var(--public-accent);
    outline: 3px solid var(--public-accent);
    outline-offset: 1px;
}

.public-theme .cart-quantity-controls input {
    width: 4.5rem;
    text-align: center;
}

.public-theme .cart-page .cart-button-secondary,
.public-theme .account-secondary-button {
    border-color: var(--public-line);
    color: var(--public-accent);
    background: var(--public-soft);
}

.public-theme .cart-page .cart-button-secondary:hover,
.public-theme .account-secondary-button:not(:disabled):hover {
    border-color: #a8c5ca;
    color: var(--public-accent-hover);
    background: #eaf4f5;
    box-shadow: none;
}

.public-theme .cart-item-end {
    align-items: flex-end;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    justify-content: space-between;
}

.public-theme .cart-item-total {
    margin: 0;
    text-align: right;
}

.public-theme .cart-item-total span {
    color: var(--public-muted);
    display: block;
    font-size: 0.75rem;
    margin-bottom: 0.35rem;
}

.public-theme .cart-item-total strong,
.public-theme .cart-summary dd,
.public-theme .cart-cashback strong {
    color: var(--public-accent);
    font-variant-numeric: tabular-nums;
}

.public-theme .cart-item-total strong {
    font-size: 1.08rem;
    white-space: nowrap;
}

.public-theme .cart-text-button {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--public-muted);
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    min-height: 2.5rem;
    padding: 0.35rem 0.15rem;
    text-decoration: underline;
    text-underline-offset: 0.25em;
}

.public-theme .cart-text-button:hover {
    color: var(--public-danger);
}

.public-theme .cart-list-footer {
    border-top: 1px solid var(--public-line);
    display: flex;
    justify-content: flex-end;
    padding: 0.35rem clamp(1.15rem, 3vw, 1.6rem);
}

.public-theme .cart-benefits-panel {
    padding: clamp(1.2rem, 3vw, 1.6rem);
}

.public-theme .cart-benefits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.25rem;
    margin-top: 1.25rem;
}

.public-theme .cart-field {
    min-width: 0;
}

.public-theme .cart-field input {
    width: 100%;
}

.public-theme .cart-wallet-balance {
    color: var(--public-muted);
    font-size: 0.75rem;
    margin: 0.55rem 0 0;
}

.public-theme .cart-wallet-balance strong {
    color: var(--public-accent);
    font-variant-numeric: tabular-nums;
}

.public-theme .cart-benefit-form > .button { margin-top: 1rem; }
.public-theme .cart-wallet-card { margin-top: 0.75rem; padding: 1rem; border: 1px solid var(--public-line); border-radius: 0.85rem; background: var(--public-soft); }
.public-theme .cart-wallet-card .cart-wallet-balance { margin: 0 0 0.75rem; font-size: 0.9rem; }
.public-theme .cart-wallet-card .button { width: 100%; }
.public-theme .cart-wallet-card .button:disabled { opacity: 0.55; cursor: not-allowed; }
.public-theme .cart-wallet-card .cart-muted { margin: 0.75rem 0 0; font-size: 0.8rem; line-height: 1.5; }

.public-theme .cart-benefits-actions {
    grid-column: 1 / -1;
}

.public-theme .cart-login-note {
    align-items: center;
    color: var(--public-accent);
    display: flex;
    gap: 0.7rem;
    font-size: 0.9rem;
}

.public-theme .cart-login-note svg {
    flex: 0 0 auto;
    height: 1.2rem;
    width: 1.2rem;
}

.public-theme .cart-login-note a {
    color: inherit;
    text-underline-offset: 0.2em;
}

.public-theme .cart-summary {
    position: sticky;
    top: 1rem;
    padding: clamp(1.2rem, 3vw, 1.6rem);
}

.public-theme .cart-summary h2 {
    font-size: 1.25rem;
    margin-bottom: 1.25rem;
}

.public-theme .cart-summary dl {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.7rem 1rem;
    margin: 0;
}

.public-theme .cart-summary dt {
    color: var(--public-muted);
}

.public-theme .cart-summary dd {
    margin: 0;
    color: var(--public-ink);
    font-weight: 700;
    text-align: right;
}

.public-theme .cart-summary .cart-summary-meta {
    padding-bottom: 1.15rem;
}

.public-theme .cart-summary .cart-totals,
.public-theme .cart-summary .benefit-totals {
    border-top: 1px solid var(--public-line);
    margin-top: 1.15rem;
    padding-top: 1.15rem;
}

.public-theme .cart-summary .benefit-totals dt:last-of-type,
.public-theme .cart-summary .benefit-totals dd:last-of-type {
    color: var(--public-ink);
    font-size: 1.18rem;
}

.public-theme .cart-cashback {
    margin: 1.25rem 0;
    padding: 1rem;
    border: 1px solid #c9e1da;
    border-radius: 12px;
    background: var(--public-success-soft);
    color: var(--public-success);
}

.public-theme .cart-cashback > div {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: space-between;
    font-size: 0.8rem;
}

.public-theme .cart-cashback strong {
    color: var(--public-success);
    font-size: 1.1rem;
}

.public-theme .cart-cashback p {
    margin: 0.55rem 0 0;
    color: #4c746b;
    font-size: 0.75rem;
    line-height: 1.5;
}

.public-theme .cart-page .cart-checkout {
    width: 100%;
    min-height: 3.25rem;
    font-size: 1rem;
}

.public-theme .cart-checkout-note {
    align-items: flex-start;
    color: var(--public-muted);
    display: flex;
    gap: 0.5rem;
    margin: 1rem 0 0;
    font-size: 0.72rem;
    line-height: 1.6;
}

.public-theme .cart-checkout-note svg {
    flex: 0 0 auto;
    height: 1rem;
    margin-top: 0.1rem;
    width: 1rem;
}

.public-theme .cart-alert {
    border: 1px solid #efcbd0;
    border-radius: 10px;
    color: var(--public-danger);
    background: var(--public-danger-soft);
    font-size: 0.85rem;
    line-height: 1.5;
    margin: 1rem 0;
    padding: 0.8rem;
}

.public-theme .cart-page :disabled {
    cursor: not-allowed;
    opacity: 0.58;
}

.public-theme .cart-empty {
    min-height: 27rem;
    padding: clamp(3rem, 10vw, 6rem) 1.25rem;
    text-align: center;
}

.public-theme .cart-empty__icon {
    align-items: center;
    background: #eaf4f5;
    border-radius: 50%;
    color: var(--public-accent);
    display: inline-flex;
    height: 4.5rem;
    justify-content: center;
    margin-bottom: 1.25rem;
    width: 4.5rem;
}

.public-theme .cart-empty__icon svg {
    height: 2rem;
    width: 2rem;
}

.public-theme .cart-empty h2 {
    font-size: clamp(1.35rem, 3vw, 1.7rem);
}

.public-theme .cart-empty p {
    max-width: 42ch;
    margin: 0.75rem auto 1.5rem;
    color: var(--public-muted);
}

/* Checkout and order confirmation */
.public-theme .checkout-page {
    width: min(var(--public-width), calc(100% - clamp(2rem, 6vw, 5rem)));
    max-width: none;
    min-height: 64vh;
    margin-inline: auto;
    padding-block: clamp(2.25rem, 6vw, 4.75rem) clamp(4rem, 8vw, 7rem);
}

.public-theme .checkout-heading {
    max-width: 52rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.public-theme .checkout-eyebrow {
    color: var(--public-accent);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin: 0 0 0.7rem;
    text-transform: uppercase;
}

.public-theme .checkout-heading h1,
.public-theme .checkout-success h1 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.08;
}

.public-theme .checkout-heading > p:last-child,
.public-theme .checkout-success > p:last-child {
    max-width: 65ch;
    margin: 1rem 0 0;
    color: var(--public-muted);
    line-height: 1.65;
}

.public-theme .checkout-layout {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(20rem, 0.8fr);
    gap: clamp(1.25rem, 3vw, 2rem);
}

.public-theme :is(.checkout-form, .checkout-summary, .checkout-order-card, .checkout-whatsapp) {
    border: 1px solid var(--public-line);
    border-radius: var(--public-radius);
    background: #fff;
    box-shadow: 0 1rem 2.5rem -2rem rgb(16 46 64 / 34%);
}

.public-theme .checkout-form {
    display: grid;
    gap: 1.8rem;
    padding: clamp(1.25rem, 3vw, 2rem);
}

.public-theme .checkout-form fieldset {
    min-width: 0;
    margin: 0;
    padding: 0 0 1.6rem;
    border: 0;
    border-bottom: 1px solid var(--public-line);
}

.public-theme .checkout-form fieldset:last-of-type {
    padding-bottom: 0;
    border-bottom: 0;
}

.public-theme .checkout-form legend,
.public-theme .checkout-summary h2,
.public-theme .checkout-order-card h2,
.public-theme .checkout-whatsapp h2 {
    color: var(--public-ink);
    font-size: 1.1rem;
    font-weight: 760;
    margin: 0 0 1rem;
}

.public-theme .checkout-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.public-theme .checkout-fields label {
    align-content: start;
    color: var(--public-ink);
    display: grid;
    gap: 0.45rem;
    font-size: 0.82rem;
    font-weight: 720;
}

.public-theme .checkout-fields label span {
    color: var(--public-muted);
    font-weight: 400;
}

.public-theme .checkout-field-wide {
    grid-column: 1 / -1;
}

.public-theme .checkout-fields input {
    min-width: 0;
    min-height: 3rem;
    border: 1px solid #c2d4d9;
    border-radius: 10px;
    background: #fff;
    color: var(--public-ink);
    font: inherit;
    padding: 0.75rem 0.85rem;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.public-theme .checkout-fields input:hover {
    border-color: #92b4ba;
}

.public-theme .checkout-fields input:focus {
    border-color: var(--public-accent);
    outline: 3px solid var(--public-accent);
    outline-offset: 1px;
}

.public-theme .checkout-fields input::placeholder {
    color: #6b7f87;
    opacity: 1;
}

.public-theme .checkout-confirm {
    align-items: flex-start;
    background: var(--public-soft);
    border: 1px solid var(--public-line);
    border-radius: 12px;
    color: var(--public-muted);
    display: flex;
    gap: 0.75rem;
    line-height: 1.55;
    padding: 1rem;
}

.public-theme .checkout-confirm input {
    accent-color: var(--public-accent);
    flex: 0 0 auto;
    height: 1.15rem;
    margin-top: 0.15rem;
    width: 1.15rem;
}

.public-theme .checkout-submit {
    min-height: 3.25rem;
    padding-inline: 1.2rem;
}

.public-theme .checkout-note,
.public-theme .checkout-summary > p,
.public-theme .checkout-whatsapp > p {
    color: var(--public-muted);
    font-size: 0.82rem;
    line-height: 1.55;
    margin: 0;
}

.public-theme .checkout-summary,
.public-theme .checkout-order-card,
.public-theme .checkout-whatsapp {
    padding: clamp(1.25rem, 3vw, 2rem);
}

.public-theme .checkout-summary {
    position: sticky;
    top: 1rem;
}

.public-theme .checkout-summary ul,
.public-theme .checkout-order-items {
    list-style: none;
    margin: 0;
    padding: 0;
}

.public-theme .checkout-summary li,
.public-theme .checkout-order-items li {
    align-items: flex-start;
    border-bottom: 1px solid var(--public-line);
    display: flex;
    font-size: 0.88rem;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.85rem 0;
}

.public-theme .checkout-summary li:first-child,
.public-theme .checkout-order-items li:first-child {
    border-top: 1px solid var(--public-line);
}

.public-theme .checkout-summary li > span,
.public-theme .checkout-order-items li > span {
    min-width: 0;
}

.public-theme .checkout-summary li small {
    color: var(--public-muted);
    display: block;
    margin-top: 0.25rem;
}

.public-theme .checkout-summary li > strong,
.public-theme .checkout-order-items li > strong,
.public-theme .checkout-order-total strong {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.public-theme .checkout-summary dl {
    border-top: 1px solid var(--public-line);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem 1rem;
    margin: 1.25rem 0;
    padding-top: 1rem;
}

.public-theme .checkout-summary dt {
    color: var(--public-muted);
}

.public-theme .checkout-summary dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
    font-weight: 760;
    text-align: right;
}

.public-theme .checkout-summary a,
.public-theme .checkout-whatsapp a {
    color: var(--public-accent);
    display: inline-block;
    font-weight: 720;
    margin-top: 1rem;
    text-underline-offset: 0.25em;
}

.public-theme .checkout-summary a:hover,
.public-theme .checkout-whatsapp a:hover {
    color: var(--public-accent-hover);
}

.public-theme .checkout-success {
    margin: 0 auto clamp(2rem, 4vw, 3rem);
    max-width: 62rem;
    text-align: center;
}

.public-theme .checkout-success-mark {
    align-items: center;
    background: var(--public-success-soft);
    border: 1px solid #c9e1da;
    border-radius: 50%;
    color: var(--public-success);
    display: grid;
    font-size: 1.65rem;
    height: 3.75rem;
    justify-items: center;
    margin: 0 auto 1.15rem;
    width: 3.75rem;
}

.public-theme .checkout-success h1 {
    max-width: 22ch;
    margin-inline: auto;
}

.public-theme .checkout-order-data {
    display: grid;
    grid-template-columns: minmax(8rem, 0.5fr) minmax(0, 1.5fr);
    gap: 0.7rem 1rem;
    margin: 0 0 2rem;
}

.public-theme .checkout-order-data dt {
    color: var(--public-muted);
}

.public-theme .checkout-order-data dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.public-theme .checkout-order-card h2 + .checkout-order-items {
    margin-top: 0.25rem;
}

.public-theme .checkout-order-total {
    align-items: center;
    border-top: 1px solid var(--public-line);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin: 1.25rem 0 0;
    padding-top: 1rem;
}

.public-theme .checkout-whatsapp {
    align-self: start;
}

.public-theme .checkout-whatsapp a.checkout-whatsapp-link,
.public-theme .checkout-whatsapp a.checkout-whatsapp-link:hover {
    color: #fff;
    text-decoration: none;
}

.public-theme .checkout-whatsapp button {
    width: 100%;
    margin-top: 1rem;
    color: #fff;
    background: var(--public-accent);
}

.public-theme .checkout-whatsapp button:hover {
    background: var(--public-accent-hover);
}

.public-theme .checkout-whatsapp details {
    margin-top: 1rem;
}

.public-theme .checkout-whatsapp summary {
    color: var(--public-accent);
    cursor: pointer;
    font-weight: 720;
    text-underline-offset: 0.25em;
}

.public-theme .checkout-whatsapp summary:hover {
    text-decoration: underline;
}

.public-theme .checkout-whatsapp pre {
    max-height: 24rem;
    overflow: auto;
    padding: 1rem;
    border: 1px solid var(--public-line);
    border-radius: 10px;
    background: var(--public-soft);
    color: var(--public-ink);
    font: 0.76rem/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.public-theme .checkout-warning {
    border: 1px solid #e4d49f;
    border-radius: 10px;
    background: #fff9e8;
    color: #71560c !important;
    padding: 1rem;
}

/* Account: navigation, summaries, ledgers, forms, and empty states. */
.public-theme .account-page {
    min-height: 68vh;
    padding-block: clamp(1.5rem, 3vw, 2.5rem) clamp(4rem, 8vw, 7rem);
    background: var(--public-soft);
}

.public-theme .account-container {
    width: min(var(--public-width), calc(100% - clamp(2rem, 6vw, 5rem)));
    max-width: none;
    margin-inline: auto;
    padding: 0;
}

.public-theme .account-page-heading {
    align-items: flex-end;
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.public-theme .account-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.08;
}

.public-theme .account-layout {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(15rem, 17rem) minmax(0, 1fr);
    gap: clamp(1.25rem, 3vw, 2rem);
}

.public-theme .account-sidebar,
.public-theme .account-card {
    border: 1px solid var(--public-line);
    border-radius: var(--public-radius);
    background: #fff;
    box-shadow: 0 1rem 2.5rem -2rem rgb(16 46 64 / 34%);
}

.public-theme .account-sidebar {
    position: sticky;
    top: 1rem;
    min-width: 0;
    padding: 1.1rem;
}

.public-theme .account-profile {
    align-items: center;
    border-bottom: 1px solid var(--public-line);
    display: flex;
    gap: 0.75rem;
    padding: 0.25rem 0.2rem 1.15rem;
}

.public-theme .account-avatar {
    background: #eaf4f5;
    border-radius: 12px;
    color: var(--public-accent);
    display: grid;
    flex: 0 0 auto;
    height: 2.75rem;
    place-items: center;
    width: 2.75rem;
}

.public-theme .account-avatar svg {
    height: 1.4rem;
    width: 1.4rem;
}

.public-theme .account-profile-copy {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
}

.public-theme .account-profile-copy strong {
    color: var(--public-ink);
    font-size: 0.98rem;
    line-height: 1.3;
}

.public-theme .account-profile-copy span {
    color: var(--public-muted);
    font-size: 0.82rem;
    overflow-wrap: anywhere;
}

.public-theme .account-nav {
    margin-top: 0.9rem;
}

.public-theme .account-nav ul {
    display: grid;
    gap: 0.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.public-theme .account-nav-link {
    align-items: center;
    border-radius: 10px;
    color: var(--public-muted);
    display: flex;
    font-size: 0.87rem;
    font-weight: 650;
    gap: 0.65rem;
    min-height: 2.75rem;
    padding: 0.55rem 0.7rem;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease;
}

.public-theme .account-nav-link:hover,
.public-theme .account-nav-link:focus-visible {
    background: var(--public-soft);
    color: var(--public-accent-hover);
}

.public-theme .account-nav-link.is-active {
    background: #eaf4f5;
    color: var(--public-ink);
    box-shadow: none;
}

.public-theme .account-nav-link .account-icon {
    color: currentColor;
    flex: 0 0 auto;
    height: 1.1rem;
    width: 1.1rem;
}

.public-theme .account-sidebar-footer {
    border-top: 1px solid var(--public-line);
    margin-top: 0.9rem;
    padding-top: 0.9rem;
}

.public-theme .account-logout {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 10px;
    color: var(--public-danger);
    cursor: pointer;
    display: flex;
    font: inherit;
    font-size: 0.87rem;
    font-weight: 700;
    gap: 0.65rem;
    min-height: 2.75rem;
    padding: 0.55rem 0.7rem;
    text-align: left;
    width: 100%;
}

.public-theme .account-logout:hover,
.public-theme .account-logout:focus-visible {
    background: var(--public-danger-soft);
}

.public-theme .account-content {
    min-width: 0;
    overflow-wrap: anywhere;
}

.public-theme .account-content > h2,
.public-theme .account-heading-row h2 {
    color: var(--public-ink);
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    letter-spacing: -0.03em;
    line-height: 1.15;
    margin: 0 0 0.5rem;
}

.public-theme .account-lead {
    max-width: 70ch;
    color: var(--public-muted);
    line-height: 1.65;
    margin: 0;
}

.public-theme .account-content > :is(.account-card, .account-product-grid, .account-lead),
.public-theme .account-content > .account-stat-grid {
    margin-top: 1.35rem;
}

.public-theme .account-card {
    padding: clamp(1.2rem, 3vw, 1.7rem);
}

.public-theme .account-content > .account-card + .account-card,
.public-theme .account-content > .account-card + .account-stat-grid,
.public-theme .account-content > .account-stat-grid + .account-card {
    margin-top: 1.35rem;
}

.public-theme .account-card h3 {
    color: var(--public-ink);
    font-size: 1.08rem;
    line-height: 1.3;
    margin: 0;
}

.public-theme .account-card p {
    color: var(--public-muted);
    line-height: 1.6;
    margin: 0.55rem 0 0;
}

.public-theme .account-muted {
    color: var(--public-muted);
    font-size: 0.88rem;
}

.public-theme .account-empty-card {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 15rem;
    text-align: center;
}

.public-theme .account-empty-card h3 {
    margin-top: 0.9rem;
}

.public-theme .account-empty-card p {
    max-width: 52ch;
    margin-top: 0.45rem;
}

.public-theme .account-empty-icon {
    background: #eaf4f5;
    border-radius: 50%;
    color: var(--public-accent);
    height: 4.25rem;
    padding: 1rem;
    stroke-width: 1.5;
    width: 4.25rem;
}

.public-theme .account-empty-card .account-button {
    margin-top: 1.25rem;
}

.public-theme .account-heading-row,
.public-theme .account-card-heading,
.public-theme .account-tier-panel-top,
.public-theme .account-balance-intro,
.public-theme .account-order-header,
.public-theme .account-order-total,
.public-theme .account-order-item,
.public-theme .account-ledger-row {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.public-theme .account-heading-row {
    align-items: center;
    margin-bottom: 1.35rem;
}

.public-theme .account-heading-row h2 {
    margin: 0;
}

.public-theme .account-card-heading > div,
.public-theme .account-order-item > span,
.public-theme .account-ledger-row > div {
    min-width: 0;
}

.public-theme .account-label {
    color: var(--public-muted);
    font-size: 0.75rem;
    font-weight: 760;
    letter-spacing: 0.055em;
    margin: 0;
    text-transform: uppercase;
}

.public-theme .account-status-badge,
.public-theme .account-unavailable {
    align-items: center;
    border: 1px solid #bcd9dd;
    border-radius: 999px;
    color: var(--public-accent-hover);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 720;
    line-height: 1.2;
    padding: 0.42rem 0.7rem;
}

.public-theme .account-status-badge {
    background: #eaf4f5;
}

.public-theme .account-unavailable {
    border-color: var(--public-line);
    color: var(--public-muted);
    background: var(--public-soft);
}

.public-theme .account-tier-panel {
    border-color: #bcd9dd;
    background: #f1f8f9;
    margin-top: 1.35rem;
}

.public-theme .account-tier-panel-top .account-status-badge {
    margin-top: 0.2rem;
}

.public-theme .account-feature-icon,
.public-theme .account-card-heading > .account-heading-icon,
.public-theme .account-card-heading > .account-icon {
    color: var(--public-accent);
    flex: 0 0 auto;
    height: 1.35rem;
    width: 1.35rem;
}

.public-theme .account-tier-panel h3 {
    font-size: 1.25rem;
    margin-top: 1.35rem;
}

.public-theme .account-progress {
    height: 0.55rem;
    margin-top: 1.2rem;
    overflow: hidden;
    border-radius: 999px;
    background: #d9e8eb;
}

.public-theme .account-progress span {
    background: var(--public-accent);
    border-radius: inherit;
    display: block;
    height: 100%;
}

.public-theme .account-tier-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 1.2rem;
}

.public-theme .account-tier-card {
    align-items: flex-start;
    border: 1px solid var(--public-line);
    border-radius: 12px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-height: 5.9rem;
    padding: 0.9rem;
}

.public-theme :is(.account-tier-card--bronze, .account-tier-card--prata, .account-tier-card--ouro, .account-tier-card--diamante) {
    border-color: var(--public-line);
    background: #fff;
}

.public-theme .account-tier-card > span:last-child {
    color: var(--public-muted);
    font-size: 0.86rem;
}

.public-theme .account-balance-card {
    border-color: var(--public-accent);
    background: var(--public-accent);
    color: #fff;
    margin-top: 1.35rem;
}

.public-theme .account-balance-card p,
.public-theme .account-balance-card .account-label {
    color: rgb(255 255 255 / 84%);
}

.public-theme .account-balance-value {
    display: block;
    font-size: clamp(2rem, 4vw, 3rem);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    line-height: 1;
    margin-top: 0.8rem;
}

.public-theme .account-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.35rem;
}

.public-theme .account-stat-card {
    min-height: 8rem;
    border-top: 1px solid var(--public-line);
}

.public-theme .account-stat-label {
    align-items: center;
    color: var(--public-muted);
    display: flex;
    font-size: 0.9rem;
    gap: 0.55rem;
}

.public-theme .account-stat-label .account-icon {
    color: var(--public-accent);
    height: 1.25rem;
    width: 1.25rem;
}

.public-theme .account-stat-card strong {
    color: var(--public-accent);
    display: block;
    font-size: 1.4rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    margin-top: 1rem;
}

.public-theme .account-affiliate-card {
    border-color: #c7e0e3;
    margin-top: 1.35rem;
}

.public-theme .account-notice,
.public-theme .account-security-note {
    align-items: flex-start;
    color: var(--public-muted);
    display: flex;
    font-size: 0.88rem;
    gap: 0.6rem;
    line-height: 1.5;
}

.public-theme .account-notice {
    border: 1px solid var(--public-line);
    border-radius: 10px;
    background: var(--public-soft);
    margin-top: 1.5rem;
    padding: 0.8rem 0.9rem;
}

.public-theme :is(.account-notice, .account-security-note) .account-icon {
    color: var(--public-accent);
    flex: 0 0 auto;
    height: 1.2rem;
    margin-top: 0.06rem;
    width: 1.2rem;
}

.public-theme .account-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
    gap: 1rem;
    margin-top: 1.35rem;
}

.public-theme .account-product-card {
    border: 1px solid var(--public-line);
    border-radius: 12px;
    background: #fff;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

.public-theme .account-product-image {
    background: var(--public-soft);
    color: var(--public-muted);
    min-height: 13rem;
}

.public-theme .account-product-copy {
    padding: 1rem;
}

.public-theme .account-product-copy h3 a {
    color: var(--public-ink);
    text-decoration: none;
    text-underline-offset: 0.2em;
}

.public-theme .account-product-copy h3 a:hover {
    color: var(--public-accent);
    text-decoration: underline;
}

.public-theme .account-product-copy p {
    color: var(--public-accent);
    font-size: 1rem;
    font-weight: 720;
}

.public-theme .account-remove {
    background: transparent;
    border: 0;
    color: var(--public-muted);
    cursor: pointer;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 720;
    min-height: 2.75rem;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.public-theme .account-remove:hover {
    color: var(--public-danger);
}

.public-theme .account-orders,
.public-theme .account-review-list {
    display: grid;
    gap: 1rem;
    margin-top: 1.35rem;
}

.public-theme .account-order {
    display: grid;
    gap: 1rem;
}

.public-theme .account-order-header {
    flex-wrap: wrap;
    padding-bottom: 0.25rem;
}

.public-theme .account-order-header h3 {
    margin: 0;
}

.public-theme .account-order-header time,
.public-theme .account-order-meta,
.public-theme .account-order-item small {
    color: var(--public-muted);
    font-size: 0.8rem;
}

.public-theme .account-order-header time {
    display: block;
    margin-top: 0.4rem;
}

.public-theme .account-order-status {
    border: 1px solid #c9e1da;
    border-radius: 999px;
    color: var(--public-success);
    background: var(--public-success-soft);
    font-size: 0.72rem;
    font-weight: 760;
    padding: 0.35rem 0.6rem;
}

.public-theme .account-order-status--received {
    border-color: #e4d49f;
    color: #71560c;
    background: #fff9e8;
}

.public-theme .account-order-status--cancelled {
    border-color: #efcbd0;
    color: var(--public-danger);
    background: var(--public-danger-soft);
}

.public-theme .account-order-items {
    display: grid;
    gap: 0.55rem;
    list-style: none;
    margin: 0;
    padding: 1rem 0;
    border-block: 1px solid var(--public-line);
}

.public-theme .account-order-item strong {
    display: block;
}

.public-theme .account-order-item > strong,
.public-theme .account-order-total strong,
.public-theme .account-ledger-amount {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.public-theme .account-order-total {
    margin: 0;
}

.public-theme .account-order-total strong {
    color: var(--public-accent);
}

.public-theme .account-order-contact {
    border-radius: 12px;
    background: var(--public-soft);
    color: var(--public-muted);
    font-size: 0.85rem;
    margin: 0;
    padding: 1rem;
}

.public-theme .account-order-actions {
    align-items: center;
    border-top: 1px solid var(--public-line);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding-top: 1rem;
}

.public-theme .account-order-actions .account-button {
    margin: 0;
}

.public-theme .account-order-actions .account-order-meta {
    flex: 1;
    text-align: right;
}

.public-theme .account-pagination {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1rem;
}

.public-theme .account-pagination :is(a, span) {
    align-items: center;
    color: var(--public-accent);
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 720;
    min-height: 2.75rem;
}

.public-theme .account-pagination span {
    color: var(--public-muted);
}

.public-theme .account-pagination a:hover {
    color: var(--public-accent-hover);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.public-theme .account-ledger-row {
    border-bottom: 1px solid var(--public-line);
    padding: 1rem 0;
}

.public-theme .account-ledger-row:first-of-type {
    border-top: 1px solid var(--public-line);
    margin-top: 1rem;
}

.public-theme .account-ledger-row time {
    color: var(--public-muted);
    display: block;
    font-size: 0.75rem;
    margin-top: 0.35rem;
}

.public-theme .account-ledger-amount {
    color: var(--public-success);
}

.public-theme .account-ledger-amount--debit {
    color: var(--public-danger);
}

.public-theme .account-review-card__product {
    align-items: center;
    display: flex;
    gap: 1rem;
}

.public-theme .account-review-card__product .product-reference-image {
    flex: 0 0 5rem;
    height: 5rem;
    width: 5rem;
}

.public-theme .account-review-form {
    display: grid;
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: 0.85rem;
    margin-top: 1.2rem;
}

.public-theme .account-review-form label {
    color: var(--public-ink);
    display: grid;
    gap: 0.4rem;
    font-weight: 720;
}

.public-theme .account-review-form label :is(input, select, textarea) {
    width: 100%;
}

.public-theme .account-review-form label span {
    color: var(--public-muted);
    font-weight: 400;
}

.public-theme .account-review-form :is(label:nth-of-type(2), label:nth-of-type(3), button) {
    grid-column: 1 / -1;
}

.public-theme .account-review-form :is(input, select, textarea) {
    border: 1px solid #c2d4d9;
    border-radius: 10px;
    background: #fff;
    color: var(--public-ink);
    font: inherit;
    min-height: 2.875rem;
    padding: 0.7rem;
}

.public-theme .account-review-form textarea {
    resize: vertical;
}

.public-theme .account-data-card {
    margin-top: 1.35rem;
}

.public-theme .account-data-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem;
    max-width: 50rem;
    margin-top: 1.35rem;
}

.public-theme .account-data-field {
    align-content: start;
    display: grid;
    gap: 0.48rem;
    min-width: 0;
}

.public-theme .account-data-fields label,
.public-theme .account-disabled-fields label {
    color: var(--public-ink);
    font-size: 0.87rem;
    font-weight: 720;
}

.public-theme .account-data-fields input,
.public-theme .account-disabled-fields input {
    min-width: 0;
    min-height: 2.875rem;
    border: 1px solid #c2d4d9;
    border-radius: 10px;
    background: #fff;
    color: var(--public-ink);
    font: inherit;
    padding: 0.68rem 0.78rem;
}

.public-theme .account-data-fields input:hover {
    border-color: #92b4ba;
}

.public-theme .account-data-fields input:focus {
    border-color: var(--public-accent);
    outline: 3px solid var(--public-accent);
    outline-offset: 1px;
}

.public-theme .account-data-fields input:disabled {
    color: #87979e;
    cursor: not-allowed;
    opacity: 1;
}

.public-theme .account-data-fields input[readonly] {
    background: var(--public-soft);
}

.public-theme .account-field-error {
    color: var(--public-danger);
    font-size: 0.8rem;
}

.public-theme .account-data-fields .account-button {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 0.25rem;
}

.public-theme .account-security-note {
    margin: 1rem 0 0;
}

.public-theme .account-coupon-card {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.35rem;
}

.public-theme .account-coupon-card h3 {
    flex: 1;
    min-width: 0;
    letter-spacing: 0.04em;
}

@media (max-width: 960px) {
    .public-theme .cart-layout,
    .public-theme .checkout-layout {
        grid-template-columns: minmax(0, 1fr) minmax(18rem, 21rem);
    }

    .public-theme .account-layout {
        grid-template-columns: 1fr;
    }

    .public-theme .account-sidebar {
        position: static;
    }

    .public-theme .account-nav ul {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .public-theme .selection-page__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .public-theme :is(.cart-heading, .account-page-heading) {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.65rem;
    }

    .public-theme .cart-layout,
    .public-theme .checkout-layout {
        grid-template-columns: 1fr;
    }

    .public-theme .selection-page__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-theme .cart-summary,
    .public-theme .checkout-summary {
        position: static;
    }

    .public-theme .cart-item {
        grid-template-columns: 4.75rem minmax(0, 1fr);
    }

    .public-theme .cart-thumbnail {
        width: 4.75rem;
    }

    .public-theme .cart-item-end {
        align-items: center;
        flex-direction: row;
        grid-column: 2;
        justify-content: space-between;
    }

    .public-theme .cart-item-total {
        text-align: left;
    }
}

@media (max-width: 640px) {
    .public-theme :is(.selection-page, .cart-page, .checkout-page, .account-container) {
        width: min(100% - 2rem, var(--public-width));
    }

    .public-theme .checkout-fields,
    .public-theme .account-data-fields,
    .public-theme .account-stat-grid,
    .public-theme .account-tier-grid {
        grid-template-columns: 1fr;
    }

    .public-theme .checkout-field-wide,
    .public-theme .account-data-fields .account-button {
        grid-column: auto;
    }

    .public-theme .checkout-order-data {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .public-theme .checkout-order-data dd {
        margin-bottom: 0.6rem;
    }

    .public-theme .cart-benefits {
        grid-template-columns: 1fr;
    }

    .public-theme .cart-benefits-actions {
        grid-column: auto;
    }

    .public-theme .cart-benefits-actions .button,
    .public-theme .account-data-fields .account-button,
    .public-theme .account-heading-row .account-button {
        width: 100%;
    }

    .public-theme .account-nav ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-theme .account-card-heading {
        flex-wrap: wrap;
    }

    .public-theme .account-secondary-button {
        width: 100%;
    }

    .public-theme .account-review-form {
        grid-template-columns: 1fr;
    }

    .public-theme .account-review-form > * {
        grid-column: 1 !important;
    }

    .public-theme .account-order-item,
    .public-theme .account-order-actions,
    .public-theme .account-ledger-row {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .public-theme .account-order-actions {
        flex-direction: column;
    }

    .public-theme .account-order-actions .account-order-meta {
        text-align: left;
    }
}

@media (max-width: 420px) {
    .public-theme :is(.selection-page, .cart-page, .checkout-page, .account-container) {
        width: min(100% - 1.25rem, var(--public-width));
    }

    .public-theme .selection-page,
    .public-theme .cart-page,
    .public-theme .checkout-page,
    .public-theme .account-page {
        padding-top: 1.75rem;
    }

    .public-theme .cart-item,
    .public-theme .cart-section-heading,
    .public-theme .cart-benefits-panel,
    .public-theme .cart-summary,
    .public-theme .checkout-form,
    .public-theme .checkout-summary,
    .public-theme .checkout-order-card,
    .public-theme .checkout-whatsapp,
    .public-theme .account-card {
        padding: 1rem;
    }

    .public-theme .cart-item {
        gap: 0.75rem;
    }

    .public-theme .cart-thumbnail {
        width: 4rem;
    }

    .public-theme .cart-item {
        grid-template-columns: 4rem minmax(0, 1fr);
    }

    .public-theme .cart-item-end {
        grid-column: 2;
    }

    .public-theme .account-title,
    .public-theme .cart-heading h1,
    .public-theme .selection-page__heading h1,
    .public-theme .checkout-heading h1,
    .public-theme .checkout-success h1 {
        font-size: clamp(1.85rem, 10vw, 2.45rem);
    }
}

/* Bounded public journey refinement: preserve copy, contracts and shared cards. */
.public-theme :is(.selection-page, .cart-page, .checkout-page, .account-page) {
    padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

.public-theme .selection-page__heading,
.public-theme .checkout-heading {
    margin-top: clamp(1rem, 2.5vw, 1.75rem);
}

.public-theme .selection-page__heading {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.public-theme .selection-page__heading h1,
.public-theme .cart-heading h1,
.public-theme .checkout-heading h1,
.public-theme .checkout-success h1,
.public-theme .account-title {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
}

.public-theme .cart-heading {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.public-theme .account-page-heading {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.public-theme :is(.cart-items, .cart-benefits-panel, .cart-summary,
    .checkout-form, .checkout-summary, .checkout-order-card,
    .checkout-whatsapp, .account-sidebar, .account-card) {
    box-shadow: none;
}

.public-theme :is(.cart-summary, .checkout-summary) {
    background: var(--public-soft);
}

.public-theme .checkout-whatsapp {
    background: var(--public-soft);
}

.public-theme :is(.cart-summary, .checkout-summary) :is(.cart-summary-meta, dl) {
    line-height: 1.45;
}

.public-theme :is(.cart-summary, .checkout-summary) :is(.cart-totals, .benefit-totals, dl) {
    border-color: var(--public-line);
}

/* Account navigation becomes a compact, horizontally scrollable rail before
   the content so the ten existing destinations remain discoverable without
   pushing the selected section below several rows of links. */
@media (max-width: 960px) {
    .public-theme .account-sidebar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.75rem 1rem;
    }

    .public-theme .account-profile {
        grid-column: 1;
        border-bottom: 0;
        padding-bottom: 0;
    }

    .public-theme .account-sidebar-footer {
        grid-column: 2;
        grid-row: 1;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
        min-width: max-content;
    }

    .public-theme .account-logout {
        width: auto;
        white-space: nowrap;
    }

    .public-theme .account-nav {
        grid-column: 1 / -1;
        min-width: 0;
        margin-top: 0.15rem;
        padding-top: 0.65rem;
        border-top: 1px solid var(--public-line);
        overflow: hidden;
    }

    .public-theme .account-nav ul {
        display: flex;
        gap: 0.35rem;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        padding-bottom: 0.25rem;
        scrollbar-width: thin;
    }

    .public-theme .account-nav li {
        flex: 0 0 auto;
    }

    .public-theme .account-nav-link {
        min-height: 2.5rem;
        padding: 0.5rem 0.75rem;
        white-space: nowrap;
    }
}

/* Comparison keeps the shared product card but gives its repeated fields a
   stable rhythm so four products can be scanned side by side. */
.public-theme .selection-page--comparison .product-card__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(3.1rem, auto) minmax(4.8rem, auto) auto auto;
    align-content: start;
}

.public-theme .selection-page--comparison .product-card__metrics {
    min-height: 3.1rem;
}

.public-theme .selection-page--comparison .product-card__description {
    min-height: 4.8rem;
}

.public-theme .selection-page--comparison .product-card__cashback {
    min-height: 2.5rem;
    align-items: flex-start;
}

@media (max-width: 767px) {
    .public-theme .selection-page {
        padding-inline: 0;
    }

    .public-theme :is(.selection-page, .cart-page, .checkout-page, .account-page) {
        padding-bottom: max(7rem, calc(7rem + env(safe-area-inset-bottom)));
    }
}

@media (max-width: 600px) {
    .public-theme .account-logout {
        width: 44px;
        height: 44px;
        padding: 0;
        justify-content: center;
    }

    .public-theme .account-logout span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

@media (max-width: 420px) {
    .public-theme :is(.selection-page, .cart-page, .checkout-page, .account-container) {
        width: min(100% - 2rem, var(--public-width));
    }

    .public-theme .selection-page,
    .public-theme .cart-page,
    .public-theme .checkout-page,
    .public-theme .account-page {
        padding-top: 1.5rem;
    }
}
