@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600&family=Inter:wght@300;400;500&display=swap');

/* Reset Moderno */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  background-color: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  transition: background-color 0.3s, color 0.3s;
}

/* Accesibilidad: Foco visible */
:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
  border-radius: 4px;
}
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Layout */
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 var(--spacing-md); }
.site-header { background: var(--color-surface); border-bottom: 1px solid var(--color-border); position: sticky; top: 0; z-index: 100; }
.header-inner { display: flex; justify-content: space-between; align-items: center; padding: var(--spacing-md) 0; }
.logo { display: flex; align-items: center; gap: var(--spacing-sm); text-decoration: none; color: var(--color-text); font-family: var(--font-title); font-size: 1.8rem; font-weight: 600; }
.logo svg { width: 32px; height: 32px; fill: var(--color-accent); }

/* Navegación */
.main-nav ul { display: flex; list-style: none; gap: var(--spacing-lg); }
.main-nav a { text-decoration: none; color: var(--color-text); font-weight: 400; transition: var(--transition); position: relative; }
.main-nav a:hover, .main-nav a.active { color: var(--color-accent); }
.main-nav a.active::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 100%; height: 2px; background: var(--color-accent); }

.menu-toggle, .theme-toggle { display: none; background: none; border: none; cursor: pointer; color: var(--color-text); padding: var(--spacing-sm); }
.menu-toggle svg, .theme-toggle svg { width: 24px; height: 24px; fill: currentColor; }

/* Componentes */
.btn {
  display: inline-block; padding: 0.75rem 1.5rem; background: var(--color-accent); color: white;
  text-decoration: none; border-radius: var(--border-radius); border: none; cursor: pointer;
  font-family: var(--font-body); font-weight: 500; transition: var(--transition);
}
.btn:hover { filter: brightness(1.1); transform: translateY(-1px); }
.btn-secondary { background: var(--color-secondary); color: var(--color-text); }

/* Banner Honesto */
.honest-banner {
  background: hsl(45, 100%, 90%); color: hsl(30, 50%, 30%); text-align: center;
  padding: var(--spacing-sm); font-size: 0.9rem; font-weight: 500; border-bottom: 1px solid hsl(45, 100%, 70%);
}
[data-theme="dark"] .honest-banner { background: hsl(45, 30%, 20%); color: hsl(45, 100%, 80%); }

/* Sucursal Virtual Builder */
.builder-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--spacing-lg); margin: var(--spacing-lg) 0; }
.builder-card { background: var(--color-surface); padding: var(--spacing-lg); border-radius: var(--border-radius); border: 1px solid var(--color-border); }
.builder-card h3 { font-family: var(--font-title); margin-bottom: var(--spacing-md); color: var(--color-accent); }
.option-group { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); }
.option-btn {
  padding: 0.5rem 1rem; border: 1px solid var(--color-border); background: var(--color-bg);
  color: var(--color-text); border-radius: 20px; cursor: pointer; transition: var(--transition);
}
.option-btn[aria-pressed="true"] { background: var(--color-accent); color: white; border-color: var(--color-accent); }
.builder-summary { background: var(--color-secondary); color: var(--color-text); padding: var(--spacing-lg); border-radius: var(--border-radius); margin-top: var(--spacing-lg); }

/* Chat Zen Assistant */
.chat-fab {
  position: fixed; bottom: var(--spacing-lg); right: var(--spacing-lg); width: 60px; height: 60px;
  border-radius: 50%; background: var(--color-accent); color: white; border: none; cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15); display: flex; align-items: center; justify-content: center; z-index: 90;
}
.chat-modal {
  position: fixed; inset: 0; background: rgba(0,0,0,0.5); display: none; align-items: center; justify-content: center; z-index: 200;
}
.chat-modal[open] { display: flex; }
.chat-content {
  background: var(--color-surface); width: 90%; max-width: 400px; border-radius: var(--border-radius);
  padding: var(--spacing-lg); position: relative; max-height: 90vh; overflow-y: auto;
}
.chat-close { position: absolute; top: var(--spacing-md); right: var(--spacing-md); background: none; border: none; cursor: pointer; color: var(--color-text); }

/* Animación de Respiración */
.breathing-container { text-align: center; margin-top: var(--spacing-md); display: none; }
.breathing-circle {
  width: 80px; height: 80px; border-radius: 50%; background: var(--color-accent); margin: 0 auto;
  opacity: 0.7; animation: breathe 12s infinite ease-in-out;
}
@keyframes breathe {
  0%, 100% { transform: scale(1); }
  33% { transform: scale(1.6); } /* Inhala 4s */
  66% { transform: scale(1.6); } /* Mantén 4s */
  /* Exhala 4s (de 66% a 100%) */
}

/* Footer */
.site-footer { background: var(--color-surface); border-top: 1px solid var(--color-border); padding: var(--spacing-xl) 0; margin-top: var(--spacing-xl); text-align: center; }

/* Responsive */
@media (max-width: 768px) {
  .menu-toggle { display: block; }
  .main-nav {
    position: fixed; top: 60px; left: 0; right: 0; background: var(--color-surface);
    flex-direction: column; padding: var(--spacing-lg); transform: translateY(-150%);
    transition: transform 0.3s ease-in-out; border-bottom: 1px solid var(--color-border);
  }
  .main-nav.nav-open { transform: translateY(0); }
  .main-nav ul { flex-direction: column; gap: var(--spacing-md); }
}