/*
Theme Name: BiziOndo
Theme URI: https://biziondo.com
Author: BiziOndo Kiropraktikoak
Author URI: https://biziondo.com
Description: Tema de bloques (Full Site Editing) para BiziOndo Kiropraktikoak — clínica de quiropráctica en Oiartzun. Cabecera y pie compartidos, secciones como patrones editables, campos personalizables y compatible con Polylang / WPML.
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: biziondo
Tags: full-site-editing, block-patterns, custom-colors, custom-menu, wide-blocks, editor-style, one-column, translation-ready
*/

/* ============================================================
   BiziOndo — estilos de componentes
   La paleta, tipografías y estilos base están en theme.json.
   Aquí van los detalles a medida que los bloques no cubren.
   ============================================================ */

:root {
  --bz-accent: #B15C3F;
  --bz-accent-soft: #E8B79E;
  --bz-sage: #5E7A63;
  --bz-heading: #241F1A;
  --bz-soft: #574F45;
  --bz-muted: #8A7E6C;
  --bz-card: #FCFAF6;
  --bz-border: #E7DECE;
  --bz-border-strong: #E3DACB;
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* --- Cabecera fija con desenfoque --------------------------- */
.bz-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(246, 241, 234, 0.82);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--bz-border-strong);
}
/* Contenedor centrado con márgenes laterales, en cabecera y pie */
.bz-header > .wp-block-group,
.bz-footer > .wp-block-group {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 5vw, 48px);
  padding-right: clamp(20px, 5vw, 48px);
  box-sizing: border-box;
}
/* Conmutador de idioma */
.bz-header .wp-block-shortcode,
.bz-header .wp-block-shortcode p { margin: 0; }
.bz-langs {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--bz-muted);
}
.bz-langs a { color: var(--bz-muted); }
.bz-langs a:hover,
.bz-langs a.is-current { color: var(--bz-heading); }
.bz-langs .sep { color: #C7BCA9; }
.bz-brand .wp-block-site-title,
.bz-brand .wp-block-site-title a {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-weight: 700;
  font-size: 28px;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--bz-heading);
}
.bz-brand .wp-block-site-title a:hover { color: var(--bz-heading); }
.bz-tagline {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bz-muted);
  margin: 2px 0 0 !important;
}
/* Navegación */
.bz-nav .wp-block-navigation-item__content {
  font-weight: 600;
  font-size: 15px;
  color: var(--bz-soft);
}
.bz-nav .wp-block-navigation-item__content:hover { color: var(--bz-heading); }

/* Menú por idioma (shortcode [bz_menu]) */
.bz-header .wp-block-shortcode:has(.bz-nav-menu) { margin: 0; flex: 1; display: flex; justify-content: center; }
ul.bz-nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(16px, 2.6vw, 32px);
}
ul.bz-nav-menu a {
  font-weight: 600;
  font-size: 15px;
  color: var(--bz-soft);
}
ul.bz-nav-menu a:hover,
ul.bz-nav-menu .current-menu-item > a { color: var(--bz-heading); }

/* Botón "Pide tu cita" de la cabecera (shortcode [bz_cta]) */
a.bz-header-cta {
  display: inline-block;
  background: var(--bz-accent);
  color: #FCFAF6;
  font-weight: 700;
  font-size: 14.5px;
  padding: 11px 20px;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(177, 92, 63, 0.22);
  white-space: nowrap;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
a.bz-header-cta:hover {
  color: #FCFAF6;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(177, 92, 63, 0.28);
}

/* Menú del pie (shortcode [bz_menu]) en vertical */
.bz-footer ul.bz-nav-menu {
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
  font-size: 15px;
  font-weight: 600;
}
.bz-footer ul.bz-nav-menu a { color: #C6BBA9; }
.bz-footer ul.bz-nav-menu a:hover { color: #EDE4D6; }

/* Submenú legal del pie (shortcode [bz_legal]) */
.bz-footer .wp-block-shortcode:has(.bz-legal-menu) { margin: 0; }
ul.bz-legal-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 13px;
}
ul.bz-legal-menu a { color: #8A7E6C; }
ul.bz-legal-menu a:hover { color: #EDE4D6; }

/* --- Etiqueta superior (eyebrow) ---------------------------- */
.bz-eyebrow {
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bz-accent);
  margin-bottom: 18px !important;
}
.bz-eyebrow--soft { color: var(--bz-accent-soft); }

/* --- Botones tipo píldora ----------------------------------- */
.wp-block-button.bz-btn .wp-block-button__link,
.wp-block-button.bz-btn > .wp-block-button__link {
  background-color: var(--bz-accent);
  color: #FCFAF6;
  font-weight: 700;
  font-size: 16px;
  padding: 15px 28px;
  border-radius: 999px;
  border: none;
  box-shadow: 0 10px 26px rgba(177, 92, 63, 0.26);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.wp-block-button.bz-btn .wp-block-button__link:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(177, 92, 63, 0.32);
}
.wp-block-button.bz-btn--sm .wp-block-button__link {
  font-size: 14.5px;
  padding: 11px 20px;
  box-shadow: 0 6px 18px rgba(177, 92, 63, 0.22);
}
.wp-block-button.bz-btn--outline .wp-block-button__link {
  background-color: transparent;
  color: var(--bz-heading);
  font-weight: 700;
  font-size: 16px;
  padding: 15px 26px;
  border-radius: 999px;
  border: 1.5px solid #CFC3B0;
  box-shadow: none;
}
.wp-block-button.bz-btn--outline .wp-block-button__link:hover {
  border-color: var(--bz-accent);
  color: var(--bz-accent);
}

/* --- Chips / distintivos ------------------------------------ */
.bz-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.bz-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--bz-card);
  border: 1px solid var(--bz-border);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--bz-soft);
  margin: 0 !important;
}
.bz-chip::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--bz-sage);
}
.bz-chip--plain::before { display: none; }

/* --- Tarjetas ----------------------------------------------- */
.bz-card {
  background: var(--bz-card) !important;
  border: 1px solid var(--bz-border);
  border-radius: 18px;
  overflow: hidden;
}
.bz-card--sm { border-radius: 14px; }

/* Motivo de consulta (fila con punto) */
.bz-motivo {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--bz-card) !important;
  border: 1px solid var(--bz-border);
  border-radius: 14px;
  padding: 20px 22px;
  margin: 0 !important;
  font-size: 17px;
  font-weight: 600;
  color: #2E2A25;
}
.bz-motivo p { margin: 0 !important; font-size: 17px; font-weight: 600; color: #2E2A25; }
.bz-motivo::before {
  content: "";
  flex: none;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--bz-sage);
}

/* Número grande de paso */
.bz-step-num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 44px !important;
  font-weight: 700;
  line-height: 1;
  color: var(--bz-accent);
  margin: 0 0 4px !important;
}

/* --- Bandas oscuras y suaves -------------------------------- */
.bz-band-dark { background: var(--bz-heading); color: #EDE4D6; }
.bz-band-dark :where(h1, h2, h3, p, a) { color: #EDE4D6; }
.bz-band-dark .bz-em { font-style: italic; color: var(--bz-accent-soft); }
.bz-band-soft { background: #F1EADF; border-top: 1px solid var(--bz-border-strong); border-bottom: 1px solid var(--bz-border-strong); }

.bz-quote {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: -0.005em;
}
.bz-em { font-style: italic; color: var(--bz-accent); }

/* --- Bloque CTA / cita -------------------------------------- */
.bz-cita {
  background: var(--bz-heading) !important;
  color: #EDE4D6;
  border-radius: 26px;
}
.bz-cita :where(h2, p) { color: #EDE4D6; }
.bz-cita a { color: #EDE4D6; }
.bz-cita .wp-block-shortcode { margin: 0 0 12px; font-size: 16px; color: #EDE4D6; }
.bz-cita-form {
  background: var(--bz-card);
  border-radius: 18px;
  color: #2E2A25;
  padding: clamp(26px, 3vw, 38px);
}
.bz-form-fields { display: flex; flex-direction: column; gap: 16px; }
.bz-field { display: flex; flex-direction: column; gap: 7px; }
.bz-field label { font-size: 13.5px; font-weight: 700; color: var(--bz-soft); }
.bz-cita-form input,
.bz-cita-form select,
.bz-cita-form textarea {
  width: 100%;
  font-family: inherit;
  font-size: 16px;
  padding: 14px 16px;
  border: 1.5px solid var(--bz-border-strong);
  border-radius: 10px;
  background: #F6F1EA;
  color: #2E2A25;
  box-sizing: border-box;
}
.bz-cita-form textarea { resize: vertical; min-height: 120px; line-height: 1.5; }
.bz-cita-form ::placeholder { font-family: inherit; color: var(--bz-muted); opacity: 1; }
.bz-cita-form input:focus,
.bz-cita-form select:focus,
.bz-cita-form textarea:focus { outline: none; border-color: var(--bz-accent); }
.bz-row { display: flex; gap: 14px; }
.bz-row .bz-field { flex: 1 1 0; min-width: 0; }
@media (max-width: 560px) { .bz-row { flex-direction: column; } }
.bz-cita-form button[type="submit"] {
  width: 100%;
  font-family: inherit;
  cursor: pointer;
  margin-top: 4px;
  background: var(--bz-accent);
  color: #FCFAF6;
  font-weight: 700;
  font-size: 16px;
  padding: 15px;
  border: none;
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(177, 92, 63, 0.24);
}
.bz-form-note { margin: 0; font-size: 12.5px; color: var(--bz-muted); text-align: center; }
.bz-form-ok { text-align: center; padding: 20px 0; }
.bz-form-ok-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(94, 122, 99, 0.14); color: #5E7A63;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; margin: 0 auto 16px;
}
.bz-form-ok h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px; font-weight: 600; margin: 0 0 8px; color: var(--bz-heading);
}
.bz-form-ok p { margin: 0; color: #6B6259; font-size: 16px; }
.bz-form-error {
  margin: 0;
  padding: 12px 15px;
  background: #F7E7E1;
  border: 1px solid #E3B7A7;
  border-radius: 10px;
  color: #9C4E34;
  font-size: 14px;
  font-weight: 600;
}

/* Anclas por debajo de la cabecera fija */
#cita, #contacto, #nosotros, #faq, #definicion { scroll-margin-top: 96px; }

/* --- WPForms con el estilo del tema -------------------------- */
.bz-cita-form--plugin {
  background: var(--bz-card);
  border-radius: 18px;
  padding: clamp(26px, 3vw, 38px);
}
.bz-cita-form--plugin .wpforms-form .wpforms-field { padding: 0 0 16px; }
.bz-cita-form--plugin .wpforms-field-label {
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: var(--bz-soft) !important;
  margin-bottom: 7px !important;
}
.bz-cita-form--plugin .wpforms-form input[type="text"],
.bz-cita-form--plugin .wpforms-form input[type="email"],
.bz-cita-form--plugin .wpforms-form input[type="tel"],
.bz-cita-form--plugin .wpforms-form input[type="date"],
.bz-cita-form--plugin .wpforms-form input[type="number"],
.bz-cita-form--plugin .wpforms-form select,
.bz-cita-form--plugin .wpforms-form textarea {
  width: 100% !important;
  font-family: inherit !important;
  font-size: 16px !important;
  padding: 14px 16px !important;
  border: 1.5px solid var(--bz-border-strong) !important;
  border-radius: 10px !important;
  background: #F6F1EA !important;
  color: #2E2A25 !important;
  box-sizing: border-box !important;
}
.bz-cita-form--plugin .wpforms-form input:focus,
.bz-cita-form--plugin .wpforms-form select:focus,
.bz-cita-form--plugin .wpforms-form textarea:focus {
  outline: none !important;
  border-color: var(--bz-accent) !important;
}
.bz-cita-form--plugin .wpforms-form .wpforms-submit {
  width: 100%;
  font-family: inherit !important;
  cursor: pointer;
  background: var(--bz-accent) !important;
  color: #FCFAF6 !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  padding: 15px !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 24px rgba(177, 92, 63, 0.24) !important;
}
.bz-cita-form--plugin .wpforms-confirmation-container-full {
  background: transparent !important;
  border: none !important;
  color: #2E2A25 !important;
  padding: 10px 0 !important;
}

/* --- Contacto: mapa ----------------------------------------- */
.bz-map iframe { display: block; width: 100%; min-height: 340px; border: 0; border-radius: 18px; }
.bz-map { border-radius: 18px; overflow: hidden; border: 1px solid var(--bz-border-strong); box-shadow: 0 16px 36px rgba(46, 42, 37, 0.08); }

/* --- Pie --------------------------------------------------- */
.bz-footer { background: var(--bz-heading); color: #C6BBA9; }
.bz-footer :where(a, p) { color: #C6BBA9; }
.bz-footer a:hover { color: #EDE4D6; }
.bz-footer .bz-footer-title {
  font-size: 12.5px !important;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bz-muted);
  margin-bottom: 14px !important;
}

/* --- FAQ (details/summary nativo, editable) ----------------- */
.bz-faq { display: flex; flex-direction: column; gap: 12px; }
.bz-faq details {
  background: var(--bz-card);
  border: 1px solid var(--bz-border);
  border-radius: 14px;
  overflow: hidden;
}
.bz-faq summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  font-size: 18px;
  font-weight: 700;
  color: var(--bz-heading);
}
.bz-faq summary::-webkit-details-marker { display: none; }
.bz-faq summary::after {
  content: "+";
  flex: none;
  font-size: 26px;
  font-weight: 400;
  color: var(--bz-accent);
  line-height: 1;
}
.bz-faq details[open] summary::after { content: "–"; }
.bz-faq details p { margin: 0; padding: 0 24px 24px; color: var(--bz-soft); font-size: 16px; line-height: 1.6; }

/* --- Utilidades de texto ------------------------------------ */
.bz-label {
  font-size: 12.5px !important;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bz-muted);
  margin-bottom: 5px !important;
}
.bz-serif { font-family: "Cormorant Garamond", Georgia, serif; }

/* Imágenes de sección con bordes suaves */
.bz-photo img { border-radius: 20px; border: 1px solid var(--bz-border-strong); display: block; width: 100%; height: auto; object-fit: cover; }
.bz-photo--rect img { border-radius: 0; border: none; }

/* Enlaces del contenido sin subrayado por defecto (estilo landing) */
.wp-site-blocks a { text-decoration: none; }
.entry-content a:not(.wp-block-button__link):not(.bz-chip):hover { text-decoration: underline; }

/* --- Botones flotantes WhatsApp / llamada -------------------- */
.bz-floating {
  position: fixed;
  right: clamp(14px, 3vw, 24px);
  bottom: clamp(14px, 3vw, 24px);
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bz-fab {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 8px 22px rgba(36, 31, 26, 0.28);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.bz-fab:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(36, 31, 26, 0.34); }
.bz-fab--wa { background: #25D366; }
.bz-fab--call { background: var(--bz-accent); }
@media (max-width: 600px) {
  .bz-fab { width: 52px; height: 52px; }
}
@media print { .bz-floating { display: none; } }
