/**
 * Retail Customer Portal — Frontend Styles
 *
 * Scoped under .woocommerce-account and product page classes to avoid
 * conflicts with Storefront defaults or WooCommerce core CSS.
 *
 * Architecture:
 *  - BEM naming convention: block__element--modifier
 *  - CSS custom properties for all brand colours (override in child theme)
 *  - Mobile-first responsive breakpoints: 480px, 768px, 1024px
 *  - No !important — higher specificity via class nesting where needed
 *
 * Colour system:
 *  --rcp-accent       Brand accent (buttons, links, active states)
 *  --rcp-success      In-stock, success states
 *  --rcp-warning      On-hold, pending states
 *  --rcp-error        Out-of-stock, error states
 *  --rcp-text         Primary text
 *  --rcp-text-light   Secondary / muted text
 *  --rcp-border       Dividers and input borders
 *  --rcp-bg-card      Card background
 *
 * @package RetailCustomerPortal
 * @since   1.0.0
 */

/* ─── Custom Properties ────────────────────────────────────────────────────── */

:root {
    --rcp-accent:       #1a5c3a;   /* Deep Irish green — professional retail */
    --rcp-accent-hover: #14492e;
    --rcp-accent-light: #e8f5ee;
    --rcp-success:      #2e7d32;
    --rcp-warning:      #e65100;
    --rcp-error:        #c62828;
    --rcp-text:         #1a1a1a;
    --rcp-text-light:   #666666;
    --rcp-border:       #dedede;
    --rcp-bg-card:      #ffffff;
    --rcp-bg-subtle:    #f8f9fa;
    --rcp-radius:       6px;
    --rcp-shadow:       0 2px 8px rgba(0, 0, 0, 0.08);
    --rcp-shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.14);
    --rcp-transition:   0.18s ease;
}


/* ─── Dashboard ────────────────────────────────────────────────────────────── */

.rcp-dashboard {
    padding: 0;
}

.rcp-dashboard__greeting h2 {
    font-size: 1.5rem;
    margin: 0 0 1.5rem;
    color: var(--rcp-text);
}

.rcp-dashboard__cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.rcp-dashboard-card {
    background: var(--rcp-bg-card);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 1.25rem;
    box-shadow: var(--rcp-shadow);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    transition: box-shadow var(--rcp-transition);
}

.rcp-dashboard-card:hover {
    box-shadow: var(--rcp-shadow-hover);
}

.rcp-dashboard-card__icon {
    font-size: 2rem;
    line-height: 1;
}

.rcp-dashboard-card__value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--rcp-text);
    line-height: 1;
}

.rcp-dashboard-card__value--store {
    font-size: 1rem;
    font-weight: 600;
    color: var(--rcp-text);
}

.rcp-dashboard-card__label {
    font-size: 0.85rem;
    color: var(--rcp-text-light);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rcp-dashboard-card__footer {
    font-size: 0.8rem;
    color: var(--rcp-text-light);
    border-top: 1px solid var(--rcp-border);
    padding-top: 0.5rem;
    margin-top: 0.25rem;
}

.rcp-dashboard-card__link {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--rcp-accent);
    text-decoration: none;
    margin-top: auto;
}

.rcp-dashboard-card__link:hover {
    color: var(--rcp-accent-hover);
    text-decoration: underline;
}

.rcp-dashboard__quick-links {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    border-top: 1px solid var(--rcp-border);
    padding-top: 1.25rem;
}

.rcp-dashboard__quick-links a {
    font-size: 0.9rem;
    color: var(--rcp-accent);
    text-decoration: none;
    font-weight: 500;
}

.rcp-dashboard__quick-links a:hover {
    text-decoration: underline;
}


/* ─── Wishlist Toggle Button (on product cards and single product pages) ───── */

.rcp-wishlist-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: transparent;
    border: 1.5px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 0.45rem 0.75rem;
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--rcp-text-light);
    transition: all var(--rcp-transition);
    margin-top: 0.5rem;
}

.rcp-wishlist-toggle svg {
    width: 1rem;
    height: 1rem;
    fill: transparent;
    stroke: currentColor;
    stroke-width: 2;
    transition: fill var(--rcp-transition), stroke var(--rcp-transition);
}

.rcp-wishlist-toggle:hover,
.rcp-wishlist-toggle.is-active {
    border-color: var(--rcp-error);
    color: var(--rcp-error);
}

.rcp-wishlist-toggle.is-active svg {
    fill: var(--rcp-error);
    stroke: var(--rcp-error);
}

/* Loop context — smaller, icon-only on mobile */
.rcp-wishlist-toggle--loop {
    padding: 0.35rem 0.6rem;
}

.rcp-wishlist-toggle--list {
    border: none;
    color: var(--rcp-error);
    padding: 0;
    font-size: 0.8rem;
    text-decoration: underline;
}


/* ─── Wishlist Page ─────────────────────────────────────────────────────────── */

.rcp-wishlist-page__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.rcp-wishlist-page__title {
    font-size: 1.4rem;
    margin: 0;
}

.rcp-wishlist-page__count {
    font-size: 1rem;
    font-weight: 400;
    color: var(--rcp-text-light);
}

.rcp-share-wishlist-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
}

.rcp-share-wishlist-url {
    display: none;
    width: 0;
    overflow: hidden;
}

.rcp-share-wishlist-url.is-visible {
    display: inline-block;
    width: auto;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    font-size: 0.8rem;
    color: var(--rcp-text-light);
    background: var(--rcp-bg-subtle);
}

/* Wishlist product grid — matches WC archive layout */
.rcp-wishlist-page__products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.rcp-wishlist-item {
    background: var(--rcp-bg-card);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    overflow: hidden;
    box-shadow: var(--rcp-shadow);
    display: flex;
    flex-direction: column;
}

.rcp-wishlist-item__image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}

.rcp-wishlist-item__details {
    padding: 0.875rem;
    flex: 1;
}

.rcp-wishlist-item__name a {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--rcp-text);
    text-decoration: none;
}

.rcp-wishlist-item__name a:hover {
    color: var(--rcp-accent);
}

.rcp-wishlist-item__price {
    margin-top: 0.4rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--rcp-text);
}

.rcp-wishlist-item__actions {
    padding: 0.75rem 0.875rem;
    border-top: 1px solid var(--rcp-border);
    display: flex;
    gap: 0.5rem;
    align-items: center;
}


/* ─── Store Preference Page ─────────────────────────────────────────────────── */

.rcp-store-preference-page__title {
    font-size: 1.4rem;
    margin-bottom: 0.5rem;
}

.rcp-store-preference-page__description {
    color: var(--rcp-text-light);
    margin-bottom: 1.5rem;
}

.rcp-store-selector-form {
    background: var(--rcp-bg-subtle);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.rcp-store-selector-form__label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.rcp-store-selector-form__control {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.rcp-store-selector-form__select {
    flex: 1;
    min-width: 200px;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    font-size: 1rem;
    background-color: var(--rcp-bg-card);
}

.rcp-store-selector-form__hint {
    display: block;
    font-size: 0.8rem;
    color: var(--rcp-text-light);
    margin-top: 0.4rem;
}

.rcp-store-selector-form__feedback {
    margin-top: 0.75rem;
    font-size: 0.9rem;
    color: var(--rcp-success);
    min-height: 1.2em;
}

/* Preferred store detail card */
.rcp-preferred-store-card {
    background: var(--rcp-accent-light);
    border: 1.5px solid var(--rcp-accent);
    border-radius: var(--rcp-radius);
    padding: 1.25rem;
    margin-bottom: 2rem;
}

.rcp-preferred-store-card__name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--rcp-accent);
    margin: 0 0 0.75rem;
}

.rcp-preferred-store-card__details {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rcp-preferred-store-card__detail {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.rcp-preferred-store-card__actions {
    margin-top: 1rem;
}

/* All stores grid */
.rcp-all-stores__title {
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

.rcp-all-stores__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

.rcp-store-card {
    background: var(--rcp-bg-card);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 1rem;
}

.rcp-store-card--preferred {
    border-color: var(--rcp-accent);
}

.rcp-store-card__name {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.4rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rcp-store-card__preferred-badge {
    font-size: 0.7rem;
    font-weight: 700;
    background: var(--rcp-accent);
    color: #fff;
    padding: 0.1rem 0.45rem;
    border-radius: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rcp-store-card__address,
.rcp-store-card__hours {
    font-size: 0.85rem;
    color: var(--rcp-text-light);
    margin: 0.2rem 0;
}

.rcp-store-card button {
    margin-top: 0.75rem;
}


/* ─── Store Availability (product page) ─────────────────────────────────────── */

.rcp-store-availability {
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 0.65rem 0.875rem;
    margin: 1rem 0;
    font-size: 0.9rem;
    background: var(--rcp-bg-subtle);
}

.rcp-store-availability--prompt {
    border-style: dashed;
}

.rcp-store-availability__status {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rcp-store-availability__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.rcp-store-availability__status--in-stock .rcp-store-availability__dot {
    background: var(--rcp-success);
}

.rcp-store-availability__status--out-of-stock .rcp-store-availability__dot {
    background: var(--rcp-error);
}


/* ─── Order Tracking Page ───────────────────────────────────────────────────── */

.rcp-order-tracking-page__title {
    font-size: 1.4rem;
    margin-bottom: 1.25rem;
}

.rcp-order-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rcp-order-list__item {
    background: var(--rcp-bg-card);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 1.1rem 1.25rem;
    box-shadow: var(--rcp-shadow);
}

.rcp-order-list__item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.rcp-order-list__order-meta {
    display: flex;
    gap: 0.75rem;
    align-items: baseline;
}

.rcp-order-list__order-number {
    font-size: 1rem;
    color: var(--rcp-text);
}

.rcp-order-list__date {
    font-size: 0.85rem;
    color: var(--rcp-text-light);
}

.rcp-order-list__item-summary {
    display: flex;
    gap: 1rem;
    font-size: 0.875rem;
    color: var(--rcp-text-light);
    margin-bottom: 0.75rem;
}

.rcp-order-list__actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Status badges */
.rcp-status-badge {
    display: inline-block;
    padding: 0.25rem 0.65rem;
    border-radius: 2rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1;
}

.rcp-status-badge--processing  { background: #e3f2fd; color: #1565c0; }
.rcp-status-badge--completed   { background: #e8f5e9; color: var(--rcp-success); }
.rcp-status-badge--pending     { background: #fff3e0; color: #e65100; }
.rcp-status-badge--on-hold     { background: #f3e5f5; color: #6a1b9a; }
.rcp-status-badge--cancelled   { background: #fce4ec; color: var(--rcp-error); }
.rcp-status-badge--refunded    { background: #fafafa; color: var(--rcp-text-light); border: 1px solid var(--rcp-border); }
.rcp-status-badge--failed      { background: #ffebee; color: var(--rcp-error); }
.rcp-status-badge--dispatched  { background: #e8f5e9; color: var(--rcp-success); }
.rcp-status-badge--delivered   { background: #e8f5e9; color: var(--rcp-success); }
.rcp-status-badge--default     { background: var(--rcp-bg-subtle); color: var(--rcp-text-light); }

/* Order detail view */
.rcp-order-detail__header {
    margin-bottom: 1.25rem;
}

.rcp-order-detail__back-link {
    display: inline-block;
    font-size: 0.875rem;
    color: var(--rcp-accent);
    text-decoration: none;
    margin-bottom: 0.5rem;
}

.rcp-order-detail__back-link:hover {
    text-decoration: underline;
}

.rcp-order-detail__title {
    font-size: 1.4rem;
    margin: 0;
}

.rcp-order-status-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.rcp-tracking-info {
    background: var(--rcp-bg-subtle);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 0.875rem 1rem;
    margin-bottom: 1.25rem;
}

.rcp-tracking-info h3 {
    font-size: 0.95rem;
    margin: 0 0 0.4rem;
}

.rcp-order-items__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.rcp-order-items__table th,
.rcp-order-items__table td {
    padding: 0.6rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid var(--rcp-border);
}

.rcp-order-items__table thead th {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rcp-text-light);
    background: var(--rcp-bg-subtle);
}

.rcp-order-items__table tfoot th,
.rcp-order-items__table tfoot td {
    font-weight: 700;
    border-bottom: none;
    border-top: 2px solid var(--rcp-border);
}

.rcp-order-detail__actions {
    margin-top: 1rem;
}


/* ─── Address Book ──────────────────────────────────────────────────────────── */

.rcp-address-book__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.rcp-address-book__title {
    font-size: 1.4rem;
    margin: 0;
}

.rcp-address-form-wrapper {
    display: none;
    background: var(--rcp-bg-subtle);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.rcp-address-form-wrapper.is-visible {
    display: block;
}

.rcp-address-form__title {
    font-size: 1.1rem;
    margin: 0 0 1rem;
}

.rcp-address-form__row {
    margin-bottom: 1rem;
}

.rcp-address-form__row--two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.rcp-address-form__field label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.3rem;
}

.rcp-address-form__field input {
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    font-size: 1rem;
    transition: border-color var(--rcp-transition);
}

.rcp-address-form__field input:focus {
    border-color: var(--rcp-accent);
    outline: none;
    box-shadow: 0 0 0 2px rgba(26, 92, 58, 0.15);
}

.rcp-address-form__actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rcp-address-form__feedback {
    margin-top: 0.75rem;
    font-size: 0.9rem;
    color: var(--rcp-success);
    min-height: 1.2em;
}

.rcp-address-book__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.rcp-address-card {
    background: var(--rcp-bg-card);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    padding: 1rem;
    position: relative;
}

.rcp-address-card--default {
    border-color: var(--rcp-accent);
}

.rcp-address-card__badge {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    font-size: 0.7rem;
    font-weight: 700;
    background: var(--rcp-accent);
    color: #fff;
    padding: 0.15rem 0.5rem;
    border-radius: 2rem;
    text-transform: uppercase;
}

.rcp-address-card__label {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rcp-accent);
    margin-bottom: 0.5rem;
}

.rcp-address-card__address {
    font-style: normal;
    font-size: 0.9rem;
    color: var(--rcp-text);
    line-height: 1.6;
    margin-bottom: 0.75rem;
}

.rcp-address-card__actions {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}


/* ─── Recently Viewed Section ───────────────────────────────────────────────── */

.rcp-recently-viewed {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--rcp-border);
}

.rcp-recently-viewed__title {
    font-size: 1.2rem;
    margin-bottom: 1.25rem;
}

.rcp-recently-viewed__products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.rcp-recently-viewed__item {
    background: var(--rcp-bg-card);
    border: 1px solid var(--rcp-border);
    border-radius: var(--rcp-radius);
    overflow: hidden;
}

.rcp-recently-viewed__link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

.rcp-recently-viewed__link img {
    width: 100%;
    height: 120px;
    object-fit: cover;
}

.rcp-recently-viewed__name {
    padding: 0.5rem 0.6rem 0.2rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--rcp-text);
    line-height: 1.3;
}

.rcp-recently-viewed__price {
    padding: 0 0.6rem 0.6rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--rcp-text);
}

.rcp-recently-viewed__link:hover .rcp-recently-viewed__name {
    color: var(--rcp-accent);
}


/* ─── Empty state ───────────────────────────────────────────────────────────── */

.rcp-empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    border: 1px dashed var(--rcp-border);
    border-radius: var(--rcp-radius);
}

.rcp-empty-state__icon {
    width: 3rem;
    height: 3rem;
    fill: var(--rcp-border);
    margin-bottom: 1rem;
}

.rcp-empty-state h3 {
    font-size: 1.1rem;
    margin: 0 0 0.5rem;
    color: var(--rcp-text);
}

.rcp-empty-state p {
    color: var(--rcp-text-light);
    margin-bottom: 1.25rem;
}


/* ─── Focus Visibility (WCAG 2.1 AA) ───────────────────────────────────────── */

/*
 * Ensure all interactive portal elements have a visible focus indicator
 * for keyboard navigation. Uses :focus-visible to avoid showing the outline
 * on mouse clicks (browsers that support it).
 */

.rcp-wishlist-toggle:focus-visible,
.rcp-wishlist-move-to-cart:focus-visible,
.rcp-reorder-btn:focus-visible,
.rcp-share-wishlist-btn:focus-visible,
.rcp-select-this-store:focus-visible,
.rcp-add-address-btn:focus-visible,
.rcp-edit-address-btn:focus-visible,
.rcp-delete-address-btn:focus-visible,
.rcp-set-default-address-btn:focus-visible,
.rcp-store-selector-form__select:focus-visible,
.rcp-address-form__field input:focus-visible {
    outline: 2px solid var(--rcp-accent);
    outline-offset: 2px;
}

/* Fallback for browsers without :focus-visible support */
.rcp-wishlist-toggle:focus:not(:focus-visible) {
    outline: none;
}


/* ─── Utility Buttons ───────────────────────────────────────────────────────── */

/* Extend Storefront button styles without overriding core */
.woocommerce .button.button--secondary {
    background: transparent;
    border: 1.5px solid var(--rcp-accent);
    color: var(--rcp-accent);
}

.woocommerce .button.button--secondary:hover {
    background: var(--rcp-accent-light);
}

.woocommerce .button.button--small {
    padding: 0.35rem 0.7rem;
    font-size: 0.8rem;
}

.woocommerce .button.button--danger {
    background: transparent;
    border: 1.5px solid var(--rcp-error);
    color: var(--rcp-error);
}

.woocommerce .button.button--danger:hover {
    background: #ffebee;
}


/* ─── Responsive: tablet ────────────────────────────────────────────────────── */

@media (max-width: 768px) {

    .rcp-dashboard__cards {
        grid-template-columns: 1fr 1fr;
    }

    .rcp-wishlist-page__products {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    }

    .rcp-all-stores__grid {
        grid-template-columns: 1fr 1fr;
    }

    .rcp-address-form__row--two-col {
        grid-template-columns: 1fr;
    }

    .rcp-order-items__table thead {
        display: none;
    }

    .rcp-order-items__table,
    .rcp-order-items__table tbody,
    .rcp-order-items__table tr,
    .rcp-order-items__table td {
        display: block;
    }

    .rcp-order-items__table td::before {
        content: attr(data-label) ': ';
        font-weight: 600;
        font-size: 0.8rem;
        text-transform: uppercase;
        color: var(--rcp-text-light);
    }
}


/* ─── Responsive: mobile ────────────────────────────────────────────────────── */

@media (max-width: 480px) {

    .rcp-dashboard__cards {
        grid-template-columns: 1fr;
    }

    .rcp-all-stores__grid {
        grid-template-columns: 1fr;
    }

    .rcp-wishlist-page__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .rcp-store-selector-form__control {
        flex-direction: column;
    }

    .rcp-store-selector-form__select,
    .rcp-store-selector-form__submit {
        width: 100%;
    }

    .rcp-address-book__list {
        grid-template-columns: 1fr;
    }

    .rcp-recently-viewed__products {
        grid-template-columns: repeat(2, 1fr);
    }
}
