/**
 * Contrato visual — temas públicos certificados.
 * Puente de aliases legacy → tokens canónicos (--color-primary, --color-secondary, --color-accent).
 * Carga después de public_site_theme.php y belleza-chrome.css.
 */

:root {
  --primary: var(--color-primary);
  --primary-dark: var(--color-primary-dark);
  --secondary: var(--color-secondary);
  --accent: var(--color-accent);
  --theme-highlight: var(--color-accent);
  --belleza-btn: var(--color-primary);
  --text-dark: var(--text-primary, var(--color-text));
}

/* —— Overrides: colores de marca del tema (eliminar hardcode Belleza-only) —— */

.services-section {
  box-shadow: 0 12px 40px color-mix(in srgb, var(--color-primary) 6%, transparent);
}

.services-empty-msg {
  color: var(--color-primary);
}

.services-title,
.page-title,
.section-title,
.form-title,
.form-title-contacto,
.map-title {
  color: var(--color-primary-dark, var(--color-primary));
}

.section-title::after {
  background: var(--color-primary);
}

.section-text strong {
  color: var(--color-primary);
}

.footer {
  background: var(--color-primary-dark, var(--color-primary));
}

.navbar {
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
}

.nav-menu {
  background: linear-gradient(180deg, var(--color-primary) 0%, var(--color-secondary) 100%);
}

/* [FIX-NAVMENU-BELLEZA] Quita SOLO el fondo (placa/franja) del menú en el tema Belleza,
   en escritorio (≥769px). No toca alineación, tipografía, hover ni el drawer móvil
   (que conserva su fondo desde styles/style.css @media max-width:768px).
   Reversión: eliminar este bloque. */
@media (min-width: 769px) {
  [data-belleza-public-theme="belleza"] .nav-menu {
    background: transparent !important;
    background-image: none !important;
  }
}

.page-wrapper {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--color-primary) 24%, var(--background)),
    var(--background)
  );
}

.service-card.selected {
  border-color: var(--color-primary);
  box-shadow: 0 15px 35px color-mix(in srgb, var(--color-primary) 25%, transparent);
}

.service-card:hover:not(.selected) {
  box-shadow:
    0 20px 40px rgba(0, 0, 0, 0.12),
    0 0 20px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.services-summary {
  box-shadow: 0 12px 32px color-mix(in srgb, var(--color-primary) 12%, transparent);
  border-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
}

.services-summary-message {
  color: var(--color-primary);
}

.services-summary-list li::before {
  color: var(--color-accent);
}

.calendar-nav-btn {
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
}

.calendar-month-year,
.calendar-weekdays .weekday,
.calendar-availability-msg {
  color: var(--color-primary);
}

.calendar-day.full {
  background: color-mix(in srgb, var(--color-primary) 72%, #000000);
  color: #ffffff;
  border-color: color-mix(in srgb, var(--color-primary) 55%, var(--border-color));
}

.map-info {
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
}

.map-info i,
.map-info strong {
  color: var(--color-primary);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.form-group input:hover,
.form-group select:hover,
.form-group textarea:hover {
  border-color: var(--color-accent);
}

.gallery-item:hover {
  border-color: color-mix(in srgb, var(--color-primary) 22%, var(--border-light, transparent));
  box-shadow:
    0 12px 32px color-mix(in srgb, var(--color-primary) 14%, transparent),
    0 1px 0 rgba(255, 255, 255, 0.65);
}
