/* =====================================================================
   Banner y panel de cookies (lógica en js/consent.js).
   Adaptado del sitio Realty a la paleta de css/theme.css.
   Los tres botones pesan lo mismo: rechazar es tan fácil como aceptar (AEPD).
   ===================================================================== */
.cr-consent-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
  background: var(--cacao-satin); background-image: var(--satin-dark-bg); color: var(--text-on-dark-soft);
  border-top: var(--hairline) solid var(--rose-gold);
  box-shadow: 0 -8px 32px rgba(58,46,43,.25);
  font-family: var(--font-body); font-weight: var(--fw-body);
}
.cr-consent-banner__inner {
  max-width: calc(var(--container) + 2 * var(--gutter)); margin: 0 auto; padding: var(--space-sm) var(--gutter);
  display: flex; align-items: center; gap: var(--space-md);
}
.cr-consent-banner__text { flex: 1 1 auto; min-width: 0; }
.cr-consent-banner__title { font-family: var(--font-display); font-size: 1.375rem; color: var(--text-on-dark); margin: 0 0 4px; }
.cr-consent-banner__text p { font-size: var(--fs-small); line-height: 1.55; margin: 0; }
.cr-consent-banner__text a { color: var(--text-on-dark); }
.cr-consent-banner__short { display: none; }
.cr-consent-banner__actions { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-xs); }

.cr-consent-btn {
  appearance: none; background: transparent; color: var(--text-on-dark);
  border: var(--hairline) solid var(--rose-gold); border-radius: var(--radius);
  font-family: var(--font-body); font-size: var(--fs-label); font-weight: var(--fw-body-strong); letter-spacing: .16em; text-transform: uppercase; line-height: 1.25;
  min-height: 44px; padding: var(--space-xs) var(--space-sm); cursor: pointer; text-align: center;
  transition: background-color var(--t-fast), color var(--t-fast);
}
.cr-consent-btn:hover { background: var(--text-on-dark); color: var(--text); }
.cr-consent-btn:focus-visible, .cr-consent-close:focus-visible, .cr-switch:focus-visible { outline: 1px solid var(--text-on-dark); outline-offset: 2px; }

body.cr-banner-open { padding-bottom: var(--cr-banner-h, 0px); }

html.cr-consent-lock { overflow: hidden; }
.cr-consent-overlay {
  position: fixed; inset: 0; z-index: 1000; background: rgba(58,46,43,.55);
  display: flex; align-items: center; justify-content: center; padding: var(--space-sm);
}
.cr-consent-panel {
  position: relative; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto;
  background: var(--satin-light); color: var(--text-soft); border: var(--hairline) solid var(--rose-gold);
  padding: var(--space-lg) var(--space-md) var(--space-md); font-family: var(--font-body); outline: none;
}
.cr-consent-panel__title { font-family: var(--font-display); font-size: 1.75rem; font-weight: var(--fw-display); color: var(--text); margin: 0 40px var(--space-xs) 0; }
.cr-consent-panel__intro { font-size: var(--fs-small); line-height: 1.6; margin: 0 0 var(--space-sm); }
.cr-consent-close { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; background: transparent; border: 0; color: var(--text-soft); font-size: 26px; line-height: 1; cursor: pointer; }
.cr-consent-close:hover { color: var(--text); }
.cr-consent-cats { list-style: none; margin: 0 0 var(--space-md); padding: 0; }
.cr-consent-cat { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-sm); padding: var(--space-sm) 0; border-top: var(--hairline) solid var(--line-soft); }
.cr-consent-cat:last-child { border-bottom: var(--hairline) solid var(--line-soft); }
.cr-consent-cat__text { min-width: 0; }
.cr-consent-cat__name { display: block; font-size: 1rem; font-weight: var(--fw-body-strong); color: var(--text); margin: 0 0 4px; cursor: pointer; }
.cr-consent-cat__desc { font-size: var(--fs-small); line-height: 1.55; margin: 0; }
.cr-consent-cat__ctl { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.cr-consent-cat__always { font-size: .625rem; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.cr-consent-panel__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-xs); }
.cr-consent-panel .cr-consent-btn { color: var(--text); }
.cr-consent-panel .cr-consent-btn:hover { background: var(--btn-primary-bg); color: var(--btn-primary-text); }

.cr-switch {
  appearance: none; -webkit-appearance: none; position: relative; flex-shrink: 0;
  width: 44px; height: 24px; margin: 0; border-radius: 12px; cursor: pointer;
  background: var(--satin-shadow); border: var(--hairline) solid var(--rose-gold); transition: background-color var(--t-fast);
}
.cr-switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--text-on-dark); transition: transform var(--t-fast); }
.cr-switch:checked { background: var(--btn-primary-bg); }
.cr-switch:checked::after { transform: translateX(20px); }
.cr-switch:disabled { cursor: not-allowed; opacity: .6; }

.cr-embed-placeholder { border: var(--hairline) dashed var(--rose-gold); padding: var(--space-md) var(--space-sm); text-align: center; }

@media (max-width: 900px) {
  .cr-consent-banner__inner { flex-direction: column; align-items: stretch; gap: var(--space-sm); padding: var(--space-sm) var(--gutter); }
}
@media (max-width: 520px) {
  .cr-consent-banner__inner { gap: var(--space-xs); }
  .cr-consent-banner__title, .cr-consent-banner__long { display: none; }
  .cr-consent-banner__short { display: inline; }
  .cr-consent-btn { padding: 6px; letter-spacing: .08em; }
  .cr-consent-panel__actions { grid-template-columns: 1fr; }
}
@media (max-width: 399px) {
  .cr-consent-btn { padding: 4px; letter-spacing: .03em; }
}
