/* SCG Base Components */

*, *::before, *::after { 
  box-sizing: border-box; 
  margin: 0; 
  padding: 0; 
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-family, 'Inter', system-ui, sans-serif);
  font-size: var(--font-size-base);
  background-color: var(--bg-color, #ffffff);
  color: var(--text-color, #1e293b);
  line-height: var(--line-height, 1.6);
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Container */
.container {
  width: 100%;
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--container-padding, 1.5rem);
}

/* Header Base */
.site-header {
  background: var(--header-bg, #ffffff);
  border-bottom: var(--header-border, 1px solid #e5e7eb);
  position: var(--header-position, relative);
}

.header-container {
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: var(--header-padding, 1rem 1.5rem);
  display: flex;
  flex-direction: var(--header-direction, row);
  align-items: var(--header-align, center);
  gap: var(--spacing-md);
}

.header-brand { display: flex; align-items: center; gap: var(--spacing-sm); }
.header-logo { height: var(--logo-height, 40px); width: auto; }
.header-logo-text { font-size: var(--font-size-lg); font-weight: 700; }
.header-title { font-size: var(--header-title-size, var(--font-size-xl)); font-weight: var(--header-title-weight, 700); }
.header-tagline { color: var(--text-muted, #64748b); font-size: var(--font-size-sm); }
.header-social { display: flex; gap: var(--spacing-sm); }
.social-link { opacity: 0.7; transition: opacity var(--transition-fast); }
.social-link:hover { opacity: 1; }


/* Main Content */
.catalog-main {
  padding: var(--main-padding, var(--spacing-xl)) 0;
  min-height: 50vh;
}

.catalog-intro {
  text-align: center;
  max-width: 600px;
  margin: -1rem auto var(--spacing-xl);
  color: var(--text-muted, #64748b);
  font-size: var(--font-size-base);
  white-space: pre-line;
  line-height: 1.4;
}

/* Catalog Address Header */
.catalog-address-header {
  text-align: center;
  margin: -0.5rem auto var(--spacing-lg);
}

.catalog-address-link,
.catalog-address-text {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: var(--surface-color, rgba(255,255,255,0.1));
  border-radius: 2rem;
  color: var(--text-color);
  text-decoration: none;
  font-size: var(--font-size-sm);
  transition: all 0.2s ease;
}

.catalog-address-link:hover {
  background: var(--primary-color);
  color: var(--primary-contrast, #fff);
}

.catalog-address-icon {
  color: #EA4335;
  flex-shrink: 0;
}

.catalog-address-link:hover .catalog-address-icon {
  color: inherit;
}

/* Section Navigation */
.section-nav {
  margin-bottom: var(--spacing-lg);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.section-nav ul {
  display: flex;
  gap: var(--spacing-sm);
  list-style: none;
  justify-content: var(--nav-justify, center);
  flex-wrap: var(--nav-wrap, wrap);
}

.section-nav a {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  padding: 0.5rem 0.875rem;
  background: var(--nav-bg, #f1f5f9);
  border-radius: var(--nav-radius, 9999px);
  font-size: var(--font-size-sm);
  font-weight: 500;
  white-space: nowrap;
  transition: all var(--transition-fast);
}

.section-nav a:hover {
  background: var(--nav-hover-bg, var(--primary-color));
  color: var(--nav-hover-color, white);
}

.nav-count { opacity: 0.6; font-size: var(--font-size-xs); }

/* Nav icon image support */
.nav-icon-img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  flex-shrink: 0;
}

/* Sections */
.catalog-section {
  margin-bottom: var(--section-spacing, var(--spacing-2xl));
}

/* Section Frame Styles - Generic themes only */
/* Themes like Mixology have their own frame styles that override these */
body:not(.theme-mixology):not(.theme-gastro) .catalog-section.frame-chalk {
  position: relative;
  padding: var(--spacing-lg);
  border: 2px dashed var(--text-muted, #94a3b8);
  border-radius: var(--border-radius, 8px);
  background: var(--card-bg, rgba(255,255,255,0.5));
}

body:not(.theme-mixology):not(.theme-gastro) .catalog-section.frame-rounded {
  padding: var(--spacing-lg);
  border: 2px solid var(--primary-color, #3b82f6);
  border-radius: 16px;
  background: var(--card-bg, #ffffff);
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.1));
}

body:not(.theme-mixology):not(.theme-gastro) .catalog-section.frame-gold {
  position: relative;
  padding: var(--spacing-lg);
  border: 3px solid #d4a574;
  border-radius: 4px;
  background: linear-gradient(135deg, rgba(212,165,116,0.05) 0%, rgba(255,255,255,0) 100%);
  box-shadow: 0 0 0 1px rgba(212,165,116,0.3), inset 0 0 20px rgba(212,165,116,0.05);
}

body:not(.theme-mixology):not(.theme-gastro) .catalog-section.frame-gold::before,
body:not(.theme-mixology):not(.theme-gastro) .catalog-section.frame-gold::after {
  content: '✦';
  position: absolute;
  color: #d4a574;
  font-size: 12px;
}

body:not(.theme-mixology):not(.theme-gastro) .catalog-section.frame-gold::before { top: -6px; left: 50%; transform: translateX(-50%); }
body:not(.theme-mixology):not(.theme-gastro) .catalog-section.frame-gold::after { bottom: -6px; left: 50%; transform: translateX(-50%); }

/* Section Promo */
.section-promo {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-md);
  flex-wrap: wrap;
}

.promo-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-xs) var(--spacing-sm);
  background: var(--accent-color, #f59e0b);
  color: white;
  font-size: var(--font-size-lg);
  font-weight: 700;
  border-radius: 50%;
  min-width: 2.5rem;
  min-height: 2.5rem;
  animation: pulse 2s infinite;
}

.promo-text {
  display: inline-block;
  padding: var(--spacing-xs) var(--spacing-md);
  background: linear-gradient(135deg, var(--accent-color, #f59e0b) 0%, #f97316 100%);
  color: white;
  font-size: var(--font-size-sm);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-radius: var(--badge-radius, 4px);
  box-shadow: 0 2px 8px rgba(249, 115, 22, 0.3);
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

/* Section with promo styling */
.catalog-section.has-promo .section-header {
  position: relative;
}

.section-header {
  margin-bottom: var(--spacing-lg);
  text-align: var(--section-header-align, left);
}

.section-title {
  font-size: var(--section-title-size, var(--font-size-xl));
  font-weight: var(--section-title-weight, 600);
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.section-icon { font-size: 1.1em; }

.section-description {
  margin-top: var(--spacing-xs);
  color: var(--text-muted, #64748b);
  font-size: var(--font-size-sm);
}

/* Grid */
.grid { display: grid; gap: var(--grid-gap, var(--spacing-md)); }
.grid-auto { grid-template-columns: repeat(auto-fill, minmax(var(--grid-min, 240px), 1fr)); }

/* Cards */
.card {
  background: var(--card-bg, #ffffff);
  border: var(--card-border, 1px solid #e5e7eb);
  border-radius: var(--card-radius, 8px);
  box-shadow: var(--card-shadow, none);
  overflow: hidden;
  transition: all var(--transition-base);
}

.card:hover {
  transform: var(--card-hover-transform, translateY(-2px));
  box-shadow: var(--card-hover-shadow, var(--shadow-md));
  border-color: var(--card-hover-border, var(--primary-color));
}


/* Item Card */
.item-card { position: relative; }

.item-image {
  position: relative;
  background: var(--image-placeholder-bg, #f8fafc);
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: var(--image-aspect, 4/3);
  overflow: hidden;
}

.item-image img {
  width: 100%;
  height: 100%;
  object-fit: var(--image-fit, cover);
}

.item-image .badge {
  position: absolute;
  top: var(--spacing-sm);
  left: var(--spacing-sm);
}

.item-content {
  padding: var(--card-padding, 0.875rem);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}

.item-name {
  font-size: var(--item-name-size, var(--font-size-base));
  font-weight: var(--item-name-weight, 600);
  line-height: 1.3;
}

.item-description {
  font-size: var(--font-size-sm);
  color: var(--text-muted, #64748b);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.4;
  transition: all 0.3s ease;
}

/* Expandable Card Feature */
.item-card.expandable::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--primary-color, #3b82f6), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.item-card.expandable:hover::after {
  opacity: 0.5;
}

.item-card.expanded {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) !important;
  z-index: 9999;
  width: 90%;
  max-width: 500px;
  max-height: 85vh;
  overflow-y: auto;
  animation: expandCard 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4);
  cursor: default;
}

.item-card.expanded:hover {
  transform: translate(-50%, -50%) !important;
}

.item-card.expanded::after {
  display: none;
}

.item-card.expanded .item-description {
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  overflow: visible;
}

/* Close button for expanded card */
.item-card-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-color, #f8fafc);
  border: 1px solid var(--border-color, #e5e7eb);
  border-radius: 50%;
  font-size: 1rem;
  color: var(--text-muted, #64748b);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease;
  z-index: 10;
}

.item-card.expanded .item-card-close {
  opacity: 1;
  visibility: visible;
}

.item-card-close:hover {
  background: var(--primary-color, #3b82f6);
  color: white;
  border-color: var(--primary-color, #3b82f6);
  transform: rotate(90deg);
}

/* Expand indicator */
.expand-indicator {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  margin-top: 0.5rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.7rem;
  color: var(--primary-color, #3b82f6);
  opacity: 0.7;
  transition: opacity 0.2s ease;
}

.item-card.expandable .expand-indicator {
  display: flex;
}

.item-card.expandable:hover .expand-indicator {
  opacity: 1;
}

.item-card.expanded .expand-indicator {
  display: none;
}

/* Backdrop overlay */
.card-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: none;
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.card-backdrop.active {
  opacity: 1;
  visibility: visible;
}

/* Placeholder for expanded card */
.card-placeholder {
  visibility: hidden;
}

@keyframes expandCard {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

.item-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs);
}

.item-footer {
  margin-top: auto;
  padding-top: var(--spacing-xs);
}

.item-price {
  display: flex;
  align-items: baseline;
  gap: var(--spacing-xs);
  flex-wrap: wrap;
}

.price-amount {
  font-size: var(--price-size, var(--font-size-lg));
  font-weight: var(--price-weight, 700);
  color: var(--price-color, var(--primary-color));
}

/* Precio original tachado (descuento) */
.price-original {
  font-size: var(--font-size-sm);
  font-weight: 400;
  color: var(--text-muted, #9ca3af);
  text-decoration: line-through;
  margin-right: var(--spacing-xs);
}

/* Badge de descuento estilo MercadoLibre */
.badge-discount {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  background: var(--discount-badge-bg, #00a650);
  color: var(--discount-badge-color, #ffffff);
  font-size: 11px;
  font-weight: 600;
  border-radius: 3px;
  margin-left: var(--spacing-xs);
  white-space: nowrap;
}

/* Variante con descuento */
.variant-price .price-original {
  display: block;
  margin-right: 0;
  margin-bottom: 2px;
}

.price-label {
  font-size: var(--font-size-xs);
  color: var(--text-muted, #64748b);
}

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--badge-radius, 4px);
  font-size: var(--font-size-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.badge-featured { background: var(--accent-color, #f59e0b); color: white; }
.badge-new { background: #22c55e; color: white; }
.badge-sale { background: #ef4444; color: white; }

/* Tags */
.tag {
  display: inline-block;
  padding: var(--spacing-xs) var(--spacing-sm);
  background: var(--tag-bg, #f1f5f9);
  color: var(--tag-color, #64748b);
  border-radius: var(--tag-radius, 4px);
  font-size: var(--font-size-xs);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  padding: var(--btn-padding, 0.625rem 1.25rem);
  border: var(--btn-border, none);
  border-radius: var(--btn-radius, 6px);
  font-family: inherit;
  font-size: var(--font-size-sm);
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
}

.btn-primary {
  background: var(--primary-color);
  color: var(--primary-contrast, white);
}

.btn-primary:hover { filter: brightness(0.9); }

.btn-whatsapp { background: #25d366; color: white; }
.btn-whatsapp:hover { background: #1da851; }


/* Footer */
.site-footer {
  background-color: var(--footer-bg, #f9fafb);
  border-top: var(--footer-border, 1px solid #e5e7eb);
  padding: var(--footer-padding, var(--spacing-xl)) 0;
  margin-top: var(--spacing-xl);
}

.footer-container {
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--container-padding, 1.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-sm);
  text-align: center;
}

.footer-name {
  font-size: var(--font-size-base);
  font-weight: 600;
}

.footer-contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--spacing-sm) var(--spacing-md);
  color: var(--text-muted, #64748b);
  font-size: var(--font-size-sm);
}

.footer-link:hover { color: var(--primary-color); }

.footer-address {
  display: block;
  width: 100%;
  margin-top: var(--spacing-xs);
  font-size: var(--font-size-xs);
  opacity: 0.8;
}

.footer-maps-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.footer-maps-link:hover {
  opacity: 1;
  text-decoration: underline;
}

.footer-maps-link .maps-icon {
  color: #EA4335;
  flex-shrink: 0;
}

.footer-cta { margin-top: var(--spacing-xs); }

.footer-powered {
  margin-top: var(--spacing-sm);
  font-size: var(--font-size-xs);
  color: var(--text-muted, #64748b);
  opacity: 0.65;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}

.footer-contact-info {
  display: block;
  font-size: 0.7rem;
}

.footer-contact-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.footer-contact-link:hover {
  opacity: 0.8;
}

.footer-branding {
  display: block;
  margin-top: 0.25rem;
}

.footer-branding-link {
  color: inherit;
  text-decoration: underline;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.footer-branding-link:hover {
  opacity: 1;
}

/* Aspect Ratios */
.aspect-4-3 { aspect-ratio: 4/3; }
.aspect-1-1 { aspect-ratio: 1/1; }
.aspect-16-9 { aspect-ratio: 16/9; }
.aspect-3-4 { aspect-ratio: 3/4; }

.img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Responsive */
@media (max-width: 768px) {
  .container { padding: 0 var(--spacing-md); }
  .header-container { padding: var(--spacing-md); }
  .grid-auto { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
  .section-nav ul { justify-content: flex-start; flex-wrap: nowrap; }
}

@media (max-width: 480px) {
  .grid-auto { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 360px) {
  .grid-auto { grid-template-columns: repeat(2, 1fr); }
}
