:root {
    --store-bg: #f8f3ec;
    --store-surface: #fffaf4;
    --store-surface-warm: #ead2b1;
    --store-text: #2d1b13;
    --store-text-muted: #705f54;
    --store-gold: #b58a4e;
    --store-gold-light: #d8bb8c;
    --store-burgundy: #71172f;
    --store-brown: #2d1d16;
    --store-brown-soft: #493127;
    --store-border: rgba(76, 48, 32, 0.18);
    --store-radius-sm: 8px;
    --store-radius-md: 14px;
    --store-radius-lg: 20px;
    --store-shadow-soft: 0 14px 35px rgba(48, 29, 19, 0.09);
    --store-content-width: 1380px;
    --ink: var(--store-text);
    --muted: var(--store-text-muted);
    --wine: var(--store-burgundy);
    --cream: var(--store-bg);
    --rose: #ead9de;
}

* {
    box-sizing: border-box;
}

html {
    background: var(--store-bg);
}

body {
    margin: 0;
    color: var(--store-text);
    background: var(--store-bg);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.5;
    overflow-x: hidden;
}

body.menu-open {
    overflow: hidden;
}

a {
    color: inherit;
}

img,
svg {
    display: block;
}

img {
    max-width: 100%;
}

main {
    min-width: 0;
}

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

:focus-visible {
    outline: 3px solid rgba(181, 138, 78, 0.55);
    outline-offset: 3px;
}

[hidden] {
    display: none;
}

.container,
.store-header-shell,
.store-footer-shell,
.store-home-section,
.store-info-grid {
    width: min(100% - 40px, var(--store-content-width));
    margin-inline: auto;
}

.skip-link {
    position: absolute;
    left: -9999px;
    z-index: 9999;
    padding: .75rem 1rem;
    border-radius: var(--store-radius-sm);
    background: var(--store-surface);
    color: var(--store-text);
}

.skip-link:focus {
    top: 1rem;
    left: 1rem;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.btn {
    display: inline-flex;
    max-width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1px solid transparent;
    border-radius: var(--store-radius-sm);
    padding: .72rem 1rem;
    color: var(--store-text);
    background: transparent;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.btn:disabled,
button:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-dark {
    border-color: var(--store-brown);
    background: var(--store-brown);
    color: #fffaf4;
}

.btn-outline-dark {
    border-color: var(--store-brown-soft);
    background: transparent;
    color: var(--store-brown);
}

.btn-outline-danger {
    border-color: #a54949;
    color: #8a2020;
}

.btn-link {
    min-height: auto;
    border: 0;
    padding: 0;
    color: var(--store-burgundy);
    background: transparent;
    font-weight: 700;
}

.btn-sm {
    min-height: 36px;
    padding: .45rem .7rem;
    font-size: .875rem;
}

.btn-lg {
    min-height: 52px;
    padding-inline: 1.35rem;
}

.btn-gold {
    border-color: var(--store-gold);
    background: var(--store-gold);
    color: #fffaf4;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.btn-gold:hover {
    border-color: var(--store-brown);
    background: var(--store-brown);
    color: #fffaf4;
}

.form-control,
.form-select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-sm);
    padding: .72rem .85rem;
    color: var(--store-text);
    background: #fff;
}

textarea.form-control {
    min-height: 8rem;
}

.form-label {
    display: block;
    margin-bottom: .35rem;
    color: var(--store-text-muted);
    font-weight: 700;
}

.input-group {
    display: flex;
    gap: .55rem;
}

.input-group .form-control {
    flex: 1 1 auto;
}

.row {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
    min-width: 0;
}

.row > * {
    min-width: 0;
    grid-column: span 12;
}

.col-12 {
    grid-column: span 12;
}

.col-6 {
    grid-column: span 6;
}

.g-3 {
    gap: 1rem;
}

.g-4 {
    gap: 1.5rem;
}

.g-5 {
    gap: 2.5rem;
}

.d-flex {
    display: flex;
}

.flex-wrap {
    flex-wrap: wrap;
}

.align-items-center {
    align-items: center;
}

.align-items-end {
    align-items: flex-end;
}

.justify-content-between {
    justify-content: space-between;
}

.justify-content-center {
    justify-content: center;
}

.gap-2 {
    gap: .5rem;
}

.flex-grow-1 {
    flex-grow: 1;
}

.w-100 {
    width: 100%;
}

.h-100 {
    height: 100%;
}

.text-center {
    text-align: center;
}

.text-muted,
.text-secondary {
    color: var(--store-text-muted);
}

.text-danger {
    color: #8a2020;
}

.small,
small {
    font-size: .875rem;
}

.lead {
    font-size: 1.15rem;
}

.mt-2 {
    margin-top: .5rem;
}

.mt-3 {
    margin-top: 1rem;
}

.mt-4 {
    margin-top: 1.5rem;
}

.mt-5 {
    margin-top: 3rem;
}

.mb-2 {
    margin-bottom: .5rem;
}

.mb-3 {
    margin-bottom: 1rem;
}

.mb-4 {
    margin-bottom: 1.5rem;
}

.my-3 {
    margin-block: 1rem;
}

.p-0 {
    padding: 0;
}

.p-3 {
    padding: 1rem;
}

.p-4 {
    padding: 1.5rem;
}

.py-5 {
    padding-block: 3rem;
}

.ps-3 {
    padding-left: 1rem;
}

.border {
    border: 1px solid var(--store-border);
}

.border-start {
    border-left: 1px solid var(--store-border);
}

.rounded {
    border-radius: var(--store-radius-sm);
}

.card,
.filter-panel,
.customer-form,
.address-card,
.cart-summary {
    min-width: 0;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    background: var(--store-surface);
    box-shadow: var(--store-shadow-soft);
}

.customer-form,
.filter-panel,
.address-card,
.cart-summary {
    padding: 1.5rem;
}

.alert {
    position: relative;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-sm);
    margin-block: 1rem;
    padding: 1rem 3rem 1rem 1rem;
    background: var(--store-surface);
}

.alert-success {
    border-color: rgba(38, 125, 74, .28);
    background: #eef8f0;
}

.alert-warning {
    border-color: rgba(181, 138, 78, .38);
    background: #fff4dd;
}

.alert-danger {
    border-color: rgba(138, 32, 32, .32);
    background: #fff0f0;
}

.alert-info {
    border-color: rgba(69, 104, 143, .28);
    background: #eef5fb;
}

.payment-checkout-heading {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.payment-checkout-heading h1 {
    margin-bottom: 0;
}

.payment-amount-card {
    display: grid;
    min-width: 190px;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    padding: .9rem 1.1rem;
    background: var(--store-surface);
    box-shadow: var(--store-shadow-soft);
}

.payment-amount-card span,
.payment-amount-card small {
    color: var(--store-text-muted);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.payment-amount-card strong {
    color: var(--store-burgundy);
    font-size: clamp(1.35rem, 3vw, 1.8rem);
    font-variant-numeric: tabular-nums;
}

.payment-form-card,
.payment-resume-card {
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-lg);
    padding: clamp(1.1rem, 3vw, 2rem);
    background: var(--store-surface);
    box-shadow: var(--store-shadow-soft);
}

.payment-form-card-header {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2rem;
    align-items: flex-start;
    justify-content: space-between;
    border-bottom: 1px solid var(--store-border);
    padding-bottom: 1.25rem;
}

.payment-form-card-header h2,
.payment-resume-card h2 {
    margin: 0 0 .35rem;
}

.payment-form-card-header p:not(.eyebrow),
.payment-resume-card p:not(.eyebrow) {
    max-width: 680px;
    margin: 0;
    color: var(--store-text-muted);
}

.payment-brand-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
    justify-content: flex-end;
}

.payment-brand {
    display: inline-flex;
    min-width: 76px;
    height: 46px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid rgba(45, 27, 19, .14);
    border-radius: 10px;
    padding: .45rem .65rem;
    background: #fff;
    color: var(--store-text);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1;
    text-align: center;
}

.payment-brand img {
    width: auto;
    max-width: 100px;
    max-height: 30px;
    object-fit: contain;
}

.payment-brand--openpay {
    min-width: 108px;
}

.payment-brand--openpay img {
    max-width: 94px;
}

.payment-brand--visa img {
    max-width: 70px;
}

.payment-brand--mastercard img {
    max-width: 62px;
}

.payment-brand--amex {
    min-width: 88px;
}

.payment-brand--amex img {
    max-width: 74px;
}

.payment-fieldset {
    min-width: 0;
    border: 0;
    margin: 0;
    padding: 1.5rem 0 0;
}

.payment-fieldset + .payment-fieldset {
    border-top: 1px solid var(--store-border);
    margin-top: 1.5rem;
}

.payment-fieldset legend {
    width: 100%;
    margin-bottom: 1rem;
    padding: 0;
    color: var(--store-brown);
    font-size: 1.02rem;
    font-weight: 800;
}

.payment-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.25rem;
}

.payment-address-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.payment-field-group {
    min-width: 0;
}

.payment-field-group--full {
    grid-column: 1 / -1;
}

.payment-field-group--wide {
    grid-column: span 2;
}

.payment-field-group .form-label {
    display: inline-block;
    margin-bottom: .4rem;
    font-weight: 750;
}

.payment-field-group .form-control {
    min-height: 50px;
    border-radius: 10px;
    background: #fff;
}

.payment-field-group .form-control:focus {
    border-color: var(--store-gold);
    box-shadow: 0 0 0 3px rgba(181, 138, 78, .16);
}

.payment-field-help {
    display: block;
    margin-top: .35rem;
    color: var(--store-text-muted);
    font-size: .78rem;
}

.payment-input-shell {
    position: relative;
}

.payment-input-shell--card .form-control {
    padding-right: 9rem;
}

.payment-card-number,
.payment-expiry,
.payment-cvv {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 1.02rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: .07em;
}

.payment-card-brand-indicator {
    position: absolute;
    top: 50%;
    right: .85rem;
    display: inline-flex;
    min-width: 68px;
    min-height: 28px;
    align-items: center;
    justify-content: flex-end;
    padding-left: 36px;
    transform: translateY(-50%);
    background-position: left center;
    background-repeat: no-repeat;
    background-size: 32px auto;
    color: var(--store-text-muted);
    font-size: .72rem;
    font-weight: 800;
    pointer-events: none;
    white-space: nowrap;
}

[data-card-brand="visa"] .payment-card-brand-indicator {
    background-image: url('/assets/store/images/payments/visa.svg');
    background-size: 38px auto;
}

[data-card-brand="mastercard"] .payment-card-brand-indicator {
    background-image: url('/assets/store/images/payments/mastercard.svg');
}

[data-card-brand="amex"] .payment-card-brand-indicator {
    background-image: url('/assets/store/images/payments/american-express.svg');
}

.payment-input-shell--cvv .form-control {
    padding-right: 5.8rem;
}

.payment-cvv-toggle {
    position: absolute;
    top: 50%;
    right: .45rem;
    min-height: 36px;
    border: 0;
    border-radius: 7px;
    padding: .35rem .55rem;
    transform: translateY(-50%);
    background: rgba(181, 138, 78, .12);
    color: var(--store-brown);
    font-size: .78rem;
    font-weight: 800;
    cursor: pointer;
}

.payment-submit-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--store-border);
    margin-top: 1.5rem;
    padding-top: 1.5rem;
}

.payment-security-note {
    display: grid;
    max-width: 650px;
    gap: .15rem;
}

.payment-security-note strong {
    color: var(--store-burgundy);
}

.payment-security-note span {
    color: var(--store-text-muted);
    font-size: .86rem;
}

.payment-submit-button {
    min-width: min(100%, 260px);
    min-height: 52px;
    padding-inline: 1.5rem;
}

.payment-resume-card {
    display: grid;
    gap: 1rem;
}

body.payment-is-processing {
    overflow: hidden;
}

.swal2-container {
    z-index: 25000 !important;
}

.galen-swal-popup {
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-lg) !important;
    padding: 1.5rem !important;
    background: var(--store-surface) !important;
    color: var(--store-text) !important;
    box-shadow: 0 28px 80px rgba(45, 27, 19, .28) !important;
}

.galen-swal-title {
    color: var(--store-brown) !important;
    font-size: clamp(1.25rem, 3vw, 1.65rem) !important;
}

.galen-swal-text {
    color: var(--store-text-muted) !important;
    line-height: 1.6 !important;
    white-space: pre-line;
}

.galen-swal-confirm,
.galen-swal-cancel {
    margin: .25rem !important;
}

.galen-swal-processing {
    max-width: 440px !important;
}

.galen-swal-loader {
    border-color: var(--store-gold) transparent var(--store-gold) transparent !important;
}

.payment-processing-overlay {
    position: fixed;
    inset: 0;
    z-index: 26000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(24, 14, 10, .72);
    backdrop-filter: blur(4px);
}

.payment-processing-overlay[hidden] {
    display: none;
}

.payment-processing-card {
    display: grid;
    width: min(100%, 430px);
    justify-items: center;
    gap: .85rem;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-lg);
    padding: 2rem 1.5rem;
    background: var(--store-surface);
    box-shadow: 0 28px 80px rgba(0, 0, 0, .3);
    text-align: center;
}

.payment-processing-card p {
    margin: 0;
    color: var(--store-text-muted);
}

.payment-processing-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid rgba(181, 138, 78, .25);
    border-top-color: var(--store-gold);
    border-radius: 999px;
    animation: payment-spin .8s linear infinite;
}

@keyframes payment-spin {
    to { transform: rotate(360deg); }
}

.payment-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    margin: 1rem 0 1.25rem;
}

.payment-result-attempt {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .75rem;
    align-items: center;
    justify-content: space-between;
}

.btn-close {
    position: absolute;
    top: .55rem;
    right: .55rem;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: currentColor;
    cursor: pointer;
}

.btn-close::before {
    content: "x";
    font-size: 1.1rem;
}

.badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .22rem .55rem;
    background: var(--store-surface-warm);
    color: var(--store-text);
    font-size: .75rem;
    font-weight: 700;
}

.text-bg-dark {
    background: var(--store-brown);
    color: #fff;
}

.text-bg-secondary,
.text-bg-warning {
    background: var(--store-gold-light);
    color: var(--store-text);
}

.breadcrumb,
.pagination,
.store-nav-list,
.store-footer-links,
.store-footer-care,
.store-footer-social,
.store-hero-attributes {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.breadcrumb {
    flex-wrap: wrap;
    gap: .45rem;
    color: var(--store-text-muted);
    font-size: .9rem;
}

.breadcrumb-item,
.breadcrumb a,
.section-heading,
.section-heading h1,
.section-heading h2,
.empty-store,
.alert {
    min-width: 0;
    overflow-wrap: anywhere;
}

.breadcrumb-item + .breadcrumb-item::before {
    content: "/";
    margin-right: .45rem;
}

.pagination {
    justify-content: center;
    gap: .35rem;
}

.page-link {
    display: grid;
    min-width: 40px;
    min-height: 40px;
    place-items: center;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-sm);
    text-decoration: none;
}

.page-item.active .page-link {
    border-color: var(--store-gold);
    background: var(--store-gold);
    color: #fff;
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.table {
    width: 100%;
    border-collapse: collapse;
}

.table th,
.table td {
    border-bottom: 1px solid var(--store-border);
    padding: .8rem;
    text-align: left;
}

.eyebrow {
    margin: 0 0 .5rem;
    color: var(--store-gold);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.brand {
    color: var(--store-text);
    font-family: Georgia, "Times New Roman", serif;
    text-decoration: none;
}

.brand strong {
    display: block;
    font: 2.45rem/1 Georgia, "Times New Roman", serif;
    letter-spacing: .06em;
}

.brand span {
    display: block;
    margin-top: .25rem;
    font: 700 .7rem/1 Inter, ui-sans-serif, system-ui, sans-serif;
    letter-spacing: .35em;
    text-transform: uppercase;
}

.store-header {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid rgba(76, 48, 32, 0.12);
    background: rgba(255, 250, 244, 0.94);
    backdrop-filter: blur(12px);
}

.store-header-shell {
    display: grid;
    min-height: 94px;
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.25rem;
}

.store-header-shell > * {
    min-width: 0;
}

.store-header-brand {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}

.store-header-brand img {
    width: auto;
    max-width: 190px;
    max-height: 72px;
    object-fit: contain;
}

.store-menu-button {
    display: none;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid var(--store-border);
    border-radius: 999px;
    background: transparent;
    color: var(--store-text);
}

.store-nav {
    justify-self: center;
}

.store-nav-list {
    align-items: center;
    gap: clamp(.35rem, 1.5vw, 1.6rem);
}

.store-nav-link {
    position: relative;
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: var(--store-text);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-decoration: none;
    text-transform: uppercase;
}

.store-nav-link::after {
    position: absolute;
    right: 0;
    bottom: .42rem;
    left: 0;
    height: 1px;
    background: var(--store-gold);
    content: "";
    opacity: 0;
    transform: scaleX(.55);
    transition: opacity .18s ease, transform .18s ease;
}

.store-nav-link:hover::after,
.store-nav-link:focus-visible::after,
.store-nav-link[aria-current="page"]::after {
    opacity: 1;
    transform: scaleX(1);
}

.store-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .35rem;
}

.store-icon-button {
    position: relative;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--store-text);
    text-decoration: none;
    cursor: pointer;
}

.store-icon-button:hover {
    background: rgba(181, 138, 78, .12);
}

.cart-badge {
    position: absolute;
    top: 3px;
    right: 1px;
    display: grid;
    min-width: 1.15rem;
    height: 1.15rem;
    place-items: center;
    border-radius: 999px;
    background: var(--store-gold);
    color: #fff;
    font-size: .67rem;
    font-weight: 800;
}

.store-header-search {
    width: min(100% - 40px, 720px);
    margin: 0 auto;
    padding: 0 0 1rem;
}

.store-header-search form {
    display: flex;
    gap: .65rem;
}

.store-home-hero {
    position: relative;
    min-height: clamp(520px, 55vw, 650px);
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 50%, rgba(255, 250, 244, .62), transparent 34%),
        linear-gradient(90deg, #cba574 0%, #eed4a9 24%, #f7e4c3 50%, #dfbd8c 76%, #bc9665 100%);
}

.store-hero-media {
    position: absolute;
    inset: 0;
}

.store-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.store-hero-content {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: clamp(520px, 55vw, 650px);
    width: min(100% - 40px, 760px);
    margin-inline: auto;
    place-content: center;
    justify-items: center;
    padding-block: 4rem;
    text-align: center;
}

.store-hero-content h1 {
    max-width: 720px;
    margin: .15rem 0 .8rem;
    font: clamp(3rem, 5vw, 5.25rem)/1.03 Georgia, "Times New Roman", serif;
    color: var(--store-text);
}

.store-hero-content p:not(.eyebrow) {
    max-width: 540px;
    margin: 0 auto 1.25rem;
    color: var(--store-text);
    font-size: clamp(1rem, 1.35vw, 1.2rem);
}

.store-hero-cta {
    min-width: min(100%, 270px);
    margin-top: .3rem;
}

.store-hero-attributes {
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem 2rem;
    margin-top: 3rem;
}

.store-hero-attributes li {
    display: inline-flex;
    max-width: 180px;
    align-items: center;
    gap: .55rem;
    color: var(--store-brown-soft);
    font-size: .78rem;
    line-height: 1.25;
    text-align: left;
}

.store-hero-attributes svg {
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    color: var(--store-brown-soft);
}

.store-home-section {
    padding-block: clamp(3.2rem, 5.8vw, 5rem) 1rem;
}

.store-section-heading,
.home-heading,
.section-heading {
    margin-bottom: clamp(1.4rem, 3vw, 2rem);
    text-align: center;
}

.store-section-heading {
    display: grid;
    grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr);
    align-items: center;
    gap: clamp(.9rem, 3vw, 2rem);
}

.store-section-heading span {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--store-gold-light), transparent);
}

.store-section-heading h2,
.home-heading h2,
.section-heading h1,
.section-heading h2,
.empty-store h2 {
    margin: 0;
    font: clamp(1.8rem, 3vw, 3rem)/1.1 Georgia, "Times New Roman", serif;
}

.store-collection-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
}

.store-collection-card {
    position: relative;
    display: block;
    min-height: 360px;
    overflow: hidden;
    border-radius: var(--store-radius-md);
    color: #fffaf4;
    background: var(--store-surface-warm);
    text-decoration: none;
    box-shadow: var(--store-shadow-soft);
}

.store-collection-card img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    transition: transform .45s ease;
}

.store-collection-card::after {
    position: absolute;
    inset: 42% 0 0;
    background: linear-gradient(transparent, rgba(45, 29, 22, .92));
    content: "";
}

.store-collection-card:hover img {
    transform: scale(1.035);
}

.store-collection-card-copy {
    position: absolute;
    right: 1.4rem;
    bottom: 1.2rem;
    left: 1.4rem;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: .75rem;
    text-align: center;
}

.store-collection-card-copy strong {
    font: clamp(1.35rem, 2vw, 2rem)/1.05 Georgia, "Times New Roman", serif;
    text-transform: uppercase;
}

.store-collection-card-copy small {
    min-width: 170px;
    border-radius: var(--store-radius-sm);
    padding: .62rem .9rem;
    background: rgba(255, 236, 202, .92);
    color: var(--store-brown);
    font-weight: 800;
    text-transform: uppercase;
}

.store-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
}

.store-product-card,
.product-card {
    position: relative;
    min-width: 0;
    border: 0;
    border-radius: var(--store-radius-sm);
    background: transparent;
}

.store-product-image,
.product-image {
    display: block;
    overflow: hidden;
    border-radius: var(--store-radius-sm);
    background: var(--store-surface-warm);
    aspect-ratio: 4 / 5;
}

.store-product-image img,
.product-image img,
.main-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.store-product-badges {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 1;
    display: grid;
    gap: .35rem;
    min-height: 0;
}

.store-product-badges span,
.product-tags span {
    width: max-content;
    border-radius: var(--store-radius-sm);
    padding: .22rem .48rem;
    background: rgba(255, 240, 213, .92);
    color: var(--store-brown);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.store-product-body,
.product-card-body {
    padding: .9rem .05rem 0;
}

.product-category {
    margin: 0 0 .2rem;
    color: var(--store-text-muted);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.store-product-card h2,
.product-card h2 {
    margin: 0 0 .35rem;
    font: 1.08rem/1.25 Georgia, "Times New Roman", serif;
}

.store-product-card h2 a,
.product-card h2 a {
    text-decoration: none;
}

.product-price {
    margin: 0 0 .85rem;
    font-weight: 800;
}

.product-price del {
    display: block;
    color: var(--store-text-muted);
    font-size: .88rem;
    font-weight: 500;
}

.store-product-actions {
    display: grid;
    grid-template-columns: 1fr 48px;
    gap: .55rem;
    align-items: stretch;
}

.store-product-actions form {
    margin: 0;
}

.store-product-add,
.store-product-wishlist {
    width: 100%;
    border-radius: var(--store-radius-sm);
}

.store-product-wishlist {
    padding-inline: .75rem;
}

.store-info-band {
    margin-top: clamp(3rem, 5vw, 4.8rem);
    border-top: 1px solid var(--store-border);
    background: var(--store-surface);
}

.store-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    padding-block: 1.7rem;
}

.store-info-item {
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 1rem;
    align-items: center;
    min-width: 0;
}

.store-info-item > div,
.store-info-item h2,
.store-info-item strong,
.store-info-item p,
.store-collection-card-copy,
.store-collection-card-copy strong,
.store-product-card,
.product-card,
.store-product-body,
.product-card-body,
.store-product-card h2,
.product-card h2,
.store-product-card h2 a,
.product-card h2 a {
    min-width: 0;
    overflow-wrap: anywhere;
}

.store-info-item svg {
    width: 48px;
    height: 48px;
    color: var(--store-brown);
}

.store-info-item h2 {
    margin: 0;
    font: 1rem/1.2 Georgia, "Times New Roman", serif;
    text-transform: uppercase;
}

.store-info-item strong {
    display: block;
    margin-top: .1rem;
    font-weight: 700;
}

.store-info-item p {
    margin: .1rem 0 0;
    color: var(--store-text-muted);
}

.store-section {
    padding-block: clamp(3rem, 6vw, 5rem);
}

.empty-store {
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    padding: 4rem 1rem;
    background: var(--store-surface);
    text-align: center;
}

.main-product-image {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border-radius: var(--store-radius-md);
    background: var(--store-surface-warm);
    aspect-ratio: 4 / 5;
}

.thumbnail-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 90px));
    gap: .7rem;
    margin-top: 1rem;
}

.thumbnail-list button {
    width: 100%;
    border: 2px solid transparent;
    border-radius: var(--store-radius-sm);
    padding: 0;
    background: transparent;
}

.thumbnail-list img {
    width: 100%;
    height: auto;
    aspect-ratio: 9 / 11;
    border-radius: calc(var(--store-radius-sm) - 2px);
    object-fit: cover;
}

.product-detail,
.product-detail h1,
.product-detail p,
.product-detail fieldset,
.product-description,
.related-products {
    min-width: 0;
    overflow-wrap: anywhere;
}

.product-detail h1 {
    margin: 0 0 1rem;
    font: clamp(2.2rem, 4vw, 4rem)/1.05 Georgia, "Times New Roman", serif;
}

.detail-price {
    font-size: 1.6rem;
    font-weight: 800;
}

.product-detail fieldset {
    margin: 1.5rem 0;
    border: 0;
    padding: 0;
}

.product-detail legend {
    margin-bottom: .65rem;
    font-weight: 800;
}

.option-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.option-buttons button {
    max-width: 100%;
    min-height: 42px;
    border: 1px solid var(--store-border);
    border-radius: 999px;
    padding: .55rem 1rem;
    background: #fff;
    color: var(--store-text);
}

.option-buttons button.active {
    border-color: var(--store-brown);
    background: var(--store-brown);
    color: #fff;
}

.availability {
    color: var(--store-burgundy);
    font-weight: 800;
}

.quantity-row {
    display: grid;
    grid-template-columns: minmax(88px, 96px) minmax(0, 1fr);
    gap: .6rem;
    align-items: end;
}

.quantity-row label,
.quantity-row input {
    grid-column: 1;
}

.quantity-row button {
    min-width: 0;
    grid-row: 1 / 3;
    grid-column: 2;
}

.product-description {
    border-top: 1px solid var(--store-border);
    margin-top: 2rem;
    padding-top: 2rem;
    line-height: 1.8;
}

.related-products {
    margin-top: 5rem;
}

.cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 2rem;
    align-items: start;
}

.cart-item {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr) auto;
    gap: 1.25rem;
    border-bottom: 1px solid var(--store-border);
    padding: 1.25rem 0;
}

.cart-item > *,
.cart-item-info {
    min-width: 0;
}

.cart-item h2,
.cart-item h2 a,
.cart-item p,
.cart-summary,
.cart-summary h2,
.cart-summary p,
.cart-summary span,
.cart-summary strong,
.account-grid,
.account-grid > a,
.account-grid > div,
.account-grid > article,
.address-card,
.address-card h2,
.address-card p {
    min-width: 0;
    overflow-wrap: anywhere;
}

.cart-item form.d-flex {
    flex-wrap: wrap;
}

.cart-item form.d-flex .form-control {
    flex: 1 1 86px;
    max-width: 120px;
}

.cart-item form.d-flex .btn {
    flex: 1 1 120px;
}

.cart-item img {
    width: 120px;
    height: 150px;
    border-radius: var(--store-radius-sm);
    object-fit: cover;
}

.cart-item h2 {
    margin: 0;
    font: 1.35rem/1.2 Georgia, "Times New Roman", serif;
}

.cart-item h2 a {
    text-decoration: none;
}

.cart-summary {
    position: sticky;
    top: 120px;
    height: max-content;
}

.cart-summary > div,
.subtotal {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .6rem 0;
}

.cart-summary .d-flex {
    flex-wrap: wrap;
}

.address-card .d-flex,
.store-section .d-flex.gap-2 {
    flex-wrap: wrap;
}

.cart-summary .subtotal {
    border-top: 1px solid var(--store-border);
    font-size: 1.15rem;
}

.account-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.account-grid > a,
.account-grid > div,
.account-grid > article {
    display: flex;
    min-height: 150px;
    flex-direction: column;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    padding: 1.5rem;
    color: var(--store-text);
    background: var(--store-surface);
    text-decoration: none;
}

.account-grid strong {
    font: 1.4rem/1.2 Georgia, "Times New Roman", serif;
}

.account-grid span {
    margin-top: .5rem;
    color: var(--store-text-muted);
}

.address-card h2 {
    margin: 0 0 .65rem;
    font: 1.45rem/1.2 Georgia, "Times New Roman", serif;
}

.narrow-page {
    max-width: 920px;
}

.store-footer {
    background: radial-gradient(circle at 88% 18%, rgba(181, 138, 78, .16), transparent 26%), linear-gradient(120deg, #251510, #3d241c);
    color: #f5eadf;
}

.store-footer-shell {
    padding-block: 3rem 1.3rem;
}

.store-footer-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.45fr) repeat(3, minmax(150px, 1fr)) 120px;
    gap: clamp(1.5rem, 3vw, 3rem);
}

.store-footer h2 {
    margin: .15rem 0 1rem;
    color: #fffaf4;
    font: 1rem/1.2 Georgia, "Times New Roman", serif;
    text-transform: uppercase;
}

.store-footer a {
    color: #f0dfce;
    text-decoration: none;
}

.store-footer a:hover {
    color: var(--store-gold-light);
}

.store-footer-brand p {
    max-width: 290px;
    color: #e2d2c5;
}

.store-footer-logo {
    width: auto;
    max-width: 190px;
    max-height: 72px;
    object-fit: contain;
}

.brand--footer {
    color: #f3dcc2;
}

.store-footer-links,
.store-footer-care,
.store-footer-social {
    display: grid;
    gap: .55rem;
}

.store-footer-care li {
    display: grid;
    gap: .15rem;
}

.store-footer-care strong {
    color: #fffaf4;
}

.store-footer-care span,
.store-footer-care small {
    color: #e2d2c5;
}

.store-footer-social {
    grid-auto-flow: column;
    justify-content: start;
    margin-top: 1rem;
}

.store-footer-social a {
    display: grid;
    min-width: 44px;
    min-height: 44px;
    place-items: center;
    border: 1px solid rgba(255, 250, 244, .24);
    border-radius: 999px;
    padding-inline: .75rem;
}

.store-footer-monogram {
    align-self: center;
    justify-self: end;
    color: rgba(216, 187, 140, .82);
    font: clamp(4rem, 8vw, 7rem)/1 Georgia, "Times New Roman", serif;
}

.store-footer-legal {
    border-top: 1px solid rgba(255, 250, 244, .16);
    margin: 2.4rem 0 0;
    padding-top: 1.1rem;
    text-align: center;
}

.footer-note {
    margin: 0;
    color: #d8c8bb;
    font-size: .9rem;
}

.store-footer-legal-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .3rem 1.2rem;
    list-style: none;
    margin: .6rem 0 0;
    padding: 0;
    font-size: .85rem;
}

.store-footer-legal-links a {
    color: #d8c8bb;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.store-footer-legal-links a:hover {
    color: #fffaf4;
}

.contact-info-list,
.contact-social-list {
    list-style: none;
    margin: 1.2rem 0;
    padding: 0;
    display: grid;
    gap: .5rem;
}

.identity-upload {
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    padding: 1.25rem;
    background: var(--store-surface);
}

.identity-preview {
    display: block;
    max-width: 260px;
    max-height: 110px;
    object-fit: contain;
}

.identity-preview--favicon {
    width: 80px;
    height: 80px;
}

.identity-placeholder {
    display: grid;
    min-height: 100px;
    place-items: center;
    border: 1px dashed var(--store-border);
    border-radius: var(--store-radius-sm);
    color: var(--store-text-muted);
    background: #f7f3f0;
}

.category-image-admin {
    display: grid;
    grid-template-columns: 180px 1fr;
    align-items: center;
    gap: 1.5rem;
}

.category-image-admin img {
    width: 180px;
    border-radius: var(--store-radius-sm);
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.loyalty-card-graphics {
    display: grid;
    justify-items: center;
    gap: 1rem;
    overflow-x: auto;
}

.loyalty-card-graphics svg {
    max-width: 100%;
    height: auto;
}

@media (min-width: 768px) {
    .col-md-2 {
        grid-column: span 2;
    }

    .col-md-3 {
        grid-column: span 3;
    }

    .col-md-6 {
        grid-column: span 6;
    }
}

@media (min-width: 992px) {
    .col-lg-3 {
        grid-column: span 3;
    }

    .col-lg-5 {
        grid-column: span 5;
    }

    .col-lg-6 {
        grid-column: span 6;
    }

    .col-lg-7 {
        grid-column: span 7;
    }

    .g-lg-4 {
        gap: 1.5rem;
    }
}

@media (max-width: 1100px) {
    .store-header-shell {
        grid-template-columns: 1fr auto auto;
        min-height: 78px;
    }

    .store-menu-button {
        display: grid;
        grid-column: 2;
        grid-row: 1;
    }

    .store-actions {
        grid-column: 3;
        grid-row: 1;
    }

    .store-nav {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .store-nav-panel {
        display: none;
        border-top: 1px solid var(--store-border);
        padding-block: .75rem 1rem;
    }

    .store-nav-panel.is-open {
        display: block;
    }

    .store-nav-list {
        display: grid;
        gap: .15rem;
    }

    .store-nav-link {
        width: 100%;
        justify-content: center;
    }

    .store-collection-grid,
    .store-info-grid,
    .store-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .store-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .store-footer-monogram {
        display: none;
    }

    .cart-layout {
        grid-template-columns: 1fr;
    }

    .cart-summary {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .container,
    .store-header-shell,
    .store-footer-shell,
    .store-home-section,
    .store-info-grid {
        width: min(100% - 28px, var(--store-content-width));
    }

    .store-header-brand img {
        max-width: 112px;
        max-height: 52px;
    }

    .brand strong {
        font-size: 1.55rem;
    }

    .brand span {
        font-size: .58rem;
        letter-spacing: 0;
    }

    .store-actions {
        gap: .1rem;
    }

    .store-icon-button,
    .store-menu-button {
        width: 40px;
        height: 40px;
    }

    .store-header-shell {
        gap: .45rem;
    }

    .store-header-search form {
        display: grid;
    }

    .store-home-hero,
    .store-hero-content {
        min-height: min(82vh, 620px);
    }

    .store-hero-media img {
        object-position: center top;
    }

    .store-hero-content {
        justify-content: center;
        align-content: end;
        padding-block: 11rem 2rem;
    }

    .store-hero-content h1 {
        font-size: clamp(2.4rem, 12vw, 3.25rem);
    }

    .store-hero-attributes {
        margin-top: 1.6rem;
        gap: .8rem;
    }

    .store-hero-attributes li {
        max-width: 130px;
        font-size: .72rem;
    }

    .store-section-heading {
        grid-template-columns: 1fr;
        gap: .65rem;
    }

    .store-section-heading span {
        width: min(140px, 48vw);
        justify-self: center;
    }

    .store-collection-grid,
    .store-info-grid,
    .store-footer-grid,
    .account-grid {
        grid-template-columns: 1fr;
    }

    .store-collection-card {
        min-height: 330px;
    }

    .store-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem .8rem;
    }

    .store-product-actions {
        grid-template-columns: 1fr;
    }

    .store-product-wishlist {
        width: 100%;
    }

    .cart-item {
        grid-template-columns: 92px 1fr;
    }

    .cart-item img {
        width: 92px;
        height: 115px;
    }

    .cart-item > strong {
        grid-column: 2;
    }

    .quantity-row {
        grid-template-columns: minmax(76px, 88px) minmax(0, 1fr);
    }

    .product-detail h1 {
        font-size: 2rem;
    }

    .product-detail form.mt-3 .btn,
    .product-detail .quantity-row .btn {
        width: 100%;
    }

    .input-group {
        display: grid;
    }

    .category-image-admin {
        grid-template-columns: 1fr;
    }

    .category-image-admin img {
        width: 150px;
    }
}

@media (max-width: 575.98px) {
    .store-section {
        padding-block: 2rem 3rem;
    }

    .g-5 {
        gap: 1.5rem;
    }

    .thumbnail-list {
        grid-template-columns: repeat(auto-fill, minmax(62px, 1fr));
    }

    .quantity-row {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .quantity-row label,
    .quantity-row input,
    .quantity-row button {
        grid-column: 1;
        grid-row: auto;
    }

    .cart-item {
        grid-template-columns: 82px 1fr;
        gap: .85rem;
    }

    .cart-item img {
        width: 82px;
        height: 103px;
    }

    .cart-item > strong {
        grid-column: 1 / -1;
        justify-self: end;
    }

    .cart-item form.d-flex .form-control,
    .cart-item form.d-flex .btn {
        max-width: none;
        flex-basis: 100%;
    }

    .customer-form,
    .filter-panel,
    .address-card,
    .cart-summary {
        padding: 1rem;
    }

    .payment-result-actions .btn {
        width: 100%;
    }

    .section-heading.d-flex {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }
}

@media (max-width: 390px) {
    .col-6 {
        grid-column: span 12;
    }

    .store-product-grid {
        grid-template-columns: 1fr;
    }

    .store-header-shell {
        gap: .35rem;
    }

    .store-icon-button,
    .store-menu-button {
        width: 37px;
        height: 37px;
    }

    .store-header-brand img {
        max-width: 96px;
    }

    .brand strong {
        font-size: 1.32rem;
    }
}


@media (max-width: 991.98px) {
    .payment-address-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .payment-checkout-heading,
    .payment-form-card-header,
    .payment-submit-row {
        align-items: stretch;
    }

    .payment-amount-card,
    .payment-submit-button {
        width: 100%;
    }

    .payment-brand-strip {
        justify-content: flex-start;
    }

    .payment-form-grid,
    .payment-address-grid {
        grid-template-columns: 1fr;
    }

    .payment-field-group--wide,
    .payment-field-group--country {
        grid-column: 1;
    }

    .payment-input-shell--card .form-control {
        padding-right: 1rem;
        padding-bottom: 2.35rem;
    }

    .payment-card-brand-indicator {
        top: auto;
        right: .8rem;
        bottom: .35rem;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto;
        transition-duration: .001ms;
        animation-duration: .001ms;
        animation-iteration-count: 1;
    }
}

/* Auditoría responsiva global 2026-08-06 */
*,
*::before,
*::after {
    box-sizing: border-box;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
}

main,
.container,
.row,
.row > *,
.store-product-grid,
.store-product-grid > *,
.store-collection-grid,
.store-collection-grid > *,
.store-info-grid,
.store-info-grid > *,
.store-footer-grid,
.store-footer-grid > *,
.account-grid,
.account-grid > *,
.cart-layout,
.cart-layout > *,
.product-detail,
.customer-form,
.filter-panel,
.address-card,
.card,
.form-control,
.form-select,
.input-group {
    min-width: 0;
    max-width: 100%;
}

.store-product-card,
.product-card {
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
}

.store-product-body,
.product-card-body {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

.store-product-actions {
    width: 100%;
    margin-top: auto;
}

.row > [class*="col-"] > :is(.store-product-card, .product-card, .address-card, .card, .account-card),
.store-collection-card,
.address-card,
.account-grid > * {
    width: 100%;
    height: 100%;
}

.store-product-actions form,
.store-product-actions a,
.store-product-actions button {
    min-width: 0;
}

.table-responsive {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.table-responsive > .table {
    min-width: 620px;
    margin-bottom: 0;
}

.store-footer-grid > *,
.store-footer-brand,
.store-footer-care li,
.store-footer-links li,
.store-footer-legal,
.store-footer-legal > * {
    min-width: 0;
    overflow-wrap: anywhere;
}

.galen-swal-popup {
    width: min(100%, 34rem) !important;
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
}

@media (max-width: 767.98px) {
    .store-product-actions {
        grid-template-columns: minmax(0, 1fr) 46px;
    }

    .store-footer-legal {
        align-items: flex-start;
        flex-direction: column;
        gap: .75rem;
    }

    .store-footer-legal-links {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .table-responsive > .table {
        min-width: 560px;
    }
}

@media (max-width: 575.98px) {
    .store-product-actions {
        grid-template-columns: 1fr;
    }

    .store-product-wishlist {
        min-height: 44px;
    }

    .store-header-search form,
    .payment-result-actions,
    .store-section .d-flex,
    .address-card .d-flex {
        align-items: stretch;
    }

    .payment-result-actions > .btn,
    .store-section .d-flex > .btn,
    .store-section .d-flex > form,
    .store-section .d-flex > form .btn {
        width: 100%;
    }
}

/* ==========================================================================
   Checkout simplificado
   2026-08-15
   ========================================================================== */

.checkout-page {
    --checkout-accent: var(--store-burgundy);
    --checkout-accent-soft: rgba(113, 23, 47, .08);
    --checkout-success: #2f6a45;
}

.checkout-page .section-heading {
    max-width: 760px;
    margin-inline: auto;
}

.checkout-page .section-heading > p:last-child {
    max-width: 650px;
    margin: .7rem auto 0;
    color: var(--store-text-muted);
}

.checkout-layout {
    align-items: start;
}

.checkout-form {
    min-width: 0;
}

.checkout-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    background: var(--store-surface);
    box-shadow: var(--store-shadow-soft);
}

.checkout-card-body {
    padding: clamp(1.1rem, 2.4vw, 1.6rem);
}

.checkout-card-title {
    margin: 0 0 1rem;
    color: var(--store-brown);
    font: 700 1.18rem/1.25 Georgia, "Times New Roman", serif;
}

.checkout-page .form-control,
.checkout-page .form-select {
    min-height: 48px;
    border-color: rgba(76, 48, 32, .24);
    background: #fffdf9;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.checkout-page .form-control:focus,
.checkout-page .form-select:focus {
    border-color: var(--store-gold);
    outline: 0;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(181, 138, 78, .14);
}

.checkout-page .form-control:user-invalid,
.checkout-page .form-select:user-invalid {
    border-color: rgba(138, 32, 32, .68);
}

.checkout-page .form-text {
    margin-top: .4rem;
    color: var(--store-text-muted);
    font-size: .83rem;
}

.checkout-delivery-option {
    position: relative;
    display: block;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-md);
    padding: 1rem;
    background: #fffdf9;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
}

.checkout-delivery-option:hover {
    border-color: rgba(181, 138, 78, .75);
    transform: translateY(-1px);
}

.checkout-delivery-option.is-selected {
    border-color: var(--checkout-accent);
    background: var(--checkout-accent-soft);
    box-shadow: 0 0 0 2px rgba(113, 23, 47, .08);
}

.checkout-delivery-row {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.checkout-delivery-row > * {
    min-width: 0;
}

.checkout-delivery-option input[type="radio"] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin: 0;
    accent-color: var(--checkout-accent);
}

.checkout-delivery-option strong {
    overflow-wrap: anywhere;
}

.checkout-delivery-option .small {
    line-height: 1.45;
}

.checkout-delivery-meta {
    margin-top: .25rem;
}

.checkout-submit {
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 22px rgba(45, 29, 22, .18);
}

.checkout-submit[disabled] {
    transform: none;
}

.checkout-submit.is-loading::after {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    border: 2px solid rgba(255, 250, 244, .42);
    border-top-color: #fffaf4;
    border-radius: 50%;
    content: "";
    animation: checkout-spin .72s linear infinite;
}

.checkout-security-note {
    margin-bottom: 0;
    line-height: 1.55;
}

.checkout-discount-note {
    margin-bottom: 0;
    padding-block: .65rem;
}

.checkout-summary-column {
    min-width: 0;
}

.checkout-summary {
    top: 112px;
}

.checkout-summary h2 {
    margin: 0 0 1rem;
    font: 700 1.35rem/1.2 Georgia, "Times New Roman", serif;
}

.checkout-summary-line {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 0;
}

.checkout-summary-line > * {
    min-width: 0;
}

.checkout-summary-product {
    padding-block: .65rem;
}

.checkout-summary-product > div {
    flex: 1 1 auto;
}

.checkout-summary-product > strong,
.checkout-summary-line > strong {
    flex: 0 0 auto;
    text-align: right;
}

.checkout-summary-total {
    align-items: baseline;
    padding-top: .9rem;
    font-size: 1.16rem;
}

.checkout-summary-total strong:last-child {
    color: var(--store-burgundy);
    font-size: 1.3rem;
}

.checkout-summary hr {
    border: 0;
    border-top: 1px solid var(--store-border);
    margin: .8rem 0;
}

@keyframes checkout-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 991.98px) {
    .checkout-summary {
        position: static;
        top: auto;
    }
}

@media (max-width: 575.98px) {
    .checkout-page {
        width: min(100% - 24px, var(--store-content-width));
    }

    .checkout-page .section-heading {
        margin-bottom: 1.25rem;
    }

    .checkout-card-body {
        padding: 1rem;
    }

    .checkout-delivery-row {
        gap: .75rem;
    }

    .checkout-delivery-row > strong {
        max-width: 38%;
        text-align: right;
    }

    .checkout-summary {
        padding: 1rem;
    }

    .checkout-summary-line {
        gap: .7rem;
    }

    .checkout-summary-product {
        flex-direction: column;
        gap: .35rem;
    }

    .checkout-summary-product > strong {
        align-self: flex-end;
    }
}

/* ==========================================================================
   GÁLEN · Mi cuenta / pedidos v2 · 2026-08-17
   ========================================================================== */
.account-orders-page,
.account-order-detail {
    max-width: 1180px;
}

.account-orders-hero {
    display: flex;
    gap: 2rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: clamp(1.5rem, 4vw, 2.75rem);
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--store-border);
}

.account-orders-hero h1,
.account-order-detail__header h1 {
    margin: .1rem 0 .45rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 5vw, 3.4rem);
    font-weight: 500;
    line-height: 1.05;
}

.account-orders-hero p:not(.eyebrow) {
    max-width: 650px;
    margin: 0;
    color: var(--store-text-muted);
}

.account-orders-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    justify-content: flex-end;
}

.account-orders-count {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    border: 1px solid var(--store-border);
    border-radius: 999px;
    padding: .55rem .9rem;
    background: rgba(255, 250, 244, .72);
    color: var(--store-text-muted);
    font-size: .84rem;
    font-weight: 800;
}

.account-order-list {
    display: grid;
    gap: 1.1rem;
}

.account-order-card {
    overflow: hidden;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-lg);
    background: rgba(255, 250, 244, .96);
    box-shadow: 0 16px 45px rgba(48, 29, 19, .07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.account-order-card:hover {
    border-color: rgba(181, 138, 78, .42);
    box-shadow: 0 20px 52px rgba(48, 29, 19, .11);
    transform: translateY(-2px);
}

.account-order-card.is-closed {
    opacity: .78;
}

.account-order-card__header {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--store-border);
    padding: 1.2rem 1.35rem;
    background: linear-gradient(135deg, rgba(234, 210, 177, .16), rgba(255, 250, 244, .7));
}

.account-order-card__identity {
    display: grid;
    gap: .18rem;
    min-width: 0;
}

.account-order-number {
    overflow-wrap: anywhere;
    color: var(--store-brown);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.05rem, 2.2vw, 1.32rem);
    font-weight: 700;
}

.account-order-card__identity small {
    color: var(--store-text-muted);
}

.order-status-badge {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 32px;
    align-items: center;
    border: 1px solid rgba(181, 138, 78, .34);
    border-radius: 999px;
    padding: .38rem .72rem;
    background: #fff4dd;
    color: #70520e;
    font-size: .76rem;
    font-weight: 850;
    line-height: 1.1;
    text-align: center;
}

.order-status-badge--paid,
.order-status-badge--processing,
.order-status-badge--ready_to_ship {
    border-color: rgba(40, 119, 72, .25);
    background: #edf8f0;
    color: #245f39;
}

.order-status-badge--shipped,
.order-status-badge--delivered {
    border-color: rgba(62, 96, 142, .24);
    background: #edf4fb;
    color: #315c89;
}

.order-status-badge--cancelled,
.order-status-badge--expired,
.order-status-badge--failed {
    border-color: rgba(138, 32, 32, .25);
    background: #fff0f0;
    color: #8a2020;
}

.account-order-card__body {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(250px, .85fr);
    gap: 1.25rem;
    padding: 1.35rem;
}

.account-order-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 0;
}

.account-order-summary > div {
    min-width: 0;
    border: 1px solid rgba(76, 48, 32, .11);
    border-radius: 12px;
    padding: .8rem .9rem;
    background: rgba(255,255,255,.58);
}

.account-order-summary dt {
    margin-bottom: .25rem;
    color: var(--store-text-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.account-order-summary dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--store-brown);
    font-weight: 750;
}

.account-order-summary__total {
    color: var(--store-burgundy) !important;
    font-size: 1.1rem;
    font-variant-numeric: tabular-nums;
}

.account-order-payment {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.account-order-payment--paid::before {
    content: "✓";
    display: inline-grid;
    width: 1.15rem;
    height: 1.15rem;
    place-items: center;
    border-radius: 50%;
    background: #2f7a4c;
    color: #fff;
    font-size: .7rem;
}

.account-order-fulfillment {
    display: flex;
    gap: .8rem;
    align-items: center;
    min-width: 0;
    border: 1px solid rgba(76, 48, 32, .12);
    border-radius: 14px;
    padding: .9rem 1rem;
    background: #fbf5ed;
}

.account-order-fulfillment--pickup {
    background: #f8f1e5;
}

.account-order-fulfillment--pending {
    background: #faf7f2;
}

.account-order-fulfillment__icon {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 50%;
    background: var(--store-brown);
    color: #fffaf4;
    font-size: 1rem;
    font-weight: 900;
}

.account-order-fulfillment > div {
    display: grid;
    gap: .08rem;
    min-width: 0;
}

.account-order-fulfillment strong,
.account-order-fulfillment span,
.account-order-fulfillment small {
    overflow-wrap: anywhere;
}

.account-order-fulfillment small {
    color: var(--store-text-muted);
}

.account-order-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    justify-content: flex-end;
    border-top: 1px solid var(--store-border);
    padding: 1rem 1.35rem;
    background: rgba(255,255,255,.38);
}

.account-order-card__actions .btn {
    min-width: 190px;
}

.account-orders-pagination {
    margin-top: 2rem;
}

.pagination {
    display: flex;
    gap: .35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.page-link {
    display: grid;
    min-width: 40px;
    min-height: 40px;
    place-items: center;
    border: 1px solid var(--store-border);
    border-radius: 10px;
    background: var(--store-surface);
    color: var(--store-brown);
    font-weight: 800;
    text-decoration: none;
}

.page-item.active .page-link {
    border-color: var(--store-brown);
    background: var(--store-brown);
    color: #fff;
}

/* Detalle de pedido */
.account-order-detail__topbar {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    color: var(--store-text-muted);
    font-size: .9rem;
}

.account-order-detail__topbar a {
    color: var(--store-brown);
    font-weight: 800;
    text-decoration: none;
}

.account-order-detail__header {
    display: flex;
    gap: 2rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--store-border);
    padding-bottom: 1.5rem;
}

.account-order-detail__header p:not(.eyebrow) {
    margin: 0;
    color: var(--store-text-muted);
}

.account-order-total {
    display: grid;
    min-width: 190px;
    border: 1px solid var(--store-border);
    border-radius: 16px;
    padding: .9rem 1.1rem;
    background: var(--store-surface);
    box-shadow: var(--store-shadow-soft);
}

.account-order-total span {
    color: var(--store-text-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.account-order-total strong {
    color: var(--store-burgundy);
    font-size: 1.45rem;
}

.order-terminal-state {
    margin-bottom: 1.5rem;
    border: 1px solid rgba(138,32,32,.22);
    border-radius: 14px;
    padding: 1rem 1.2rem;
    background: #fff0f0;
}

.order-terminal-state p {
    margin: .25rem 0 0;
}

.order-progress {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 1.5rem;
    padding: 0;
    list-style: none;
}

.order-progress li {
    position: relative;
    display: grid;
    gap: .45rem;
    justify-items: center;
    color: #96877d;
    font-size: .78rem;
    text-align: center;
}

.order-progress li::before {
    content: "";
    position: absolute;
    top: 17px;
    right: 50%;
    left: -50%;
    height: 2px;
    background: #ded4cd;
    z-index: 0;
}

.order-progress li:first-child::before {
    display: none;
}

.order-progress li > span {
    position: relative;
    z-index: 1;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 2px solid #ded4cd;
    border-radius: 50%;
    background: var(--store-bg);
    font-weight: 900;
}

.order-progress li.is-complete,
.order-progress li.is-current {
    color: var(--store-brown);
}

.order-progress li.is-complete::before,
.order-progress li.is-current::before {
    background: var(--store-gold);
}

.order-progress li.is-complete > span {
    border-color: var(--store-gold);
    background: var(--store-gold);
    color: #fff;
}

.order-progress li.is-current > span {
    border-color: var(--store-gold);
    box-shadow: 0 0 0 5px rgba(181,138,78,.13);
}

.account-order-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, .75fr);
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.account-order-panel {
    min-width: 0;
    border: 1px solid var(--store-border);
    border-radius: var(--store-radius-lg);
    margin-bottom: 1.25rem;
    padding: clamp(1rem, 3vw, 1.4rem);
    background: var(--store-surface);
    box-shadow: 0 12px 34px rgba(48,29,19,.06);
}

.account-order-detail-grid > .account-order-panel {
    margin-bottom: 0;
}

.account-order-panel h2 {
    margin: 0 0 1rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
}

.account-order-items {
    display: grid;
}

.account-order-items article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
    border-bottom: 1px solid var(--store-border);
    padding: .9rem 0;
}

.account-order-items article:first-child {
    padding-top: 0;
}

.account-order-items article:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.account-order-items article > div {
    display: grid;
    gap: .15rem;
}

.account-order-items small {
    color: var(--store-text-muted);
}

.account-order-totals dl {
    display: grid;
    gap: .55rem;
    margin: 0 0 1rem;
}

.account-order-totals dl > div {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.account-order-totals dt {
    color: var(--store-text-muted);
}

.account-order-totals dd {
    margin: 0;
    font-weight: 750;
}

.account-order-totals .is-total {
    margin-top: .35rem;
    border-top: 1px solid var(--store-border);
    padding-top: .75rem;
    color: var(--store-burgundy);
    font-size: 1.08rem;
}

.account-order-address {
    display: grid;
    gap: .2rem;
    margin-bottom: 1rem;
    border-left: 3px solid var(--store-gold);
    padding: .4rem 0 .4rem 1rem;
}

.account-order-address span {
    color: var(--store-text-muted);
}

.account-order-note {
    margin: .8rem 0 0;
    border-radius: 12px;
    padding: .85rem 1rem;
    background: #f8f1e5;
    color: var(--store-text-muted);
}

.account-shipment-list {
    display: grid;
    gap: .9rem;
}

.account-shipment-card {
    border: 1px solid var(--store-border);
    border-radius: 14px;
    padding: 1rem;
    background: rgba(255,255,255,.55);
}

.account-shipment-card__header {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.account-shipment-card__header > div {
    display: grid;
}

.account-shipment-card__header small {
    color: var(--store-text-muted);
}

.shipment-event-list,
.order-history-list {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.shipment-event-list li,
.order-history-list li {
    position: relative;
    border-left: 2px solid #ded4cd;
    padding: 0 0 1rem 1rem;
}

.shipment-event-list li:last-child,
.order-history-list li:last-child {
    padding-bottom: 0;
}

.shipment-event-list li::before,
.order-history-list > li > span {
    content: "";
    position: absolute;
    top: .25rem;
    left: -6px;
    width: 10px;
    height: 10px;
    border: 2px solid var(--store-surface);
    border-radius: 50%;
    background: var(--store-gold);
}

.shipment-event-list li span,
.order-history-list small {
    display: block;
    color: var(--store-text-muted);
    font-size: .82rem;
}

.order-history-list li > div {
    display: grid;
    gap: .15rem;
}

.order-history-list p {
    margin: .2rem 0 0;
    color: var(--store-text-muted);
}

@media (max-width: 860px) {
    .account-orders-hero,
    .account-order-detail__header {
        align-items: stretch;
        flex-direction: column;
    }

    .account-orders-hero__actions {
        justify-content: flex-start;
    }

    .account-order-card__body,
    .account-order-detail-grid {
        grid-template-columns: 1fr;
    }

    .account-order-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .account-order-total {
        min-width: 0;
    }
}

@media (max-width: 640px) {
    .account-orders-page,
    .account-order-detail {
        width: min(100% - 24px, var(--store-content-width));
    }

    .account-orders-hero {
        margin-bottom: 1.25rem;
        padding-bottom: 1rem;
    }

    .account-orders-hero__actions,
    .account-orders-hero__actions .btn,
    .account-order-card__actions,
    .account-order-card__actions .btn {
        width: 100%;
    }

    .account-order-card__header {
        align-items: flex-start;
        flex-direction: column;
        padding: 1rem;
    }

    .account-order-card__body {
        gap: .85rem;
        padding: 1rem;
    }

    .account-order-summary {
        grid-template-columns: 1fr;
    }

    .account-order-card__actions {
        padding: 1rem;
    }

    .account-order-detail__topbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .order-progress {
        grid-template-columns: 1fr;
        gap: .65rem;
    }

    .order-progress li {
        grid-template-columns: 36px 1fr;
        gap: .75rem;
        align-items: center;
        justify-items: start;
        text-align: left;
    }

    .order-progress li::before {
        top: -1rem;
        bottom: 50%;
        left: 17px;
        width: 2px;
        height: auto;
    }

    .account-order-items article {
        grid-template-columns: 1fr auto;
        gap: .6rem;
    }

    .account-order-items article > div {
        grid-column: 1 / -1;
    }

    .account-shipment-card__header {
        flex-direction: column;
    }
}

