@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

/* Sistema visual compartido para las páginas públicas */
:root {
  --se-ink: #102235;
  --se-blue: #0e5a8d;
  --se-blue-dark: #060e18;
  --se-blue-pale: #eaf4fa;
  --se-page: #f7f9fb;
  --se-line: #dbe5ec;
  --se-radius: 16px;
}

html, body { background: var(--se-page); }
body, button, input, select, textarea { font-family: 'Open Sans', Arial, sans-serif !important; }
h1, h2, h3, h4, h5, h6 { font-family: 'Open Sans', Arial, sans-serif !important; color: var(--se-ink); }

/* Cabeceras y héroes de páginas interiores */
.site-header, .hero-cat, .profile-hero, .empresa-hero, .hero {
  font-family: 'Open Sans', Arial, sans-serif;
}
.hero-cat, .profile-hero, .empresa-hero, .hero:not(.hero-section) {
  background: var(--se-blue-dark) !important;
}
.hero-cat::before, .hero-cat::after, .hero-cat-glow, .hero-glow { display: none !important; }
.hero-cat .container, .profile-hero .container, .empresa-hero .container, .hero:not(.hero-section) .container {
  width: calc(100% - 48px);
  max-width: 1600px;
  margin-inline: auto;
}
.hero-cat-title, .profile-hero h1, .empresa-hero h1, .hero:not(.hero-section) h1 { color: #fff !important; }
.hero-breadcrumb, .hero-cat-count, .hero-cat-tags, .hero p { color: #c6d5e0; }

/* Buscadores, formularios y acciones */
.cat-search-box, .search-box, .form-card, .form-section, .content-card, .detail-card {
  border-radius: var(--se-radius) !important;
}
.cat-search-box, .search-box {
  background: #fff !important;
  border: 1px solid var(--se-line) !important;
  box-shadow: 0 8px 24px rgba(16,34,53,.08) !important;
}
input, select, textarea {
  border-color: var(--se-line) !important;
  border-radius: 10px !important;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--se-blue) !important;
  box-shadow: 0 0 0 3px rgba(14,90,141,.12) !important;
}
.search-btn, .cat-search-btn, .btn-submit, .btn-primary, .btn-cta-amber, .btn-pro, .load-more-btn {
  background: var(--se-blue) !important;
  border-color: var(--se-blue) !important;
  color: #fff !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-weight: 700 !important;
}
.search-btn:hover, .cat-search-btn:hover, .btn-submit:hover, .btn-primary:hover, .btn-cta-amber:hover, .btn-pro:hover, .load-more-btn:hover {
  background: #1475ae !important;
  border-color: #1475ae !important;
  transform: none !important;
}

/* Listados y contenido */
.cat-content, .page-wrap, .main-content, .content-wrap, .legal-wrap {
  width: calc(100% - 48px);
  max-width: 1600px;
  margin-inline: auto;
}
.filters-bar, .company-card-v4, .company-card, .faq-item, .form-card, .success-card, .info-notice, .cta-inline, .city-badge, .profile-card {
  border-color: var(--se-line) !important;
  border-radius: var(--se-radius) !important;
  box-shadow: none !important;
}
.company-card-v4, .company-card, .form-card, .success-card, .faq-item, .profile-card { background: #fff !important; }
.company-card-v4:hover, .company-card:hover { border-color: #a9d4ec !important; }
.filter-pill { border-radius: 999px !important; border-color: var(--se-line) !important; }
.filter-pill.active { background: var(--se-blue) !important; border-color: var(--se-blue) !important; color: #fff !important; }
.company-title, .company-title a, .faq-heading, .section-heading { color: var(--se-ink) !important; }
.company-meta, .company-desc, .faq-answer, .field label, .form-card p { color: #617789 !important; }
.verified, .stars, .rating-number { color: var(--se-blue) !important; }

/* Documentos legales y estado vacío */
.legal-content, .legal-card, .not-found-card {
  background: #fff;
  border: 1px solid var(--se-line);
  border-radius: 20px;
}

@media (max-width: 640px) {
  .hero-cat .container, .profile-hero .container, .empresa-hero .container, .hero:not(.hero-section) .container,
  .cat-content, .page-wrap, .main-content, .content-wrap, .legal-wrap { width: calc(100% - 24px); }
}
