/* Shared storefront typography. Loaded after page styles; desktop keeps its existing scale. */
@media (max-width: 760px) {
  body { font-size: 16px; line-height: 1.6; }

  body :is(.hero-copy, .catalog-heading p, .product-intro, .information-body,
    .information-lead, .editorial-copy, .contact-note .editorial-copy,
    .personalizer p, .personalize-heading p, .personalize-choice p, .workspace-intro,
    .cuenta-heading > p, .cuenta-card > p, .cuenta-aside > p, .cuenta-notice,
    .cuenta-welcome > p, .cuenta-entry-aside > section > p, .cuenta-benefits li,
    .contact-questions details > p, .carrito-empty > p, .carrito-entrega > p) {
    font-size: 16px;
    line-height: 1.65;
  }

  body :is(.breadcrumbs, .product-page .breadcrumbs, .eyebrow, .hero .eyebrow,
    .catalog-heading .eyebrow, .product-summary .eyebrow, .section-heading p,
    .rating, .catalog-grid .rating, .product-price small, .price-caption,
    .gallery-image figcaption, .gallery-thumbs p, .gallery-thumbs p span,
    .purchase-note, .preparation-note, .quantity-note, .selection-notice,
    .detail-rating, .product-availability, .detail-service span, .detail-preview-note,
    .product-facts span, .product-family p, .product-tags a,
    .variant-choice small, .variant-form legend > span,
    .personalization-notice p, .personalization-field label small,
    .field-hint, .preview-disclaimer, .local-preview-note, .price-pending,
    .personalization-extra label span, .personalization-quantity > span,
    .personalizer-steps span, .personalize-steps li, .personalize-assurance span,
    .catalog-toolbar p, .catalog-pagination span, .filter-chip, .occasion,
    .flow-meta, .configuration-steps li, .configuration-picker > span,
    .configuration-photo figcaption, .configuration-page [data-config-count],
    .cuenta-page .cuenta-hint, .cuenta-help-link small, .cuenta-identity dt,
    .carrito-steps li, .carrito-unitario, .carrito-detalles, .carrito-detalles dt,
    .carrito-detalles > p, .carrito-tax, .carrito-quote-note, .carrito-reservation,
    .carrito-resumen #carrito-checkout-note, .carrito-line-total > small,
    .carrito-line-total > span, .channel-link small, .footer-inner p,
    .footer-inner h3, .footer-inner > div > a:not(.footer-brand),
    .footer-inner > div > button, .footer-bottom) {
    font-size: 14px;
    line-height: 1.5;
  }

  body :is(.button, .product .button, .catalog-grid .product .button,
    .catalog-pagination .button, .catalog-empty .button, .hero-buttons .secondary,
    .personalize-choice .button, .text-link, .section-heading .text-link,
    .catalog-toolbar .sort-submit, .category-filter, .occasion-filter,
    .variant-choice > span, .personalization-field label, .personalization-extra label,
    .personalization-quantity label, .cuenta-page label, .entrega-fields label,
    .entrega-choice label, .carrito-line-actions > button) {
    font-size: 15px;
    line-height: 1.45;
  }

  body .button { min-height: 44px; white-space: normal; text-align: center; }
  body .product .button { padding-inline: 8px; letter-spacing: 0; gap: 6px; }
  body :is(.product-name, .catalog-grid .product-name) { font-size: 18px; line-height: 1.4; }
  body :is(.product-price, .catalog-grid .product-price) { font-size: 18px; }
  body .detail-price { font-size: 29px; }
  body .detail-price small { font-size: 14px; }

  body main :is(input, select, textarea):not([type=checkbox]):not([type=radio]) {
    font-size: 16px;
    line-height: 1.5;
  }
  body #query { font-size: 16px; }
  body #toast { font-size: 16px; line-height: 1.5; }
  .breadcrumbs, .catalog-toolbar, .detail-service, .personalizer-steps { flex-wrap: wrap; }
  .catalog-toolbar form { max-width: 100%; }
  .configuration-steps li { min-width: 0; overflow-wrap: anywhere; }
}

@media (max-width: 600px) {
  body .announcement { font-size: 13px; line-height: 1.4; }
  body .mobile-bottom > * { font-size: 12px; line-height: 1.3; padding-inline: 3px; }
  body .category { flex: 0 0 92px; max-width: 92px; }
  body .category h3 { font-size: 14px; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
  .hero-benefits { position: static; flex-wrap: wrap; margin-top: 24px; padding: 12px 0; }
  body .hero-benefits span { font-size: 13px; line-height: 1.4; max-width: none; flex: 1 1 130px; }
  .hero-benefits .icon { flex-shrink: 0; }
  .hero-content { padding-bottom: 20px; }
}
