.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.catalog-store .site-header { background: var(--burgundy); color: var(--background); border-bottom-color: var(--burgundy); }
.catalog-store .brand img { display: block; width: 82px; height: 82px; object-fit: contain; }
.catalog-store .department-menu[open] > summary { color: var(--gold); }
.catalog-store .mega-menu { color: var(--ink); }
.catalog-store .site-header :focus-visible { outline-color: var(--gold); }
.catalog-store .mega-menu :focus-visible, .catalog-store .mobile-menu-dialog :focus-visible { outline-color: var(--gold-ink); }
.catalog-store .bag-count { background: var(--gold); color: var(--burgundy-deep); }
.catalog-page { padding-top: 44px; }
.catalog-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 24px 48px; margin-bottom: 36px; }
.catalog-heading-copy { min-width: 0; flex: 1 1 400px; }
.catalog-heading h1, .bag-heading h1 { font-size: clamp(2rem, 3.6vw, 3.4rem); line-height: 1.3; letter-spacing: -0.025em; }
.catalog-heading-copy > p { max-width: 65ch; margin-top: 14px; color: var(--muted); }
.catalog-page .commerce-breadcrumbs { margin-bottom: 20px; }
.catalog-navigation { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 22px; border-block: 1px solid var(--line); }
.catalog-navigation a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; font-size: 12px; border: 1px solid var(--line); border-radius: 4px; }
.catalog-navigation a:hover { border-color: var(--burgundy); color: var(--burgundy); }
.catalog-navigation a[aria-current="page"] { background: var(--burgundy); color: var(--background); border-color: var(--burgundy); }
.catalog-subcategories { border-top: 0; padding-block: 16px; }
.catalog-results-count { margin-block: 24px 28px; font-size: 13px; color: var(--muted); }
.catalog-grid { align-items: stretch; gap: 44px 24px; }
.catalog-card { display: flex; flex-direction: column; min-width: 0; }
.catalog-card .product-image { background: var(--surface); }
.catalog-card .product-image img { object-position: center top; }
.catalog-card-copy { display: flex; flex-direction: column; flex: 1; }
.catalog-card .product-category { font-size: 11px; margin-block: 16px 6px; }
.catalog-card h2 { font: 600 14px/1.6 var(--body); letter-spacing: 0; }
.catalog-card h2 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.catalog-card .product-price { font-size: 14px; margin-top: 8px; }
.catalog-stock { margin-block: 8px 18px; font-size: 12px; color: var(--muted); }
.catalog-out-of-stock { color: var(--burgundy); }
.catalog-add-form, .catalog-card-action, .catalog-card-unavailable { display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.catalog-add-form .button, .catalog-card-action .button, .catalog-disabled-button { width: 100%; min-height: 48px; justify-content: center; padding: 10px 12px; }
.catalog-add-form .commerce-input { font-size: 13px; }
.catalog-disabled-button { background: var(--surface); color: var(--muted); border-color: var(--line); cursor: not-allowed; }
.catalog-disabled-button:hover { transform: none; }
.catalog-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 48px; }
.catalog-pagination a { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid var(--line); font-size: 12px; }
.catalog-pagination a:hover { border-color: var(--burgundy); color: var(--burgundy); }
.catalog-pagination span { padding: 12px; font-size: 13px; }
.shop-empty { padding-block: 64px; max-width: 640px; }
.shop-empty h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); margin-bottom: 16px; }
.shop-empty p { max-width: 55ch; color: var(--muted); }
.shop-empty .button { margin-top: 28px; }
.bag-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 36px; }
.bag-heading p { margin-top: 12px; color: var(--muted); }
.bag-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; align-items: start; gap: 64px; }
.bag-items { min-width: 0; border-top: 1px solid var(--line); }
.bag-item { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 28px; padding-block: 28px; border-bottom: 1px solid var(--line); }
.bag-item-image { display: block; aspect-ratio: 0.77; background: var(--surface); overflow: hidden; }
.bag-item-image img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.bag-item-image .image-placeholder { font: 400 12px/1.5 var(--body); }
.bag-item-copy { min-width: 0; }
.bag-item-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.bag-item h2 { font: 600 15px/1.6 var(--body); letter-spacing: 0; }
.bag-item h2 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.bag-item-total { flex: none; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.bag-item-meta { margin-top: 8px; font-size: 12px; color: var(--muted); }
.bag-stock-note { margin-top: 12px; font-size: 12px; color: var(--muted); }
.bag-item-alert { margin-top: 12px; padding: 12px; background: var(--surface); border: 1px solid var(--burgundy); color: var(--burgundy); font-size: 12px; }
.bag-item-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 20px; }
.quantity-controls { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.quantity-step { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: var(--background); border: 1px solid var(--line); font-size: 20px; }
.quantity-step:hover { border-color: var(--burgundy); }
.quantity-step:disabled { color: var(--muted); background: var(--surface); cursor: not-allowed; }
.quantity-form input { width: 60px; min-height: 44px; text-align: center; padding: 8px 4px; border: 1px solid var(--muted); border-radius: 0; background: var(--background); color: var(--ink); }
.bag-text-button { min-height: 44px; padding: 8px 4px; border: 0; background: transparent; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.bag-text-button:hover { color: var(--burgundy); }
.bag-feedback { padding: 16px 20px; margin-bottom: 24px; background: var(--surface); border: 1px solid var(--burgundy); font-size: 13px; }
.bag-summary { position: sticky; top: 148px; background: var(--surface); padding: 28px; }
.bag-summary h2 { font: 600 20px/1.5 var(--body); letter-spacing: 0; margin-bottom: 24px; }
.bag-summary dl { margin: 0; }
.bag-summary dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding-block: 12px; font-size: 13px; }
.bag-summary dd { margin: 0; text-align: right; }
.bag-summary-total { border-top: 1px solid var(--line); margin-top: 12px; font-weight: 600; }
.bag-summary .button { width: 100%; margin-top: 24px; min-height: 54px; justify-content: center; gap: 12px; padding-inline: 12px; }
.bag-summary .bag-whatsapp-button { min-height: 56px; font-size: 14px; }
.bag-whatsapp-button svg { width: 22px; height: 22px; flex: 0 0 22px; fill: currentColor; stroke: none; }
.bag-summary .button[disabled] { border-color: var(--line); background: var(--background); color: var(--muted); cursor: not-allowed; transform: none; }
.bag-summary > p { margin-top: 16px; font-size: 12px; color: var(--muted); }
.bag-summary .bag-summary-warning { color: var(--burgundy); }
@media (max-width: 1100px) {
    .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bag-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; }
    .bag-item { grid-template-columns: 104px minmax(0, 1fr); gap: 20px; }
    .bag-item-heading { flex-direction: column; gap: 8px; }
}
@media (max-width: 760px) {
    .catalog-page { padding-top: 32px; }
    .catalog-heading { align-items: stretch; gap: 28px; }
    .catalog-heading-copy { flex-basis: 100%; }
    .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
    .catalog-navigation { flex-wrap: nowrap; overflow-x: auto; padding-block: 14px; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
    .catalog-navigation a { flex: none; white-space: nowrap; scroll-snap-align: start; }
    .bag-layout { grid-template-columns: 1fr; gap: 32px; }
    .bag-item { grid-template-columns: 112px minmax(0, 1fr); }
    .bag-item-heading { flex-direction: row; }
    .bag-summary { position: static; }
}
@media (max-width: 480px) {
    .catalog-grid { gap: 28px 12px; }
    .catalog-card h2 { font-size: 12px; }
    .catalog-card .product-category { font-size: 10px; }
    .catalog-add-form .button, .catalog-card-action .button { font-size: 11px; }
    .catalog-stock { font-size: 11px; }
    .catalog-navigation { gap: 6px; }
    .catalog-navigation a { padding-inline: 12px; font-size: 11px; }
    .bag-item { grid-template-columns: 84px minmax(0, 1fr); gap: 16px; }
    .bag-item-heading { flex-direction: column; gap: 8px; }
    .bag-item h2 { font-size: 13px; }
    .quantity-controls { gap: 4px; }
    .quantity-step { width: 44px; }
    .quantity-form input { width: 52px; }
    .bag-item-actions { gap: 4px; }
    .bag-summary { padding: 24px 20px; }
}
