﻿:root {
    /* Brand */
    --store-main-color: var(--mud-palette-primary);
    --store-main-color-dark: var(--mud-palette-primary-darken);
    --store-main-color-light: var(--mud-palette-primary-lighten);
    --store-main-color-pale: color-mix(in srgb, var(--mud-palette-tertiary-lighten) 50%, transparent);
    --store-main-color-pale: color-mix(in srgb, var(--mud-palette-tertiary-lighten) 50%, transparent);
    /* Accent */
    --store-tan: var(--mud-palette-secondary);
    --store-tan-soft: var(--mud-palette-secondary-lighten);
    --store-tan-dark: var(--mud-palette-secondary-darken);
    --store-tan-12: color-mix(in srgb, var(--store-tan) 12%, transparent);
    --store-tan-18: color-mix(in srgb, var(--store-tan) 18%, transparent);
    --store-tan-28: color-mix(in srgb, var(--store-tan) 28%, transparent);
    --store-tan-65: color-mix(in srgb, var(--store-tan) 65%, transparent);
    --store-tan-75: color-mix(in srgb, var(--store-tan) 75%, transparent);
    /* Text */
    --store-text-main: #1d2a23;
    --store-text-secondary: #435149;
    --store-text-muted: #667069;
    /* Accent */
    --store-accent-tan: #c1b49a;
    --store-accent-tan-dark: #8f7e5f;
    --store-accent-tan-soft: #f5f1e9;
    --store-tan: var(--store-accent-tan);
    --store-tan-soft: var(--store-accent-tan-soft);
    --store-tan-12: #c1b49a1f;
    --store-tan-18: #c1b49a2e;
    --store-tan-28: #c1b49a47;
    --store-tan-65: #c1b49aa6;
    --store-tan-75: #c1b49abf;
    /* Surfaces and borders */
    --store-white: #ffffff;
    --store-white-12: #ffffff1f;
    --store-white-18: #ffffff2e;
    --store-white-20: #ffffff33;
    --store-white-25: #ffffff40;
    --store-white-72: #ffffffb8;
    --store-white-82: #ffffffd1;
    --store-white-84: #ffffffd6;
    --store-white-90: #ffffffe6;
    --store-white-92: #ffffffeb;
    --store-transparent: #0000;
    --store-background-off-white: #f5f6f4;
    --store-surface-subtle: #f8faf8;
    --store-grey: #f3f2f0;
    --store-page-warm: #f8f7f5;
    --store-page-cool: #e9eee9;
    --store-mobile-page-cool: #eaf0ea;
    --store-border: #d8dddc;
    --store-divider: #e8ece8;
    --store-image-divider: #eef0f3;
    /* Feedback states */
    --store-danger: var(--mud-palette-error);
    --store-danger-soft: var(--mud-palette-error-lighter);
    --store-disclaimer-text: #1f1f1f;
    --store-disclaimer-bg: #fff8d6;
    --store-disclaimer-border: #d89b00;
    /* Shape and elevation */
    --store-radius-sm: 0.75rem;
    --store-radius-md: 1rem;
    --store-radius-lg: 1.4rem;
    --store-shadow-sm: 0 0.35rem 1rem rgba(17, 35, 24, 0.07);
    --store-shadow-md: 0 1rem 2.5rem rgba(17, 35, 24, 0.12);
    --store-shadow-lg: 0 1.4rem 3.5rem rgba(17, 35, 24, 0.17);
    --store-shadow-dialog: var(--mud-elevation-6);
    --store-green-glow: var(--mud-elevation-5);
}

/* Accessibility */

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Shared cards and dialogs */

.store-card {
    min-width: 0;
    overflow: hidden;
    background: var(--store-white);
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    box-shadow: var(--store-shadow-sm);
}

.store-dialog {
    position: relative;
    overflow: hidden;
    color: var(--store-text-main);
    background: var(--store-white);
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-lg);
    box-shadow: var(--store-shadow-dialog);
}

    .store-dialog::before {
        display: block;
        width: 100%;
        height: 0.3rem;
        content: "";
        background: var(--store-main-color);
    }

    .store-dialog .mud-dialog-content {
        padding: 0;
        background: var(--store-white);
    }

/* Shared page header: Begin Order and Receipt */

.store-page-header {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    padding: clamp(1.5rem, 3vw, 2.6rem);
    overflow: hidden;
    color: var(--store-white);
    background: linear-gradient( 115deg, color-mix(in srgb, var(--store-main-color-dark) 12%, transparent), transparent 45% ), linear-gradient( 135deg, color-mix(in srgb, var(--store-main-color-dark) 85%, transparent), color-mix(in srgb, var(--store-main-color) 85%, transparent) );
    border: 1px solid var(--store-white-18);
    border-radius: var(--store-radius-lg);
    box-shadow: var(--store-shadow-lg);
}

    .store-page-header::before,
    .store-page-header::after {
        position: absolute;
        content: "";
        pointer-events: none;
        border-radius: 50%;
    }

    .store-page-header::before {
        top: -7rem;
        right: -3rem;
        width: 22rem;
        aspect-ratio: 1;
        background: color-mix(in srgb, var(--store-main-color-dark) 13%, transparent);
    }

    .store-page-header::after {
        right: 12rem;
        bottom: -8rem;
        width: 15rem;
        aspect-ratio: 1;
        border: 2rem solid var(--store-tan-12);
    }

.store-page-heading {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.store-page-eyebrow {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.7rem;
    padding: 0.35rem 0.7rem;
    color: var(--store-white);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    background: var(--store-white-12);
    border: 1px solid var(--store-white-20);
    border-radius: 999px;
    backdrop-filter: blur(8px);
}

.store-page-title {
    margin: 0;
    color: var(--store-white);
    font-size: clamp(2rem, 4vw, 3.7rem);
    font-weight: 850;
    line-height: 1.04;
    letter-spacing: -0.045em;
    overflow-wrap: anywhere;
}

.store-page-subtitle {
    max-width: 44rem;
    margin: 0.8rem 0 0;
    color: var(--store-white-84);
    font-size: 1rem;
    line-height: 1.65;
}

/* Shared section header */

.store-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    overflow: hidden;
    background: linear-gradient( 135deg, color-mix(in srgb, var(--store-main-color) 10%, transparent), var(--store-white) 95% );
    border-bottom: 1px solid var(--store-border);
    border-radius: var(--store-radius-md) var(--store-radius-md) 0 0;
}

/* Shared form controls */

.store-form-control {
    width: 100%;
    margin: 0 !important;
}

    .store-form-control .mud-input-outlined-border {
        border-color: var(--store-border);
        border-radius: 0.7rem;
    }

    .store-form-control:hover .mud-input-outlined-border {
        border-color: var(--store-main-color-light);
    }

    .store-form-control:focus-within .mud-input-outlined-border {
        border-color: var(--store-main-color);
        border-width: 2px;
    }

    .store-form-control .mud-input-label {
        color: var(--store-text-muted);
        font-weight: 700;
    }

/* Shared action layout */

.store-action-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
}

/* Shared buttons */

:where(.store-btn, .store-primary-action .mud-button-root) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-width: 8rem;
    min-height: 3rem;
    margin: 0;
    padding: 0.75rem 1.25rem;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-sm);
    box-shadow: none;
    font: inherit;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0;
    text-align: center;
    text-transform: none;
    cursor: pointer;
    appearance: none;
    touch-action: manipulation;
    user-select: none;
    -webkit-tap-highlight-color: var(--store-transparent);
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

    :where(.store-btn, .store-primary-action .mud-button-root)::before,
    :where(.store-btn, .store-primary-action .mud-button-root)::after {
        background: var(--store-transparent) !important;
        opacity: 0 !important;
    }

    :where(.store-btn, .store-primary-action .mud-button-root) .mud-ripple-element {
        display: none !important;
        opacity: 0 !important;
    }

:where(.store-btn-primary, .store-primary-action .mud-button-root) {
    color: var(--store-white) !important;
    background: var(--store-main-color) !important;
    border-color: var(--store-main-color-dark);
    box-shadow: var(--store-shadow-sm) !important;
}

.store-btn-secondary {
    color: var(--store-text-secondary) !important;
    background: var(--store-white) !important;
    border-color: var(--store-border);
    box-shadow: none !important;
}

.store-btn-block {
    width: 100%;
    min-width: 0;
}

.store-btn-wide {
    min-width: 10rem;
}

@media (hover: hover) and (pointer: fine) {
    :where(.store-btn-primary, .store-primary-action .mud-button-root):hover:not( :disabled ) {
        color: var(--store-white) !important;
        background: var(--store-main-color-dark) !important;
        border-color: var(--store-main-color-dark);
        box-shadow: var(--store-green-glow) !important;
        transform: translateY(-1px);
    }

    .store-btn-secondary:hover:not(:disabled) {
        color: var(--store-text-main) !important;
        background: var(--store-surface-subtle) !important;
        border-color: var(--store-main-color);
        box-shadow: none !important;
    }
}

:where(.store-btn-primary, .store-primary-action .mud-button-root):active:not( :disabled ) {
    color: var(--store-white) !important;
    background: var(--store-main-color-dark) !important;
    border-color: var(--store-main-color-dark);
    box-shadow: none !important;
    transform: translateY(1px);
}

.store-btn-secondary:active:not(:disabled) {
    color: var(--store-text-main) !important;
    background: var(--store-background-off-white) !important;
    border-color: var(--store-main-color);
    box-shadow: none !important;
    transform: translateY(1px);
}

.store-btn-primary:disabled,
.store-primary-action .mud-button-root:disabled,
.store-btn-secondary:disabled {
    color: var(--store-text-secondary) !important;
    background: var(--store-grey) !important;
    border-color: var(--store-border);
    box-shadow: none !important;
    cursor: not-allowed;
    opacity: 1;
    transform: none;
}

:where(.store-btn, .store-primary-action .mud-button-root):focus-visible,
.store-dialog
:where( input, textarea, select, a[href], [role="button"], [tabindex]:not([tabindex="-1"]) ):focus-visible {
    outline: 3px solid var(--store-main-color);
    outline-offset: 3px;
}

@media (max-width: 599.98px) {
    .store-page-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 1.25rem;
        border-radius: var(--store-radius-md);
    }

    .store-page-title {
        font-size: clamp(1.75rem, 10vw, 2.55rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .store-btn,
    .store-primary-action .mud-button-root,
    .store-card {
        transition: none !important;
        animation: none !important;
    }

        .store-btn:hover:not(:disabled),
        .store-btn:active:not(:disabled),
        .store-primary-action .mud-button-root:hover:not(:disabled),
        .store-primary-action .mud-button-root:active:not(:disabled) {
            transform: none;
        }
}
