/* Public menu: presentation only; selection and checkout use the existing Vue flow. */
body:has(.store-menu) { background: var(--menu-background, #fcf9f3); background-image: none; color: var(--menu-text, #392039); font-family: "Figtree", sans-serif; }
.store-menu h1,
.store-menu h2,
.store-menu h3,
.store-menu .store-step-number,
.store-menu .store-group-name,
.store-menu .store-product-choice strong,
.store-menu .store-summary h5,
.store-menu .store-current-preview strong,
.store-menu .store-unit-price strong,
.store-menu .store-total strong,
.store-menu .store-desktop-summary-controls h4,
.store-menu .store-quantity-control input { font-family: "Outfit", sans-serif; }
.store-menu { background: var(--menu-background, #fcf9f3); background-image: none; padding-top: 0; }
.store-menu > .container, .store-menu-hero .container { width: 100%; max-width: 1400px; }
.store-menu > .container { max-width: 1180px; margin: 0 auto; }
.store-menu-hero { position: relative; background: #fff; border-bottom: 1px solid #e5dccd; box-shadow: 0 3px 8px rgba(74, 53, 28, .06); padding: 36px 0; }
.store-menu-hero .container { display: flex; align-items: flex-start; gap: 18px; }
.store-hero-icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; background: var(--menu-accent, #f6d451); border-radius: 6px; color: var(--menu-header, #391638); }
.store-menu-hero h1 { font-size: clamp(1.9rem, 4vw, 2.75rem); font-weight: 800; letter-spacing: -.035em; margin: 0 0 10px; }
.store-menu-hero p { color: var(--menu-muted, #786578); max-width: 650px; margin: 0; line-height: 1.65; }
.store-menu-hero .store-eyebrow { color: var(--menu-selection, #793560); text-transform: uppercase; font-size: .75rem; font-weight: 800; letter-spacing: .06em; margin-bottom: 6px; }
.store-menu .store-content { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 28px; margin-left: 0; margin-right: 0; padding-top: 32px; padding-bottom: 36px; --bs-gutter-x: 0; }
.store-menu .store-content > .col-lg-8,
.store-menu .store-content > .store-summary-column { width: 100%; min-width: 0; padding-left: 0; padding-right: 0; }
.store-menu .store-product-card, .store-menu .store-option-group { background: transparent; border: 0; padding: 0; box-shadow: none; border-radius: 0; }
.store-menu .store-product-card { margin-bottom: 26px; }
.store-menu .store-item-configuration { padding: 18px; background: #f5eee2; border-radius: 8px; }
.store-configuration-subheading { margin-bottom: 12px; }
.store-configuration-subheading h3 { margin: 0 0 4px; font-size: 1.1rem; font-weight: 600; }
.store-configuration-subheading p { margin: 0; color: var(--menu-muted, #786578); font-size: .875rem; }
.store-configuration-subheading .store-selected-product { margin-bottom: 8px; color: var(--menu-selection, #793560); font-weight: 700; overflow-wrap: anywhere; }
.store-menu .store-variety-section { padding-top: 16px; border-top: 1px solid #eee6dc; }
.store-personalization-transition { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; color: var(--menu-muted, #786578); font-size: .8rem; }
.store-personalization-transition::after { content: ''; flex: 1; height: 1px; background: #e9e0d5; }
.store-selection-section { margin-bottom: 26px; }
.store-selection-section:last-of-type { margin-bottom: 16px; }
.store-step-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.store-step-number { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; background: var(--menu-header, #391638); color: #fff; border-radius: 50%; font-size: .75rem; font-weight: 800; }
.store-step-heading h2 { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 700; margin: 0 0 4px; letter-spacing: -.025em; }
.store-step-heading p, .store-selection-hint { font-size: .875rem; color: var(--menu-muted, #786578); margin: 0; }
.store-product-grid, .store-variant-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 14px; }
.store-variant-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.store-choice-card { display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 92px; border: 1px solid var(--menu-tone-e4d8e4, #e4d8e4); border-radius: 6px; background: #fff; color: var(--menu-text, #392039); padding: 18px; text-align: left; transition: border-color .15s, background .15s; }
.store-product-choice { min-height: 112px; }
.store-choice-card:hover:not(:disabled) { border-color: var(--menu-selection, #793560); background: #fffbef; }
.store-choice-card.is-selected { border-color: var(--menu-selection, #793560); background: #fff8e5; box-shadow: 0 0 0 1px var(--menu-selection, #793560); }
.store-choice-card:disabled { opacity: .6; cursor: not-allowed; }
.store-choice-indicator { flex: 0 0 24px; width: 24px; height: 24px; border: 2px solid var(--menu-tone-dacdda, #dacdda); border-radius: 50%; display: grid; place-items: center; background: #fff; font-size: 12px; }
.is-selected .store-choice-indicator { background: var(--menu-selection, #793560); border-color: var(--menu-selection, #793560); color: #fff; }
.store-choice-copy { min-width: 0; overflow-wrap: anywhere; }
.store-choice-copy strong, .store-choice-copy small { display: block; }
.store-choice-copy strong { font-size: 1.05rem; font-weight: 700; }
.store-choice-copy small { font-size: .875rem; color: var(--menu-muted, #786578); margin-top: 5px; }
.store-menu .store-product-details { grid-template-columns: auto auto; width: fit-content; max-width: 100%; gap: 12px 28px; padding: 0; background: transparent; border: 0; border-radius: 0; align-items: center; }
.store-menu .store-unit-price { grid-column: 2; flex-direction: column; align-items: flex-end; gap: 2px; }
.store-menu .store-quantity .form-label { font-size: .875rem; margin-bottom: 6px; }
.store-menu .store-unit-price > span { font-size: .8rem; color: var(--menu-muted, #786578); }
.store-menu .store-unit-price strong { font-size: 1.2rem; }
.store-menu .store-quantity-control { background: #fff; box-shadow: none; border: 1px solid var(--menu-tone-e4d8e4, #e4d8e4); }
.store-menu .store-option-group { margin-bottom: 26px; }
.store-menu .store-group-heading { background: transparent; border: 0; padding: 0; border-radius: 0; gap: 12px; margin-bottom: 14px; }
.store-menu .store-group-name { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 700; }
.store-menu .store-group-rule { font-size: .875rem; color: var(--menu-muted, #786578); }
.store-menu .store-group-count { margin-left: auto; background: var(--menu-tone-eee6ef, #eee6ef); color: var(--menu-primary, #6b2d5c); font-size: .75rem; }
.store-menu .store-options-grid { padding: 0; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.store-menu .store-option { position: relative; background: #fff; min-height: 88px; padding: 18px; gap: 8px 12px; border-color: var(--menu-tone-e4d8e4, #e4d8e4); }
.store-menu .store-option.is-selected { background: #fff8e5; border-color: var(--menu-selection, #793560); box-shadow: 0 0 0 1px var(--menu-selection, #793560); }
.store-menu .store-option.is-disabled { background: var(--menu-tone-f0edf0, #f0edf0); }
.store-menu .store-option-name { font-weight: 600; font-size: 1rem; }
.store-menu .store-option-name::after { content: ''; position: absolute; inset: 0; }
.store-menu .store-option-stepper, .store-menu .store-option > input { position: relative; z-index: 1; }
.store-menu .store-option-stepper { background: #fff; }
.store-menu .store-option:focus-within { outline: 2px solid var(--menu-selection, #793560); outline-offset: 3px; }
.store-menu .store-clear-choice { margin: 12px 0 0; }
.store-menu .store-item-observation { margin-bottom: 0; }
.store-menu .store-item-observation textarea { min-height: 112px; background: #fff; border-color: var(--menu-tone-e4d8e4, #e4d8e4); padding: 16px; }
.store-menu .store-summary { border: 1px solid var(--menu-tone-e4d8e4, #e4d8e4) !important; box-shadow: 0 2px 5px var(--menu-tone-39163808, #39163808) !important; }
.store-menu .store-summary .card-header { background: var(--menu-accent, #f6d451) !important; padding: 22px 24px; color: var(--menu-header, #391638) !important; }
.store-menu .store-summary .card-body { background: #fff; background-image: none; padding: 24px; font-size: 1.025rem; }
.store-current-preview { display: flex; flex-direction: column; gap: 5px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--menu-tone-e9dfe9, #e9dfe9); }
.store-current-preview strong { font-size: 1.3rem; }
.store-menu .store-summary h5 { font-size: 1.4rem; }
.store-menu .store-desktop-summary-controls h4 { font-size: 1.75rem; }
.store-current-preview small { color: var(--menu-muted, #786578); }
.store-menu .btn-success { background: var(--menu-selection, #793560); border-color: var(--menu-selection, #793560); box-shadow: none; }
.store-menu .btn-success:hover:not(:disabled) { background: var(--menu-tone-592647, #592647); border-color: var(--menu-tone-592647, #592647); }
.store-menu .btn-outline-secondary, .store-menu .store-mobile-insert { color: var(--menu-selection, #793560); border-color: var(--menu-tone-d8c6d8, #d8c6d8); }
.store-menu .form-control { border-color: var(--menu-tone-e4d8e4, #e4d8e4); min-height: 44px; }
.store-menu :focus-visible { outline-color: var(--menu-selection, #793560); }
@media (min-width: 992px) {
  .store-menu { padding-bottom: 0; }
  .store-menu .store-content { grid-template-columns: minmax(0, 1fr) 340px; }
}
@media (max-width: 991.98px) {
  .store-menu { padding-bottom: calc(15rem + env(safe-area-inset-bottom, 0px)); }
  .store-menu .store-checkout { background: #fff; color: var(--menu-text, #392039); border: 1px solid var(--menu-tone-e4d8e4, #e4d8e4); }
  .store-menu .store-summary-toggle { background: var(--menu-accent, #f6d451) !important; color: var(--menu-header, #391638) !important; }
  .store-menu .store-sheet-actions { background: #fffdf8; background-image: none; color: var(--menu-text, #392039); }
  .store-menu .store-checkout .store-mobile-summary { background: #fffdf8; background-image: none; }
  .store-menu .store-checkout-actions .btn-success { background: var(--menu-selection, #793560); border-color: var(--menu-selection, #793560); }
  .store-menu .store-checkout-actions .btn-success:hover:not(:disabled) { background: var(--menu-tone-592647, #592647); }
}
@media (max-width: 575.98px) {
  .store-menu-hero { padding: 28px 0; }
  .store-menu-hero .container { gap: 12px; }
  .store-hero-icon { flex-basis: 32px; height: 32px; }
  .store-menu .store-content { padding-top: 28px; }
  .store-product-choice { min-height: 84px; }
  .store-menu .store-group-name { font-size: 1.25rem; }
  .store-menu .store-group-count { margin-left: 44px; }
}
@media (prefers-reduced-motion: reduce) { .store-choice-card { transition: none; } }
