/* Ajustes de experiencia. Los datos comerciales y las fotos se completan después. */
/* El PNG oficial se conserva intacto. Este marco omite solo sus márgenes transparentes.
   Área visible del original 3300 × 2550: x=743, y=960, ancho=1878, alto=646. */
.brand-logo-frame { display: block; position: relative; flex-shrink: 0; width: 154px; aspect-ratio: 1878 / 646; overflow: hidden; }
.brand-logo-frame .brand-logo { position: absolute; display: block; max-width: none; width: 175.71885%; height: auto; left: -39.56337%; top: -148.60681%; object-fit: fill; }
.brand-logo-frame.footer-logo { width: 100px; }
.service-info { margin-top: 16px; padding: 16px; background: white; border: 1px solid var(--line); border-radius: 14px; }
.service-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; }
.service-branch { font-size: 16px; font-weight: 700; }
.service-hours { font-size: 14px; line-height: 1.5; margin-top: 8px; }
.service-status { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; color: #146b37; background: #ebf8ee; border-radius: 30px; padding: 6px 10px; }
.availability-dot { display: inline-block; flex: 0 0 9px; width: 9px; height: 9px; border-radius: 50%; background: #199447; }
.service-status[data-state="closed"], .service-status[data-state="pending"] { color: var(--muted); background: var(--paper); }
.service-status:not([data-state="open"]) .availability-dot { background: var(--muted); }
.service-status[data-state="closed"] { color: #b42318; background: #fff0ee; }
.service-status[data-state="closed"] .availability-dot { background: #d92d20; }
.header-categories { display: none; }
.service-info dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 12px 0; }
.service-info dt, .delivery-review dt { color: var(--muted); font-size: 13px; }
.service-info dd, .delivery-review dd { margin: 4px 0 0; font-size: 14px; overflow-wrap: anywhere; }
.service-info > p:last-child, .menu-help, .field-help { color: var(--muted); font-size: 13px; line-height: 1.5; }
.menu-help { margin-top: 8px; }
.product-description:empty { display: none; }
.card-action { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; min-width: 0; }
.quick-qty { border-color: var(--orange); }
.quick-qty button { min-width: 44px; width: 44px; height: 44px; font-weight: 700; }
.quick-qty output { min-width: 30px; font-size: 16px; }
.quick-notes-hint { display: block; max-width: 210px; font-size: 13px; line-height: 1.4; color: var(--muted); overflow-wrap: anywhere; }
.mobile-cart-bar .mobile-total { display: grid; gap: 2px; margin-left: auto; text-align: right; }
.mobile-total small { font-size: 12px; line-height: 1.3; }
.mobile-total strong { font-size: 16px; }
.has-photo .product-art { background: var(--paper); background-image: none; }
.has-photo .product-art::after { display: none; }
.has-photo .product-art img { width: 100%; height: auto; max-height: 180px; object-fit: contain; transform: none; }
.cart-item-art.is-photo { object-fit: contain; padding: 0; }
.product-detail-top.has-photo img { object-fit: contain; padding: 0; }
.restored-cart { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding: 12px 16px; background: #e8f1fa; border: 1px solid var(--line); border-radius: 12px; font-size: 14px; line-height: 1.5; }
.text-button { border: 0; border-radius: 6px; background: transparent; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; padding: 8px 0; min-height: 44px; font: inherit; font-size: 14px; font-weight: 600; text-align: left; }
.text-button:hover { color: var(--blue); }
.edit-item { padding-top: 0; }
.primary-button, .secondary-button { font-size: 15px; min-height: 48px; }
.primary-button { color: var(--ink); }
.icon-button { width: 44px; height: 44px; }
.remove-item { min-width: 44px; min-height: 44px; padding: 8px; }
.quantity-control button, .product-dialog-bottom .quantity-control button { width: 44px; height: 44px; }
.quantity-control output { font-size: 16px; min-width: 30px; }
.cart-item h3 { font-size: 17px; }
.item-options, .cart-actions > p, .privacy-note { font-size: 13px; line-height: 1.6; }
.item-options, .summary-item p, .delivery-review dd { overflow-wrap: anywhere; white-space: pre-wrap; }
.cart-item-price { font-size: 14px; }
.total-row, .total-row.subtle { font-size: 14px; }
.clear-cart { min-height: 44px; font-size: 14px; }
input, textarea, select { font-family: inherit; font-size: 16px; }
select { width: 100%; min-height: 48px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--ink); }
select:disabled { opacity: 1; background: var(--paper); color: var(--muted); }
select:focus-visible, summary:focus-visible, .text-button:focus-visible { outline: 3px solid #2475cf; outline-offset: 3px; }
select[aria-invalid=true] { border-color: var(--red); }
input::placeholder, textarea::placeholder { font-size: 14px; }
#checkoutForm > label, #productForm > label, #changeField > label { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.optional { font-size: 13px; }
.field-help { margin: 6px 0 16px; }
.field-error { font-size: 13px; }
.option-label { min-height: 48px; font-size: 15px; flex-wrap: wrap; }
.option-label .option-price { font-size: 13px; white-space: normal; }
.option-group legend { font-size: 16px; flex-wrap: wrap; }
.option-group legend span { font-size: 13px; }
.option-label input { width: 20px; height: 20px; }
.product-detail-top p, .dialog-notice, .configuration-warning { font-size: 14px; }
.product-dialog-bottom { gap: 10px; padding-top: 12px; }
.product-dialog-bottom .primary-button { min-width: 0; }
.readable-items { list-style: none; padding: 0; margin: 0; }
.readable-items .summary-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.summary-item strong { font-size: 16px; }
.summary-item p { font-size: 14px; }
.summary-item-price { font-size: 14px; max-width: 115px; text-align: right; margin-top: 0; }
.checkout-summary { position: static; }
.checkout-summary ul { max-height: none; overflow: visible; }
.checkout-summary h3 { font-size: 20px; }
.pending-total { background: #fff1e3; color: var(--ink); padding: 12px; border-radius: 8px; font-size: 14px; line-height: 1.6; margin-top: 12px; }
.review-card { margin-top: 16px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.review-card h3 { font-family: var(--heading); font-size: 23px; margin-bottom: 10px; }
.review-card .cart-totals { padding: 16px 0 0; border-bottom: 0; }
.delivery-review dl { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; }
.delivery-review dl > div:nth-child(n+3) { grid-column: 1 / -1; }
.delivery-review dd { font-size: 16px; }
.review-folio { margin: 12px 0; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.handoff-note { font-size: 15px; line-height: 1.6; padding: 16px; background: #e8f1fa; border-radius: 12px; margin: 18px 0; }
.handoff-note > strong:first-child { display: block; }
.review-primary { position: sticky; bottom: -25px; background: white; padding: 12px 0; z-index: 1; }
.review-actions { margin-top: 14px; }
.review-actions .secondary-button { flex: 1; }
#messageDetails { margin-top: 18px; }
#messageDetails summary { cursor: pointer; padding: 12px 0; min-height: 44px; font-size: 14px; }
.fallback-link { min-height: 44px; padding: 10px 0; font-size: 15px; }
#visualReview:focus { outline: 0; }

@media (max-width: 950px) {
  :root { scroll-padding-top: calc(var(--pinned-header-height, 136px) + 12px); }
  .header { position: sticky; top: 0; z-index: 30; box-shadow: 0 4px 12px #003a6914; }
  .header-categories { display: block; background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--line); }
  .header-categories .categories { position: static; display: flex; flex-wrap: nowrap; max-width: 800px; width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scroll-padding-inline: 16px; scrollbar-width: thin; margin: 0 auto; padding: 10px 16px; gap: 8px; box-shadow: none; }
  .category { min-height: 48px; font-size: 14px; flex-shrink: 0; white-space: nowrap; scroll-snap-align: start; }
  .mobile-cart-bar:not([hidden]) { min-height: 64px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .mobile-cart-bar > span:first-child { font-size: 15px; }
  .mobile-cart-bar > strong { font-size: 14px; }
  .toast { bottom: calc(90px + env(safe-area-inset-bottom)); }
  body:has(.mobile-cart-bar:not([hidden])) { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
}

@media (max-width: 650px) {
  .brand .brand-logo-frame { width: 112px; }
  .header-inner { min-height: 64px; padding: 10px 16px; gap: 12px; }
  .menu-link { font-size: 14px; }
  .bag-button { min-height: 44px; }
  .app-layout { padding: 12px 16px 0; }
  .hero { min-height: 0; padding: 18px 18px 20px; border-radius: 14px; }
  .hero-copy { width: 76%; }
  .hero-kicker { font-size: 10px; letter-spacing: 1px; }
  .hero h1 { font-size: clamp(30px, 8.5vw, 40px); margin: 10px 0; line-height: 1; }
  .hero-copy p { font-size: 14px; max-width: 220px; }
  .hero-button, .hero-strip, .hero-seal, .spark { display: none; }
  .hero-art { height: 105px; width: 27%; right: 1%; top: 22%; transform: none; }
  .hero-art img { max-height: 80px; }
  .hero-orbit { inset: 10px 0; box-shadow: 4px 4px 0 var(--orange); }
  .service-info { margin-top: 12px; padding: 12px; }
  .service-info dl { gap: 8px; margin: 10px 0; }
  .service-info dt { font-size: 12px; }
  .service-info dd { font-size: 13px; }
  .service-info > p:last-child { font-size: 12px; }
  .restored-cart { flex-wrap: wrap; }
  .menu-section { padding-top: 22px; }
  .section-heading h2 { font-size: 28px; }
  .section-heading .eyebrow { font-size: 10px; }
  .product-count { font-size: 12px; }
  .demo-note { font-size: 13px; max-width: none; }
  .menu-help { font-size: 12px; }
  .catalog-heading { margin-top: 0; }
  .catalog-heading h3 { font-size: 17px; }
  .catalog-heading > span { font-size: 12px; }
  .catalog-group-heading { margin-bottom: 12px; padding-top: 12px; }
  .catalog-group-heading .eyebrow { font-size: 11px; }
  .catalog-group-heading h3 { font-size: 24px; }
  .products { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .product-card { display: grid; grid-template-columns: 84px minmax(0, 1fr); border-radius: 12px; }
  .product-art { height: 100%; min-height: 140px; display: flex; align-items: center; justify-content: center; }
  .product-art img { width: 74px; height: 90px; object-fit: contain; }
  .product-art:after { display: none; }
  .product-info { min-width: 0; padding: 14px 12px; }
  .product-info h4 { font-size: 17px; line-height: 1.3; }
  .product-description { font-size: 14px; line-height: 1.5; }
  .product-bottom { gap: 8px; margin-top: 10px; align-items: center; flex-wrap: wrap; }
  .product-price, .product-price.price-pending { font-size: 14px; }
  .add-button { font-size: 14px; min-height: 44px; padding: 10px 12px; width: auto; }
  .dialog { padding: 18px; width: calc(100% - 16px); max-height: 94dvh; }
  .dialog h2 { font-size: 26px; }
  .product-dialog, .cart-dialog { width: 100%; padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  .product-detail-top { grid-template-columns: 60px minmax(0, 1fr); gap: 12px; }
  .product-detail-top img { width: 60px; height: 72px; }
  .product-dialog-bottom { bottom: -18px; flex-wrap: wrap; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .product-dialog-bottom .primary-button { font-size: 15px; padding: 12px; flex: 1 1 150px; }
  .cart-dialog .cart-items { max-height: none; }
  .cart-item { grid-template-columns: 36px minmax(0, 1fr); gap: 8px; }
  .cart-item-art { width: 36px; }
  .cart-item-bottom { flex-wrap: wrap; gap: 10px; }
  .total-row, .total-row.subtle, .checkout-summary .total-row { font-size: 14px; }
  .total-row.grand-total, .checkout-summary .grand-total { font-size: 20px; }
  .checkout-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .checkout-summary { grid-row: auto; }
  .checkout-summary ul { max-height: none; overflow: visible; }
  .checkout-intro { font-size: 14px; }
  .review-card { padding: 14px; }
  .delivery-review dl { grid-template-columns: minmax(0, 1fr); }
  .review-primary { bottom: -18px; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .footer { flex-wrap: wrap; font-size: 12px; }
}

@media (max-width: 360px) {
  .header-inner .menu-link { display: none; }
  .header-inner .bag-button { margin-left: auto; }
  .header-inner .bag-label { display: inline; font-size: 13px; }
  .product-card { grid-template-columns: 64px minmax(0, 1fr); }
  .product-art img { width: 58px; }
  .hero-copy { width: 80%; }
  .hero-art { opacity: .7; right: -3%; }
  .readable-items .summary-item { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .summary-item-price { text-align: left; max-width: none; }
  .mobile-cart-bar > span:first-child { gap: 6px; font-size: 14px; }
}
