/*
Theme Name: Calderón Godoy Abogados
Theme URI: https://calderongodoy.com/
Author: Calderón Godoy
Author URI: https://calderongodoy.com/
Description: Tema ligero, accesible y optimizado para SEO. Paleta adaptada al logo (amarillo y gris oscuro), WhatsApp en todas las páginas y JSON-LD LegalService.
Version: 1.1.0
License: GPL-2.0-or-later
Text Domain: calderon-godoy
*/
:root {
  --cg-font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  --cg-max-w: 1200px;
  --cg-accent: #ffd400;
  --cg-dark: #2f3a40;
  --cg-text: #111111;
  --cg-text-on-dark: #ffffff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--cg-font-sans);
  color: var(--cg-text);
  line-height: 1.65;
  background: #fff;
}
a { color: var(--cg-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
.container { max-width: var(--cg-max-w); padding: 0 1rem; margin: 0 auto; }
.topbar {
  background: var(--cg-dark);
  color: var(--cg-text-on-dark);
  font-size: .95rem;
}
.topbar-inner {
  display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.5rem 0;
}
.topbar .wa { display:flex; align-items:center; gap:.5rem; }
.topbar .wa svg { width:20px; height:20px; }
.topbar a { color: var(--cg-text-on-dark); }
.header {
  border-bottom: 1px solid #eee;
  background: #fff;
}
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 0; }
.site-title a { font-weight: 700; font-size: 1.1rem; display:flex; align-items:center; gap:.5rem; }
.site-title img { height: 40px; width:auto; border-radius: 8px; }
.nav-primary ul { list-style: none; display: flex; gap: 1rem; margin: 0; padding: 0; flex-wrap: wrap; }
.nav-primary a { color: var(--cg-dark); }
.hero {
  padding: 4rem 0 2rem;
  background: linear-gradient(180deg, var(--cg-dark) 0%, #404b51 100%);
  color: var(--cg-text-on-dark);
  border-bottom: 4px solid var(--cg-accent);
}
.hero h1 { font-size: clamp(2rem, 3.2vw, 3rem); margin: 0 0 .5rem; }
.hero p.lead { font-size: 1.1rem; opacity: .95; }
.grid { display: grid; gap: 1.25rem; }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.card { border: 1px solid #eee; border-radius: 12px; padding: 1rem; }
.card h3 { margin-top: 0; }
.footer { border-top: 1px solid #eee; padding: 2rem 0; margin-top: 3rem; font-size: .95rem; background:#fafafa; }
.footer-cols { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.cta {
  display: inline-block; padding: .75rem 1rem; border-radius: 999px; border: 2px solid var(--cg-accent); color: var(--cg-dark); background: transparent; font-weight:600;
}
.cta-primary { background: var(--cg-accent); color: #111; border-color: var(--cg-accent); }
.cta-ghost { background: transparent; color: var(--cg-text-on-dark); border-color: var(--cg-text-on-dark); }
main { margin-top: 1rem; }
.breadcrumbs { font-size: .9rem; color: #666; margin: .5rem 0 1rem; }
.breadcrumbs a { color: inherit; }
.post-content img { max-width: 100%; height: auto; border-radius: 8px; }
table { width: 100%; border-collapse: collapse; }
th, td { border: 1px solid #eee; padding: .5rem; text-align: left; }
/* Floating buttons */
.cg-fab, .cg-wa-fab {
  position: fixed; right: 1rem; z-index: 999; 
  color: #fff; border-radius: 999px; padding: .8rem 1rem;
  box-shadow: 0 6px 20px rgba(0,0,0,.15); display:flex; align-items:center; gap:.5rem;
}
.cg-fab { bottom: 4.2rem; background: var(--cg-dark); }
.cg-wa-fab { bottom: 1rem; background: #25D366; }
.cg-fab:focus, .cg-wa-fab:focus { outline: 2px solid #000; outline-offset: 2px; }
/* Gutenberg alignments */
.alignwide { margin-left: auto; margin-right: auto; max-width: 90vw; }
.alignfull { width: 100vw; margin-left: calc(50% - 50vw); }
/* Forms */
form.cg-form { display: grid; gap: .75rem; max-width: 680px; }
form.cg-form input, form.cg-form textarea { width: 100%; padding: .7rem .8rem; border: 1px solid #ccc; border-radius: 8px; }
form.cg-form button { padding: .7rem 1rem; border-radius: 8px; border: none; background: var(--cg-accent); color: #111; font-weight:600; }
.notice { padding: .75rem 1rem; border-radius: 8px; }
.notice-success { background: #e6f8ee; }
.notice-error { background: #fde8e8; }
