/* Belle & Tell: shared storefront design, based on the approved reference.
   Tenant storefronts retain their configured colors through the existing tokens. */
:root {
    --paper: #fff7f5;
    --white: #fffdfb;
    --ink: #39131f;
    --muted: #705e63;
    --green: #852446;
    --berry: #852446;
    --berry-dark: #651a35;
    --burgundy: #39131f;
    --blush: #d6a8af;
    --rose: #f2d9d3;
    --line: #ead7d5;
    --soft: #f8e8e2;
    --radius: 18px;
    --shadow: 0 12px 36px #39131f0a;
}
body { background: var(--paper); color: var(--ink); font-family: 'DM Sans', Arial, sans-serif; }
h1, h2, h3, h4 { font-family: 'DM Sans', Arial, sans-serif; font-weight: 700; letter-spacing: -.04em; }
.st-storefront { min-height: 100vh; font-size: 15px; }
.st-storefront:not(.branded-storefront) {
    --paper: #fff7f5;
    --white: #fffdfb;
    --ink: #39131f;
    --muted: #705e63;
    --green: #852446;
    --berry: #852446;
    --berry-dark: #651a35;
    --burgundy: #39131f;
    --rose: #f2d9d3;
    --soft: #f8e8e2;
}
.st-storefront :is(h1, h2, h3, h4) { font-family: 'DM Sans', Arial, sans-serif; font-weight: 700; letter-spacing: -.04em; }
.st-storefront h1 { line-height: 1.08; }
.st-storefront h2 { line-height: 1.2; }
.st-storefront .page-shell { width: min(1160px, calc(100% - 96px)); }
.st-storefront .eyebrow { color: var(--burgundy); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.st-storefront .text-link { font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.st-storefront .button, .auth-shell .button, .account-manage .btn {
    border-radius: 999px;
    min-height: 46px;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}
.st-storefront .button-primary, .auth-shell .button-primary { background: var(--berry); color: var(--storefront-on-primary, #fff); }
.st-storefront .button-dark { background: var(--storefront-primary, var(--burgundy)); color: var(--storefront-on-primary, #fff); }
.st-storefront .button-primary:hover, .st-storefront .button-dark:hover, .auth-shell .button-primary:hover { background: var(--berry-dark); color: var(--storefront-on-primary, #fff); }
.st-storefront .button-outline { background: transparent; border: 1.5px solid var(--burgundy); color: var(--burgundy); }
.st-storefront .button-outline:hover, .st-storefront .button-secondary:hover { background: var(--soft); }
.st-storefront .button:disabled { transform: none; }
.st-storefront :where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--berry); outline-offset: 4px; }
.st-storefront :where(.button-primary, .button-dark, .product-card-action):focus-visible { outline-offset: 4px; }

/* Consistent navigation and footer on every customer route. */
.st-storefront .st-header { border-bottom-color: transparent; }
.st-storefront:not(.branded-storefront) .st-announcement { background: var(--paper); color: var(--muted); }
.st-storefront .st-masthead { max-width: 1256px; min-height: 88px; gap: 24px; padding: 0 48px; }
.st-storefront:not(.branded-storefront) .st-wordmark { color: var(--ink); font-size: 27px; font-weight: 700; letter-spacing: -.055em; }
.st-storefront .st-wordmark small { font-weight: 500; }
.st-storefront .st-brand-logo { display: block; width: 80px; height: 80px; object-fit: contain; flex-shrink: 0; }
.st-storefront .st-desktop-nav { font-size: 14px; letter-spacing: 0; text-transform: none; gap: 25px; }
.st-storefront .st-masthead .bag-link { padding: 10px 18px; min-height: 44px; border-radius: 999px; background: var(--storefront-primary, var(--burgundy)); color: var(--storefront-on-primary, #fff); gap: 5px; }
.st-storefront .st-masthead .bag-link > svg { display: none; }
.st-storefront .st-bag-label { display: inline; font-size: 13px; }
.st-storefront .st-masthead .bag-count { position: static; background: transparent; color: inherit; width: auto; min-width: 0; height: auto; padding: 0; font-size: 13px; }
.st-storefront .st-masthead .bag-count::before { content: '('; }
.st-storefront .st-masthead .bag-count::after { content: ')'; }
.st-storefront .st-search-panel { background: var(--soft); }
.st-storefront .st-services { padding: 32px 0; }
.st-storefront .st-services strong { font-size: 13px; font-weight: 600; }
.st-storefront .st-services small { font-size: 12px; color: var(--muted); }
.st-storefront .st-footer { background: var(--storefront-surface, var(--paper)); color: var(--storefront-on-surface, var(--ink)); }
.st-storefront .st-footer .footer-grid { padding: 52px 0 40px; }
.st-storefront .st-footer .st-wordmark { font-size: 24px; }
.st-storefront .st-footer .st-brand-logo { width: 112px; height: 112px; }
.st-storefront .st-footer .footer-grid h3 { font-size: 14px; text-transform: none; letter-spacing: 0; font-weight: 700; }
.st-storefront .st-footer .footer-grid > div > a:not(.wordmark),
.st-storefront .st-footer .footer-brand p, .st-storefront .st-footer .footer-location { font-size: 13px; line-height: 1.7; color: var(--storefront-on-surface, var(--muted)); }
.st-storefront .st-footer .footer-bottom { color: var(--storefront-on-surface, var(--muted)); font-size: 11px; }
.st-storefront .st-footer .footer-shipping { margin-top: 16px; color: var(--storefront-on-surface, var(--muted)); font-size: 12px; line-height: 1.7; }

/* The home reference establishes the spacing used by the rest of the store. */
.st-storefront .reference-home { background: var(--paper); color: var(--ink); }
.st-storefront .reference-hero { gap: 64px; padding-top: 58px; padding-bottom: 76px; }
.st-storefront .reference-hero h1 { font-size: clamp(42px, 5.2vw, 68px); font-weight: 700; letter-spacing: -.055em; line-height: 1.04; }
.st-storefront .reference-hero h1 span { color: var(--berry); }
.st-storefront .reference-hero-copy p { color: var(--muted); font-size: 16px; line-height: 1.7; }
.st-storefront .reference-hero-image { background: var(--rose); border-radius: 44% 44% 24px 24px; }
.st-storefront .reference-home h2 { font-size: clamp(28px, 3vw, 36px); letter-spacing: -.045em; }
.st-storefront .reference-category-grid h3 { font-size: 17px; line-height: 1.3; }
.st-storefront .reference-category-grid > a { border-radius: 20px; }
.st-storefront .reference-section-heading { flex-wrap: wrap; }
.st-storefront .reference-story { background: var(--burgundy); color: var(--paper); }
.st-storefront .reference-story h2 { font-size: clamp(32px, 3.5vw, 44px); color: inherit; }
.st-storefront .reference-story h3 { font-size: 18px; color: inherit; }
.st-storefront .reference-story p { color: #ead5da; }
.st-storefront .reference-story a { color: inherit; }

/* Catalog and product cards use the same pastel surfaces as the home page. */
.st-storefront .catalog-intro, .st-storefront .st-catalog-banner { border-radius: 24px; padding: 40px; background: var(--storefront-accent, var(--rose)); }
.st-storefront .catalog-intro h1 { font-size: clamp(32px, 4vw, 48px); max-width: 760px; }
.st-storefront .catalog-intro p { font-size: 15px; max-width: 620px; line-height: 1.7; }
.st-storefront .catalog-doodle { background: var(--storefront-surface, #eee5c3); }
.st-storefront .breadcrumb { color: var(--muted); font-size: 12px; flex-wrap: wrap; }
.st-storefront .category-tabs { gap: 8px; }
.st-storefront .category-tabs a { border-radius: 999px; padding: 10px 17px; font-size: 13px; }
.st-storefront .category-tabs a.active { background: var(--storefront-primary, var(--burgundy)); color: var(--storefront-on-primary, #fff); }
.st-storefront .search-field { min-height: 46px; border-radius: 999px; }
.st-storefront .search-field input { font-size: 14px; }
.st-storefront .catalog-subbar, .st-storefront .catalog-subbar select { font-size: 13px; }
.st-storefront .product-grid { gap: 30px 24px; }
.st-storefront .product-image-wrap { border-radius: 20px; aspect-ratio: 1.15; background: var(--storefront-surface, #f2d9d3); }
.st-storefront:not(.branded-storefront) .product-card:nth-child(4n + 2) .product-image-wrap { background: #eee5c3; }
.st-storefront:not(.branded-storefront) .product-card:nth-child(4n + 3) .product-image-wrap { background: #e9cfd4; }
.st-storefront:not(.branded-storefront) .product-card:nth-child(4n) .product-image-wrap { background: #f6e3dc; }
.st-storefront .product-meta { margin-top: 14px; font-size: 11px; }
.st-storefront .product-card-copy { padding: 0 0 12px; }
.st-storefront .product-card h3 { font-size: 16px; font-weight: 650; line-height: 1.4; letter-spacing: -.02em; }
.st-storefront .product-price { color: var(--berry); font-size: 16px; font-weight: 650; }
.st-storefront .product-price s { color: var(--muted); font-size: 12px; }
.st-storefront .product-card-action { border-radius: 999px; border-color: var(--storefront-primary, var(--burgundy)); background: var(--storefront-primary, var(--burgundy)); color: var(--storefront-on-primary, #fff); font-size: 13px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.st-storefront .product-card-action:hover { background: var(--berry); border-color: var(--berry); }
.st-storefront .product-card-action:disabled { background: var(--soft); border-color: var(--line); color: var(--muted); }
.st-storefront .product-label { font-size: 10px; border-radius: 999px; }
.st-storefront .favorite-button { width: 40px; height: 40px; }
.st-storefront .empty-state { border-radius: 24px; }
.st-storefront .empty-state h2 { font-size: clamp(27px, 3vw, 36px); }

/* Product details, cart and checkout. */
.st-storefront .detail-image { border-radius: 24px; overflow: hidden; background: var(--soft); }
.st-storefront .detail-copy h1 { font-size: clamp(32px, 3.5vw, 46px); }
.st-storefront .detail-price { color: var(--berry); font-weight: 650; font-size: 28px; }
.st-storefront .detail-description { font-size: 15px; color: var(--muted); line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.st-storefront .detail-benefits { color: var(--muted); }
.st-storefront .detail-copy details { padding: 20px 0; }
.st-storefront .detail-copy summary { font-size: 15px; font-weight: 650; }
.st-storefront .spec-grid { font-size: 13px; line-height: 1.7; }
.st-storefront .image-thumbnails button { border-radius: 12px; overflow: hidden; }
.st-storefront .quantity-control, .st-storefront .detail-heart { border-radius: 999px; }
.st-storefront .quantity-control button { min-width: 36px; min-height: 44px; }
.st-storefront .panel, .st-storefront .auth-shell, .st-storefront .address-card { border-radius: 20px; border-color: var(--line); background: var(--white); box-shadow: none; }
.st-storefront .checkout-section h2, .st-storefront .order-summary h2 { font-size: 23px; }
.st-storefront .summary-row { font-size: 14px; }
.st-storefront .summary-total { font-size: 20px; }
.st-storefront .bag-product-image { border-radius: 14px; overflow: hidden; }
.st-storefront .bag-product-info h3 { font-size: 16px; }
.st-storefront .bag-product-info p, .st-storefront .bag-product-info .small { font-size: 12px; }
.st-storefront .field, .st-storefront .field > label { font-size: 13px; }
.st-storefront :is(.field input:not([type='checkbox']):not([type='radio']):not([type='color']), .field select, .field textarea, .form-control, .form-select, .review-textarea, .st-search-form input) {
    min-height: 46px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); color: var(--ink); font-size: 15px;
}
.st-storefront :is(input[type='checkbox'], input[type='radio']) { accent-color: var(--berry); }
.st-storefront .radio-card, .st-storefront .delivery-option { border-radius: 14px; }
.st-storefront .policy-page h1, .st-storefront .content-page h1 { font-size: clamp(34px, 4vw, 48px); }
.st-storefront .policy-page h2 { font-size: 25px; }
.st-storefront .policy-page p, .st-storefront .policy-page li { font-size: 15px; line-height: 1.85; }
.st-storefront .help-banner h2 { font-size: 30px; }
.st-storefront .help-banner p { font-size: 14px; }

/* Account pages and shared dialogs keep the same surfaces and type. */
.auth-shell { border-radius: 24px; border-color: var(--line); background: var(--white); padding: 36px; }
.auth-shell h1 { font-family: 'DM Sans', Arial, sans-serif; color: var(--burgundy); font-size: 34px; font-weight: 700; }
.auth-shell > p, .auth-shell .auth-footer { font-size: 13px; }
.auth-shell input:not([type='checkbox']), .auth-shell select { border-radius: 10px; min-height: 46px; }
.auth-shell .auth-aside { border-radius: 12px; background: var(--soft); }
.st-storefront .account-nav a, .st-storefront .account-nav button, .account-manage .nav-link { font-size: 14px; border-radius: 999px; }
.st-storefront .account-manage h2, .st-storefront .account-manage h3 { font-size: 26px; }
.st-storefront .order-info-grid h3 { font-size: 16px; }
.st-storefront .order-info-grid p { font-size: 14px; }
.st-storefront .variant-dialog { padding: 28px; border-radius: 24px; background: var(--paper); color: var(--ink); border-color: var(--line); box-shadow: 0 24px 80px #39131f26; }
.st-storefront .variant-dialog::backdrop { background: #39131f77; }
.st-storefront .variant-dialog header h2 { font-size: 25px; }
.st-storefront .variant-dialog header button { min-width: 44px; min-height: 44px; border-radius: 50%; }
.st-storefront .variant-preview img { border-radius: 16px; }
.st-storefront .palette-label { font-size: 13px; }
.st-storefront .swatch { width: 44px; height: 44px; }
.st-storefront .swatch.selected { border-color: var(--berry); box-shadow: 0 0 0 2px var(--paper); }
.st-storefront .swatch:focus-visible { outline-color: var(--berry); }
.st-storefront .size-selection { border-radius: 14px; }
.st-storefront .review-editor { border-radius: 20px; background: var(--soft); }
.st-storefront .group-product-panel, .st-storefront .group-checkout-note, .st-storefront .group-order-panel { border-radius: 18px; background: var(--soft); border-color: var(--line); }
.st-storefront .group-panel-heading h2, .st-storefront .group-checkout-note h2 { font-size: 25px; }
.st-storefront .group-buy-invitation { border-radius: 24px; }
.st-storefront .group-buy-invitation .group-buy-heading { font-size: clamp(30px, 3.5vw, 44px); line-height: 1.12; }
.st-storefront .group-buy-heading em { font-style: normal; font-weight: inherit; }
.st-storefront .featured-group-buy-card { border-radius: 20px; }
.st-storefront .featured-group-buy-cart { border-radius: 999px; font-size: 13px; }
.st-storefront .group-buy-list-scroll { border-radius: 16px; }
.st-storefront .row-action { border-radius: 999px; }
.st-storefront .support-launcher, .st-storefront .support-heading, .st-storefront .support-primary, .st-storefront .support-compose button { background: var(--storefront-primary, var(--burgundy)); color: var(--storefront-on-primary, #fff); }
.st-storefront .support-primary { border-radius: 999px; min-height: 44px; }
.st-storefront .support-messages { background: var(--paper); }
.st-storefront .support-message.from-customer { background: var(--soft); border-color: var(--line); }
.st-storefront .support-intro h3 { color: var(--ink); font-size: 25px; }
.st-storefront .support-intro p:not(.support-eyebrow) { color: var(--muted); }
.st-storefront .support-avatar { font-family: 'DM Sans', Arial, sans-serif; background: var(--rose); color: var(--burgundy); }

@media (max-width: 1100px) {
    .st-storefront .page-shell { width: calc(100% - 56px); }
    .st-storefront .st-masthead { padding: 0 28px; gap: 16px; }
    .st-storefront .st-desktop-nav { gap: 17px; font-size: 13px; }
    .st-storefront .product-grid { gap: 26px 18px; }
    .st-storefront .reference-hero { gap: 36px; }
}
@media (max-width: 1000px) {
    .st-storefront .st-masthead { grid-template-columns: minmax(0, 1fr) auto; }
    .st-storefront .st-desktop-nav { display: none; }
}
@media (max-width: 700px) {
    .st-storefront .page-shell { width: calc(100% - 36px); }
    .st-storefront .reference-hero { gap: 30px; padding-top: 30px; padding-bottom: 44px; }
    .st-storefront .reference-hero h1 { font-size: clamp(40px, 10vw, 60px); }
    .st-storefront .reference-hero-copy p { font-size: 15px; }
    .st-storefront .reference-actions { gap: 10px; }
    .st-storefront .reference-actions .button { padding: 12px 20px; font-size: 13px; }
    .st-storefront .st-masthead { padding: 0 18px; min-height: 76px; gap: 12px; }
    .st-storefront:not(.branded-storefront) .st-wordmark { font-size: 23px; }
    .st-storefront .st-masthead .st-brand-logo { width: 64px; height: 64px; }
    .st-storefront .st-masthead .bag-link { padding: 10px 14px; }
    .st-storefront .st-masthead .st-header-search { width: 40px; }
    .st-storefront .st-bag-label { display: inline; }
    .st-storefront .st-header-left { gap: 6px; min-width: 0; }
    .st-storefront .st-masthead .mobile-menu-button { width: 38px; }
    .st-storefront .st-masthead .header-actions { gap: 2px; }
    .st-storefront .catalog-intro, .st-storefront .st-catalog-banner { padding: 28px 22px; border-radius: 20px; }
    .st-storefront .catalog-intro h1 { font-size: 34px; }
    .st-storefront .catalog-intro p { font-size: 14px; }
    .st-storefront .category-tabs a { min-height: 44px; padding: 10px 14px; font-size: 13px; }
    .st-storefront .catalog-subbar { font-size: 12px; }
    .st-storefront .catalog-subbar select { font-size: 13px; min-height: 44px; }
    .st-storefront .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 14px; }
    .st-storefront .product-image-wrap { border-radius: 16px; }
    .st-storefront .product-card h3 { font-size: 14px; }
    .st-storefront .product-meta { font-size: 10px; }
    .st-storefront .product-price { font-size: 15px; }
    .st-storefront .product-card-action { font-size: 12px; gap: 8px; padding: 10px; }
    .st-storefront .favorite-button { width: 36px; height: 36px; }
    .st-storefront .product-label { max-width: calc(100% - 62px); font-size: 9px; padding: 5px 8px; }
    .st-storefront .detail-copy h1 { font-size: 32px; }
    .st-storefront .detail-buy > .button { font-size: 14px; }
    .st-storefront :is(.field input:not([type='checkbox']):not([type='radio']):not([type='color']), .field select, .field textarea, .form-control, .form-select, .search-field input, .st-search-form input),
    .auth-shell input:not([type='checkbox']) { font-size: 16px; }
    .st-storefront .section-heading { flex-wrap: wrap; align-items: center; }
    .st-storefront .section-heading h2 { max-width: none; font-size: 28px; }
    .st-storefront .section-heading .text-link { margin-top: 0; max-width: none; font-size: 13px; }
    .st-storefront .st-footer .footer-grid { padding: 36px 0; }
    .st-storefront .st-services strong { font-size: 12px; }
    .st-storefront .st-services small { font-size: 11px; }
    .st-storefront .variant-dialog { padding: 22px; }
    .st-storefront .group-buy-list-scroll.customer-list-scroll { border: 0; border-radius: 0; background: transparent; }
    .auth-shell { padding: 26px; }
}
@media (max-width: 380px) {
    .st-storefront .st-masthead { padding: 0 12px; gap: 6px; }
    .st-storefront:not(.branded-storefront) .st-wordmark { font-size: 21px; }
    .st-storefront .st-masthead .bag-link { padding: 10px 12px; }
    .st-storefront .product-card-action { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
    .st-storefront .button, .st-storefront .product-card-action, .st-storefront .product-image-wrap img { transition: none; }
}
@media print {
    .st-storefront { background: #fff; color: #000; }
    .st-storefront .page-shell { width: 100%; }
    .st-storefront .panel { border: 0; box-shadow: none; }
}
