/*
Theme Name: LaTarima
Theme URI: https://latarima.pe
Author: Wizetup
Author URI: https://wizetup.com
Description: Theme a medida para La Tarima Café Concert (bar retro, karaoke y música en vivo en Miraflores). Desarrollado con las convenciones Wizetup (prefijo wzp-, mobile-first, secciones .wzp-ns-section).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: latarima
*/

:root {
  /* Paleta La Tarima */
  --wzp-page-bg: #F4E7CE;
  --wzp-wine: #2A0C13;
  --wzp-maroon-dark: #33101A;
  --wzp-maroon: #4E1621;
  --wzp-red: #8A2233;
  --wzp-red-hover: #6E1B29;
  --wzp-gold: #C9A876;
  --wzp-gold-light: #D8B888;
  --wzp-cream: #EBD9BC;
  --wzp-cream-soft: #E7D3B2;
  --wzp-card-bg: #FFFDF6;
  --wzp-text: #2A0C13;
  --wzp-text-muted: #6B4A3F;
  --wzp-border: rgba(78, 22, 33, 0.14);
  --wzp-border-soft: rgba(78, 22, 33, 0.12);
  --wzp-white: #ffffff;
  --wzp-whatsapp: #1FA855;

  --wzp-font-display: 'Bebas Neue', sans-serif;
  --wzp-font-script: 'Yellowtail', cursive;
  --wzp-font-body: 'Libre Franklin', -apple-system, BlinkMacSystemFont, sans-serif;

  --wzp-text-base: 1rem;
  --wzp-text-sm: 0.875rem;
  --wzp-text-lg: 1.125rem;
  --wzp-text-h1: clamp(2rem, 5vw, 3.25rem);
  --wzp-text-h2: clamp(1.5rem, 4vw, 2.25rem);
  --wzp-text-h3: clamp(1.25rem, 3vw, 1.75rem);

  --wzp-px: 1.25rem;
  --wzp-max-width: 1110px;
  --wzp-header-h: 90px;
  --wzp-radius: 10px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--wzp-font-body);
  font-size: var(--wzp-text-base);
  color: var(--wzp-text);
  background: var(--wzp-page-bg);
  line-height: 1.55;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--wzp-red);
  text-decoration: none;
}

a:hover {
  color: var(--wzp-red-hover);
}

ul,
ol {
  padding-left: 1.25em;
}

.wzp-screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.wzp-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
  padding: 0.75rem 1.25rem;
  z-index: 1000;
}

.wzp-skip-link:focus {
  left: 1rem;
  top: 1rem;
}

/* Layout — sección base */
.wzp-ns-section {
  padding-top: clamp(1rem, 2vw, 2rem);
  padding-bottom: clamp(2.5rem, 6vw, 5rem);
}

.wzp-ns-section__inner {
  max-width: var(--wzp-max-width);
  margin-inline: auto;
  padding-inline: var(--wzp-px);
}

.wzp-sec-head {
  text-align: center;
  margin-bottom: 1.75rem;
}

.wzp-sec-kick {
  display: block;
  font-family: var(--wzp-font-script);
  color: var(--wzp-red);
  font-size: 1.25rem;
}

.wzp-sec-title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: var(--wzp-text-h2);
  line-height: 0.9;
  margin-top: 0.15rem;
}

@media (min-width: 900px) {
  .wzp-sec-kick {
    font-size: 1.75rem;
  }
  .wzp-sec-title {
    font-size: 4rem;
  }
}

/* Reveal animation */
.wzp-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.wzp-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Utilities */
.is-hidden {
  display: none !important;
}

/* Buttons */
.wzp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 700;
  font-size: var(--wzp-text-sm);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.9rem 1.5rem;
  border-radius: 100px;
  border: 0;
  cursor: pointer;
}

.wzp-btn:hover {
  opacity: 0.92;
}

.wzp-btn--gold {
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
}

.wzp-btn--gold-pill {
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
}

.wzp-btn--maroon {
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
}

.wzp-btn--whatsapp {
  background: var(--wzp-whatsapp);
  color: var(--wzp-white);
}

.wzp-btn--outline {
  background: transparent;
  border: 1.5px solid var(--wzp-maroon);
  color: var(--wzp-maroon);
}

/* ===== Header ===== */
.wzp-site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--wzp-page-bg);
  border-bottom: 1px solid var(--wzp-border);
}

.wzp-site-header__inner {
  margin-inline: auto;
  padding: 0.65rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

@media (min-width: 900px) {
  .wzp-site-header__inner {
    padding: 0.9rem max(40px, calc((100% - 1360px) / 2));
  }
}

.wzp-site-branding__logo,
.wzp-site-branding .custom-logo {
  height: auto;
  width: auto;
  max-width: 160px;
}

.wzp-site-branding .custom-logo-link {
  display: inline-block;
}

@media (min-width: 900px) {
  .wzp-site-branding__logo,
  .wzp-site-branding .custom-logo {
    max-width: 300px;
  }
}

.wzp-desk-nav {
  display: none;
}

@media (min-width: 900px) {
  .wzp-desk-nav {
    display: flex;
    align-items: center;
    gap: 26px;
  }
}

.wzp-desk-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 26px;
}

.wzp-desk-nav__list a {
  color: var(--wzp-maroon);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.wzp-desk-nav__list a:hover {
  color: var(--wzp-red);
}

.wzp-nav-account-link {
  background: none;
  border: none;
  padding: 0;
  color: var(--wzp-maroon);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
}

.wzp-nav-account-link:hover {
  color: var(--wzp-red);
}

.wzp-user-menu {
  position: relative;
}

.wzp-user-menu__toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  padding: 0;
  color: var(--wzp-maroon);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
}

.wzp-user-menu__toggle:hover {
  color: var(--wzp-red);
}

.wzp-user-menu__chevron {
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.wzp-user-menu.is-open .wzp-user-menu__chevron {
  transform: rotate(180deg);
}

.wzp-user-menu__panel {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  min-width: 200px;
  background: var(--wzp-page-bg);
  border: 1px solid var(--wzp-border);
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(51, 16, 26, 0.18);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 40;
}

.wzp-user-menu.is-open .wzp-user-menu__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.wzp-user-menu__link {
  display: block;
  padding: 9px 10px;
  border-radius: 8px;
  color: var(--wzp-text);
  font-size: 13px;
  font-weight: 600;
}

.wzp-user-menu__link:hover {
  background: var(--wzp-cream);
}

.wzp-user-menu__link--danger {
  color: var(--wzp-red);
}

.wzp-header-mobile-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

@media (min-width: 900px) {
  .wzp-header-mobile-actions {
    display: none;
  }
}

.wzp-mobile-user-btn {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--wzp-maroon);
  border: none;
  border-radius: 10px;
  color: var(--wzp-gold-light);
  cursor: pointer;
}

.wzp-user-menu__greeting {
  color: var(--wzp-text-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0;
  padding: 4px 10px 8px;
  border-bottom: 1px solid var(--wzp-border);
  margin-bottom: 4px;
}

.wzp-nav-toggle {
  width: 44px;
  height: 44px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: var(--wzp-maroon);
  border: none;
  border-radius: 10px;
  cursor: pointer;
}

@media (min-width: 900px) {
  .wzp-nav-toggle {
    display: none;
  }
}

.wzp-nav-toggle__bar {
  width: 20px;
  height: 2px;
  background: var(--wzp-gold-light);
  display: block;
}

/* ===== Hero ===== */
.wzp-hero {
  position: relative;
  background: var(--wzp-maroon-dark);
  overflow: hidden;
  padding: 2rem 1.1rem 2rem;
}

@media (min-width: 900px) {
  .wzp-hero {
    padding: 4.5rem max(40px, calc((100% - 1360px) / 2));
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

.wzp-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--wzp-maroon-dark);
}

.wzp-hero__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 70% at 50% 0%, rgba(216, 184, 136, 0.28), transparent 55%),
    linear-gradient(180deg, rgba(51, 16, 26, 0.72), rgba(42, 12, 19, 0.94));
}

.wzp-hero__inner {
  position: relative;
  z-index: 1;
  text-align: center;
}

@media (min-width: 900px) {
  .wzp-hero__inner {
    max-width: 1180px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    align-items: center;
    gap: 3.5rem;
    text-align: left;
  }
}

.wzp-hero__col-left,
.wzp-hero__col-right {
  min-width: 0;
}

.wzp-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 100px;
  animation: wzp-flick 5s infinite;
}

@keyframes wzp-flick {
  0%, 92%, 100% { opacity: 1; }
  94% { opacity: 0.45; }
  96% { opacity: 1; }
  98% { opacity: 0.6; }
}

.wzp-hero__script {
  font-family: var(--wzp-font-script);
  color: var(--wzp-gold-light);
  font-size: 26px;
  line-height: 1;
  margin-top: 18px;
}

@media (min-width: 900px) {
  .wzp-hero__script {
    font-size: 32px;
  }
}

.wzp-hero__title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-page-bg);
  font-size: 74px;
  line-height: 0.86;
  letter-spacing: 0.01em;
  margin-top: 2px;
  text-shadow: 0 2px 22px rgba(0, 0, 0, 0.5);
}

@media (min-width: 900px) {
  .wzp-hero__title {
    font-size: clamp(56px, 6.5vw, 92px);
  }
}

.wzp-hero__lead {
  color: var(--wzp-cream);
  font-size: 15px;
  line-height: 1.5;
  max-width: 300px;
  margin: 14px auto 0;
}

@media (min-width: 900px) {
  .wzp-hero__lead {
    max-width: 520px;
    font-size: 18px;
    margin: 16px 0 0;
  }
}

.wzp-hero__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 16px;
  color: var(--wzp-gold-light);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

@media (min-width: 900px) {
  .wzp-hero__meta {
    font-size: 16px;
    justify-content: flex-start;
  }
}

.wzp-hero__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  margin-top: 22px;
}

@media (min-width: 900px) {
  .wzp-hero__cta {
    align-items: flex-start;
  }
}

.wzp-hero__cta-note {
  color: var(--wzp-gold-light);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.wzp-hero__cta-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 15px 32px;
  border-radius: 12px;
  text-align: center;
}

/* Info strip */
.wzp-info-strip {
  background: var(--wzp-maroon);
  color: var(--wzp-cream-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 9px 12px;
  font-size: 11.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: center;
  flex-wrap: wrap;
}

@media (min-width: 900px) {
  .wzp-info-strip {
    font-size: 14px;
    gap: 22px;
    padding: 14px;
  }
}

.wzp-info-strip__sep {
  opacity: 0.4;
}

/* Filters */
.wzp-filters {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 1rem 0.15rem 0.4rem;
  margin: 0 -1.25rem 1.5rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

@media (min-width: 900px) {
  .wzp-filters {
    justify-content: center;
    overflow: visible;
    margin: 0 0 2rem;
    padding: 0 0 6px;
    flex-wrap: wrap;
  }
}

/* En mobile, se queda fijo debajo del header al hacer scroll */
@media (max-width: 899px) {
  .wzp-filters--sticky {
    position: sticky;
    top: var(--wzp-header-h);
    z-index: 30;
    background: var(--wzp-page-bg);
    box-shadow: 0 6px 10px -6px rgba(42, 12, 19, 0.18);
  }
}

.wzp-filter-chip {
  white-space: nowrap;
  flex-shrink: 0;
  cursor: pointer;
  border: 1.5px solid var(--wzp-border);
  background: transparent;
  color: var(--wzp-maroon);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 9px 16px;
  border-radius: 100px;
  font-family: inherit;
}

.wzp-filter-chip.is-active {
  border-color: var(--wzp-maroon);
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
}

/* Agenda grid */
.wzp-agenda-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 8px;
}

@media (min-width: 900px) {
  .wzp-agenda-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

@media (min-width: 1280px) {
  .wzp-agenda-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* page-agenda.php: 4 columnas desde escritorio estándar (no solo pantallas anchas) */
@media (min-width: 900px) {
  .wzp-agenda-grid--full {
    grid-template-columns: repeat(4, 1fr);
  }
}

.wzp-agenda-card {
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(51, 16, 26, 0.07);
  display: flex;
  flex-direction: column;
}

.wzp-agenda-media {
  position: relative;
  height: 150px;
  background: var(--wzp-maroon-dark);
}

@media (min-width: 900px) {
  .wzp-agenda-media {
    height: 200px;
  }
}

.wzp-agenda-media__date {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--wzp-maroon-dark);
  color: var(--wzp-gold-light);
  border-radius: 10px;
  text-align: center;
  padding: 6px 10px;
  line-height: 1;
}

.wzp-agenda-media__day {
  font-family: var(--wzp-font-display);
  font-size: 20px;
}

.wzp-agenda-media__full-date {
  font-size: 9px;
  letter-spacing: 0.1em;
  margin-top: 2px;
  opacity: 0.85;
}

.wzp-agenda-media__tag {
  position: absolute;
  top: 12px;
  right: 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 9px;
  border-radius: 100px;
}

.wzp-agenda-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.wzp-agenda-body__title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 26px;
  line-height: 0.95;
  letter-spacing: 0.01em;
}

.wzp-agenda-body__desc {
  color: var(--wzp-text-muted);
  font-size: 13.5px;
  line-height: 1.5;
  margin-top: 6px;
  flex: 1;
}

.wzp-agenda-body__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--wzp-border);
}

.wzp-agenda-body__time {
  color: var(--wzp-red);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.wzp-agenda-body__cta {
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 9px 16px;
  border-radius: 100px;
}

/* Promos */
.wzp-promos-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (min-width: 900px) {
  .wzp-promos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.wzp-promo {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-left: 4px solid var(--wzp-gold);
  border-radius: 14px;
  padding: 14px 16px;
}

.wzp-promo__body {
  flex: 1;
}

.wzp-promo__title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 23px;
  line-height: 0.95;
}

.wzp-promo__desc {
  color: var(--wzp-text-muted);
  font-size: 13px;
  line-height: 1.4;
  margin-top: 3px;
}

.wzp-promo__price {
  font-family: var(--wzp-font-display);
  color: var(--wzp-red);
  font-size: 24px;
  white-space: nowrap;
}

.wzp-carta-link {
  display: block;
  text-align: center;
  margin: 16px auto 0;
  max-width: 360px;
}

/* Blog cards (home + index + archive + search) */
.wzp-blog-archive__title {
  font-size: var(--wzp-text-h2);
  margin-bottom: 1.5rem;
}

.wzp-blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
}

@media (min-width: 768px) {
  .wzp-blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .wzp-blog-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.wzp-blog-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--wzp-border-soft);
  border-radius: 16px;
  overflow: hidden;
  background: var(--wzp-card-bg);
  box-shadow: 0 5px 14px rgba(51, 16, 26, 0.06);
}

.wzp-blog-card__img-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--wzp-maroon-dark);
}

.wzp-blog-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wzp-blog-card__img-placeholder {
  aspect-ratio: 16 / 10;
  background: var(--wzp-maroon-dark);
}

.wzp-blog-card__cat {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 9px;
  border-radius: 100px;
}

.wzp-blog-card__body {
  padding: 13px 15px 15px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.wzp-blog-card__title {
  font-size: var(--wzp-text-lg);
  color: var(--wzp-maroon);
  margin: 0 0 0.35rem;
  line-height: 1.25;
}

.wzp-blog-card__title a {
  color: var(--wzp-maroon);
}

.wzp-blog-card__excerpt {
  color: var(--wzp-text-muted);
  font-size: var(--wzp-text-sm);
  flex: 1;
}

.wzp-blog-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
}

.wzp-blog-card__date {
  color: #9A8156;
  font-size: 11px;
  letter-spacing: 0.04em;
}

.wzp-blog-card__link {
  color: var(--wzp-red);
  font-size: 12px;
  font-weight: 700;
}

.wzp-search-empty {
  color: var(--wzp-text-muted);
}

/* Search form */
.wzp-search-form {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 2rem;
}

.wzp-search-form__input {
  flex: 1;
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--wzp-border);
  border-radius: var(--wzp-radius);
  font-family: inherit;
}

.wzp-search-form__submit {
  padding: 0.65rem 1.25rem;
  border: 0;
  border-radius: var(--wzp-radius);
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
  cursor: pointer;
}

/* Pagination */
.wzp-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 2.5rem;
}

.wzp-pagination a,
.wzp-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 0.5rem;
  border: 1px solid var(--wzp-border);
  border-radius: var(--wzp-radius);
  color: var(--wzp-text);
}

.wzp-pagination .current {
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
  border-color: var(--wzp-maroon);
}

/* Carta (page-carta.php) */
.wzp-carta-intro {
  max-width: 720px;
  margin: 0 auto 2rem;
  color: var(--wzp-text-muted);
  text-align: center;
}

.wzp-carta-restricciones {
  max-width: 720px;
  margin: 2rem auto 0;
  padding-top: 1.25rem;
  border-top: 1px dashed var(--wzp-border);
  color: var(--wzp-text-muted);
  font-size: var(--wzp-text-sm);
  text-align: center;
}

.wzp-carta-restricciones p {
  margin: 0 0 0.5rem;
}

.wzp-carta-restricciones p:last-child {
  margin-bottom: 0;
}

.wzp-carta-restricciones a {
  color: var(--wzp-red);
  text-decoration: underline;
}

.wzp-carta-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
}

@media (min-width: 768px) {
  .wzp-carta-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .wzp-carta-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.wzp-carta-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--wzp-border-soft);
  border-radius: 16px;
  overflow: hidden;
  background: var(--wzp-card-bg);
  box-shadow: 0 5px 14px rgba(51, 16, 26, 0.06);
}

.wzp-carta-card__img-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--wzp-maroon-dark);
}

.wzp-carta-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wzp-carta-card__img-placeholder {
  width: 100%;
  height: 100%;
  background: var(--wzp-maroon-dark);
}

.wzp-carta-card__tag {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 9px;
  border-radius: 100px;
}

.wzp-carta-card__body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.wzp-carta-card__title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 24px;
  line-height: 0.95;
  margin: 0.5rem 0;
}

.wzp-carta-card__desc {
  color: var(--wzp-text-muted);
  font-size: var(--wzp-text-sm);
  margin-top: 3px;
  flex: 1;
}

.wzp-carta-card__price {
  font-family: var(--wzp-font-display);
  color: var(--wzp-red);
  font-size: 30px;
  letter-spacing: 0.02em;
  margin-top: 4px;
  padding-top: 6px;
  border-top: 1px dashed var(--wzp-border);
}

/* Karaoke (page-karaoke.php) */
.wzp-karaoke-search {
  max-width: 560px;
  margin: 0 auto 1.5rem;
}

.wzp-karaoke-search__input {
  width: 100%;
  background: var(--wzp-card-bg);
  border: 1.5px solid var(--wzp-border);
  border-radius: 100px;
  padding: 1rem 1.5rem;
  font-size: var(--wzp-text-lg);
  font-family: inherit;
  color: var(--wzp-text);
}

.wzp-karaoke-search__input:focus {
  outline: none;
  border-color: var(--wzp-maroon);
}

.wzp-karaoke-search__input::placeholder {
  color: var(--wzp-text-muted);
}

.wzp-karaoke-results {
  max-width: var(--wzp-max-width);
  margin: 0 auto;
}

.wzp-karaoke-hint {
  color: var(--wzp-text-muted);
  text-align: center;
}

.wzp-karaoke-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

@media (min-width: 768px) {
  .wzp-karaoke-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
}

@media (min-width: 1200px) {
  .wzp-karaoke-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.wzp-karaoke-card {
  position: relative;
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-radius: 14px;
  padding: 1rem 1.1rem;
  padding-right: 3.25rem;
}

.wzp-karaoke-star-btn {
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1.5px solid var(--wzp-border);
  border-radius: 50%;
  color: var(--wzp-border);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.wzp-karaoke-star-btn:hover {
  border-color: var(--wzp-gold);
}

.wzp-karaoke-star-btn.is-active {
  border-color: var(--wzp-gold);
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
}

.wzp-karaoke-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.wzp-karaoke-card__top-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wzp-karaoke-card__id {
  font-family: var(--wzp-font-display);
  color: var(--wzp-red);
  font-size: 30px;
  line-height: 1;
}

.wzp-karaoke-card__idioma {
  color: var(--wzp-text-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.wzp-karaoke-card__cancion {
  color: var(--wzp-maroon);
  font-weight: 700;
  font-size: var(--wzp-text-lg);
  line-height: 1.2;
  margin: 0;
}

.wzp-karaoke-card__cantante {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  background: none;
  border: 0;
  padding: 0;
  margin: 4px 0 0;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  color: var(--wzp-maroon);
  font-weight: 400;
  font-size: calc(var(--wzp-text-lg) - 2px);
  line-height: 1.2;
}

.wzp-karaoke-card__cantante:hover .wzp-karaoke-card__cantante-text {
  text-decoration: underline;
}

.wzp-karaoke-card__cantante-plus {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
}

.wzp-karaoke-card__cantante--static {
  display: block;
  width: auto;
  cursor: default;
}

.wzp-karaoke-artist-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 1rem;
}

.wzp-karaoke-back-btn {
  background: none;
  border: 1.5px solid var(--wzp-border);
  border-radius: 100px;
  padding: 0.5rem 1rem;
  font-family: inherit;
  font-size: var(--wzp-text-sm);
  color: var(--wzp-maroon);
  cursor: pointer;
}

.wzp-karaoke-back-btn:hover {
  background: rgba(78, 22, 33, 0.06);
}

.wzp-karaoke-artist-title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 22px;
  margin: 0;
}

.wzp-karaoke-view-btn {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--wzp-border);
  border-radius: 50%;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.wzp-karaoke-view-btn:hover {
  background: rgba(78, 22, 33, 0.06);
}

.wzp-karaoke-highlight {
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
  padding: 0 2px;
  border-radius: 3px;
}

/* Modal del código de karaoke */
.wzp-karaoke-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(20, 6, 10, 0.6);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.wzp-karaoke-modal-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.wzp-karaoke-modal {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 61;
  width: calc(100% - 2.5rem);
  max-width: 380px;
  background: var(--wzp-card-bg);
  border-radius: 20px;
  padding: 2.5rem 1.75rem 2rem;
  text-align: center;
  transform: translate(-50%, -50%) scale(0.95);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.wzp-karaoke-modal.is-open {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
}

.wzp-karaoke-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: rgba(78, 22, 33, 0.08);
  color: var(--wzp-maroon);
  font-size: 20px;
  cursor: pointer;
}

.wzp-karaoke-modal__hint {
  color: var(--wzp-text-muted);
  font-size: var(--wzp-text-sm);
  margin: 0 0 0.75rem;
}

.wzp-karaoke-modal__code {
  font-family: var(--wzp-font-display);
  color: var(--wzp-red);
  font-size: clamp(64px, 22vw, 88px);
  line-height: 1;
  letter-spacing: 0.02em;
}

.wzp-karaoke-modal__song {
  color: var(--wzp-maroon);
  font-weight: 600;
  margin-top: 0.75rem;
}

/* "Mis favoritos" bar (encima del buscador de karaoke) */
.wzp-karaoke-favorites-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.wzp-karaoke-favorites-btn {
  background: var(--wzp-gold);
  color: var(--wzp-maroon-dark);
  font-weight: 700;
  font-size: var(--wzp-text-sm);
  letter-spacing: 0.03em;
  border: none;
  border-radius: 100px;
  padding: 0.75rem 1.5rem;
  cursor: pointer;
}

.wzp-karaoke-favorites-btn:hover {
  opacity: 0.9;
}

.wzp-karaoke-logout-link {
  display: block;
  width: fit-content;
  margin: 2rem auto 0;
  color: var(--wzp-text-muted);
  font-size: var(--wzp-text-sm);
  text-decoration: underline;
  text-align: center;
}

/* ===== Toast de confirmación (global) ===== */
.wzp-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  z-index: 80;
  transform: translate(-50%, 20px);
  background: var(--wzp-maroon-dark);
  color: var(--wzp-page-bg);
  font-size: var(--wzp-text-sm);
  font-weight: 600;
  padding: 0.85rem 1.5rem;
  border-radius: 100px;
  box-shadow: 0 8px 24px rgba(20, 6, 10, 0.35);
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  max-width: calc(100% - 2.5rem);
  text-align: center;
}

.wzp-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

/* ===== Modal de cuenta (login / registro) — global, footer.php ===== */
.wzp-auth-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(20, 6, 10, 0.6);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.wzp-auth-modal-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.wzp-auth-modal {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 71;
  width: calc(100% - 2.5rem);
  max-width: 380px;
  background: var(--wzp-card-bg);
  border-radius: 20px;
  padding: 2.25rem 1.75rem 1.75rem;
  transform: translate(-50%, -50%) scale(0.95);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.wzp-auth-modal.is-open {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
}

.wzp-auth-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: rgba(78, 22, 33, 0.08);
  color: var(--wzp-maroon);
  font-size: 20px;
  cursor: pointer;
}

.wzp-auth-view.is-hidden {
  display: none;
}

.wzp-auth-view__title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 28px;
  text-align: center;
  margin: 0 0 1.25rem;
}

.wzp-auth-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.wzp-auth-form__input {
  width: 100%;
  background: var(--wzp-page-bg);
  border: 1.5px solid var(--wzp-border);
  border-radius: 10px;
  padding: 0.85rem 1rem;
  font-size: var(--wzp-text-base);
  font-family: inherit;
  color: var(--wzp-text);
}

.wzp-auth-form__input:focus {
  outline: none;
  border-color: var(--wzp-maroon);
}

.wzp-auth-form__input.is-invalid {
  border-color: var(--wzp-red);
}

.wzp-auth-form__submit {
  width: 100%;
  margin-top: 4px;
}

.wzp-auth-error {
  color: var(--wzp-red);
  font-size: var(--wzp-text-sm);
  margin: 0;
  min-height: 1.2em;
}

.wzp-auth-switch {
  text-align: center;
  font-size: var(--wzp-text-sm);
  color: var(--wzp-text-muted);
  margin: 1.25rem 0 0;
}

.wzp-auth-switch__btn {
  background: none;
  border: none;
  padding: 0;
  color: var(--wzp-red);
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  font-size: inherit;
  font-family: inherit;
}

.wzp-auth-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.wzp-auth-form__row {
  display: flex;
  gap: 10px;
}

.wzp-auth-form__row > div {
  flex: 1;
  min-width: 0;
}

.wzp-auth-password {
  position: relative;
}

.wzp-auth-password .wzp-auth-form__input {
  padding-right: 44px;
}

.wzp-auth-password__toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: none;
  border: none;
  padding: 0;
  color: var(--wzp-text-muted);
  cursor: pointer;
}

.wzp-auth-password__toggle .wzp-icon-eye-off {
  display: none;
}

.wzp-auth-password__toggle.is-visible .wzp-icon-eye {
  display: none;
}

.wzp-auth-password__toggle.is-visible .wzp-icon-eye-off {
  display: block;
}

.wzp-auth-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.wzp-auth-checkbox input[type="checkbox"] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--wzp-maroon);
}

.wzp-auth-checkbox label {
  font-size: 12px;
  line-height: 1.45;
  color: var(--wzp-text-muted);
}

.wzp-auth-checkbox label a {
  color: var(--wzp-maroon);
  text-decoration: underline;
}

.wzp-auth-checkbox.is-invalid label {
  color: var(--wzp-red);
}

.wzp-auth-checkbox.is-invalid input[type="checkbox"] {
  outline: 2px solid var(--wzp-red);
  outline-offset: 2px;
}

/* ===== Modal de "Reservar mesa" — global, template-parts/reservar-modal.php ===== */
.wzp-reserva-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(20, 6, 10, 0.6);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.wzp-reserva-modal-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.wzp-reserva-modal {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 71;
  width: calc(100% - 2.5rem);
  max-width: 440px;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--wzp-card-bg);
  border-radius: 20px;
  padding: 2.25rem 1.75rem 1.75rem;
  transform: translate(-50%, -50%) scale(0.95);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.wzp-reserva-modal.is-open {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
}

.wzp-reserva-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: rgba(78, 22, 33, 0.08);
  color: var(--wzp-maroon);
  font-size: 20px;
  cursor: pointer;
}

.wzp-reserva-modal__title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 30px;
  text-align: center;
  margin: 0 0 1.25rem;
}

.wzp-reserva-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.wzp-reserva-field {
  margin-top: 4px;
}

.wzp-reserva-field__label {
  font-size: var(--wzp-text-sm);
  font-weight: 700;
  color: var(--wzp-maroon);
  margin-bottom: 6px;
}

.wzp-reserva-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.wzp-reserva-pill {
  white-space: nowrap;
  cursor: pointer;
  border: 1.5px solid var(--wzp-border);
  background: transparent;
  color: var(--wzp-maroon);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 8px 14px;
  border-radius: 100px;
  font-family: inherit;
}

.wzp-reserva-pill.is-active {
  border-color: var(--wzp-maroon);
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
}

.wzp-reserva-date-input {
  margin-top: 8px;
}

.wzp-reserva-hint {
  color: var(--wzp-text-muted);
  font-size: 12px;
  margin: 6px 0 0;
}

.wzp-reserva-disclaimer {
  color: var(--wzp-text-muted);
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  margin: 0.75rem 0 0;
}

/* Ubicación */
.wzp-map {
  display: block;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--wzp-border);
  position: relative;
  height: 170px;
  background: repeating-linear-gradient(0deg, #E7D8BC, #E7D8BC 22px, #EFE2C7 22px, #EFE2C7 44px),
    repeating-linear-gradient(90deg, rgba(201, 168, 118, 0.5), rgba(201, 168, 118, 0.5) 1px, transparent 1px, transparent 40px);
}

@media (min-width: 900px) {
  .wzp-map {
    height: 400px;
  }
}

.wzp-map__iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.wzp-map__label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(transparent, rgba(51, 16, 26, 0.9));
  padding: 14px;
  color: var(--wzp-page-bg);
  text-decoration: none;
}

.wzp-map__label-title {
  font-weight: 700;
  font-size: 14px;
}

.wzp-map__label-address {
  font-size: 12.5px;
  opacity: 0.85;
  margin-top: 2px;
}

.wzp-actrow {
  display: flex;
  gap: 10px;
  margin-top: 12px;
}

@media (min-width: 900px) {
  .wzp-actrow {
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }
}

.wzp-actrow a {
  flex: 1;
  text-align: center;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  padding: 14px;
  border-radius: 12px;
}

/* FAQ */
.wzp-faqlist {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

@media (min-width: 900px) {
  .wzp-faqlist {
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
  }
}

.wzp-faq-item {
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-radius: 14px;
  overflow: hidden;
}

.wzp-faq-item__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 16px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
}

.wzp-faq-item__q-text {
  color: var(--wzp-maroon);
  font-weight: 600;
  font-size: 14px;
  line-height: 1.35;
}

.wzp-faq-item__sign {
  color: var(--wzp-gold);
  font-size: 22px;
  flex-shrink: 0;
  font-family: var(--wzp-font-display);
}

.wzp-faq-item__panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}

.wzp-faq-item.is-open .wzp-faq-item__panel {
  max-height: 320px;
}

.wzp-faq-item__panel-inner {
  padding: 0 16px 15px;
  color: var(--wzp-text-muted);
  font-size: 13px;
  line-height: 1.55;
}

/* ===== Footer ===== */
.wzp-site-footer {
  background: var(--wzp-wine);
  color: var(--wzp-cream-soft);
  margin-top: 1.25rem;
}

.wzp-site-footer a {
  color: var(--wzp-cream-soft);
}

.wzp-site-footer__inner {
  margin-inline: auto;
  padding: 1.9rem 1.25rem 1.6rem;
}

@media (min-width: 900px) {
  .wzp-site-footer__inner {
    padding: 3.25rem max(40px, calc((100% - 1360px) / 2)) 0;
  }
}

.wzp-footer-grid {
  display: flex;
  flex-direction: column;
}

@media (min-width: 900px) {
  .wzp-footer-grid {
    display: grid;
    /* 1.6fr 1fr 1fr 1.2fr cuando "Explora" y "Guías" vuelvan a estar activas */
    grid-template-columns: 1.6fr 1.2fr;
    gap: 40px;
    align-items: start;
  }
}

.wzp-footer-brand__logo {
  height: 40px;
  width: auto;
  filter: brightness(1.05);
}

.wzp-footer-brand__desc {
  font-size: 13px;
  line-height: 1.55;
  margin-top: 12px;
  color: #C0A987;
}

.wzp-footer-col {
  margin-top: 22px;
}

.wzp-footer-col__title {
  color: var(--wzp-gold);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.wzp-footer-link {
  display: block;
  font-size: 13.5px;
  padding: 5px 0;
}

.wzp-footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.wzp-footer-social__link {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(201, 168, 118, 0.14);
  border: 1px solid rgba(201, 168, 118, 0.3);
  border-radius: 50%;
  color: var(--wzp-cream-soft);
  transition: background 0.2s ease, color 0.2s ease;
}

.wzp-footer-social__link:hover {
  background: rgba(201, 168, 118, 0.28);
  color: var(--wzp-gold-light);
}

.wzp-footer-social__link svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.wzp-site-footer__bottom {
  margin-inline: auto;
  border-top: 1px solid rgba(201, 168, 118, 0.16);
  margin-top: 26px;
  padding: 16px 1.25rem 1.6rem;
  font-size: 11px;
  color: #8F7752;
  line-height: 1.6;
}

@media (min-width: 900px) {
  .wzp-site-footer__bottom {
    padding: 16px max(40px, calc((100% - 1360px) / 2)) 32px;
  }
}

/* Sticky mobile action bar */
.wzp-sticky-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 45;
  display: flex;
  gap: 10px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  background: rgba(244, 231, 206, 0.92);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--wzp-border);
}

@media (min-width: 900px) {
  .wzp-sticky-bar {
    display: none;
  }
}

.wzp-sticky-bar__cta {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 20px;
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 12px;
}

body.wzp-has-sticky-bar {
  padding-bottom: 76px;
}

@media (min-width: 900px) {
  body.wzp-has-sticky-bar {
    padding-bottom: 0;
  }
}

/* Mobile menu drawer */
.wzp-menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(20, 6, 10, 0.55);
  backdrop-filter: blur(2px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.wzp-menu-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.wzp-menu-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 51;
  width: 78%;
  max-width: 320px;
  background: var(--wzp-maroon-dark);
  padding: 22px 22px 30px;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.28s ease;
}

.wzp-menu-drawer.is-open {
  transform: translateX(0);
}

.wzp-menu-drawer__head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: 18px;
}

.wzp-menu-drawer__close {
  width: 40px;
  height: 40px;
  background: rgba(201, 168, 118, 0.14);
  border: none;
  border-radius: 10px;
  color: var(--wzp-gold-light);
  font-size: 20px;
  cursor: pointer;
}

.wzp-menu-drawer__link {
  font-family: var(--wzp-font-display);
  color: var(--wzp-page-bg);
  font-size: 30px;
  letter-spacing: 0.02em;
  padding: 11px 0;
  border-bottom: 1px solid rgba(201, 168, 118, 0.12);
}

button.wzp-menu-drawer__link {
  display: block;
  width: 100%;
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  text-align: left;
  cursor: pointer;
}

.wzp-menu-drawer .wzp-btn {
  margin-top: 20px;
}

/* CTA buttons partial (genérico, reutilizable en single/page) */
.wzp-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.wzp-cta-buttons--stack {
  flex-direction: column;
  align-items: flex-start;
}

.wzp-cta-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.5rem;
  border-radius: var(--wzp-radius);
  font-weight: 600;
  text-decoration: none;
}

.wzp-cta-button--primary {
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
}

.wzp-cta-button--whatsapp {
  background: var(--wzp-whatsapp);
  color: var(--wzp-white);
}

/* Lightbox */
.wzp-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  padding: var(--wzp-px);
}

.wzp-lightbox.is-open {
  display: flex;
}

.wzp-lightbox__img {
  max-width: 100%;
  max-height: 90vh;
  border-radius: var(--wzp-radius);
}

.wzp-lightbox__close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--wzp-white);
  cursor: pointer;
  font-size: 1.25rem;
}

/* Breadcrumbs */
.wzp-breadcrumbs {
  display: none;
  font-size: var(--wzp-text-sm);
  color: var(--wzp-text-muted);
  margin-bottom: 1.5rem;
}

@media (min-width: 900px) {
  .wzp-breadcrumbs {
    display: block;
  }
}

.wzp-breadcrumbs ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.wzp-breadcrumbs li:not(:last-child)::after {
  content: "/";
  margin-left: 0.35rem;
  color: var(--wzp-border);
}

/* Page main wrapper */
.wzp-page-main {
  min-height: 40vh;
}

/* 404 */
.wzp-404 {
  text-align: center;
}

.wzp-404__title {
  font-size: var(--wzp-text-h1);
}

/* Comments */
.wzp-comments {
  margin-top: 3rem;
  border-top: 1px solid var(--wzp-border);
  padding-top: 2rem;
}

.wzp-comment-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wzp-comment {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--wzp-border);
}

.wzp-comment-respond input[type="text"],
.wzp-comment-respond input[type="email"],
.wzp-comment-respond input[type="url"],
.wzp-comment-respond textarea {
  width: 100%;
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--wzp-border);
  border-radius: var(--wzp-radius);
  margin-bottom: 1rem;
  font-family: inherit;
}

.wzp-comment-respond .form-submit input {
  padding: 0.7rem 1.5rem;
  border: 0;
  border-radius: var(--wzp-radius);
  background: var(--wzp-maroon);
  color: var(--wzp-page-bg);
  cursor: pointer;
}

/* ===== Dashboard (Panel de Lealtad) — page-dashboard.php ===== */
.wzp-dashboard-page {
  background: var(--wzp-page-bg);
  min-height: 100vh;
}

.wzp-dashboard-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--wzp-border);
  background: var(--wzp-page-bg);
  position: sticky;
  top: 0;
  z-index: 10;
}

.wzp-dashboard-hdr__logo {
  height: 34px;
  width: auto;
}

.wzp-dashboard-hdr__back {
  color: var(--wzp-maroon);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1.5px solid var(--wzp-maroon);
  padding: 8px 14px;
  border-radius: 100px;
}

.wzp-dashboard-profile {
  padding: 26px 18px 6px;
  text-align: center;
}

.wzp-dashboard-profile__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.wzp-dashboard-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--wzp-maroon);
  color: var(--wzp-gold-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--wzp-font-display);
  font-size: 24px;
  flex-shrink: 0;
}

.wzp-dashboard-profile__tier {
  color: var(--wzp-red);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.wzp-dashboard-profile__name {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 30px;
  line-height: 0.95;
  margin-top: 2px;
}

.wzp-dashboard-stats {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}

.wzp-dashboard-stat {
  flex: 1;
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-radius: 14px;
  padding: 14px 10px;
  text-align: center;
}

.wzp-dashboard-stat__value {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 32px;
  line-height: 1;
}

.wzp-dashboard-stat__value--sm {
  font-size: 20px;
  line-height: 1.15;
  padding-top: 6px;
}

.wzp-dashboard-stat__label {
  color: var(--wzp-text-muted);
  font-size: 11px;
  margin-top: 4px;
  letter-spacing: 0.03em;
}

.wzp-dashboard-stat--points {
  background: var(--wzp-maroon);
}

.wzp-dashboard-stat--points .wzp-dashboard-stat__value {
  color: var(--wzp-gold);
}

.wzp-dashboard-stat--points .wzp-dashboard-stat__label {
  color: var(--wzp-cream-soft);
}

.wzp-dashboard-progress {
  margin-top: 16px;
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-radius: 14px;
  padding: 14px 16px;
  text-align: left;
}

.wzp-dashboard-progress__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12.5px;
  color: var(--wzp-maroon);
  font-weight: 600;
}

.wzp-dashboard-progress__count {
  color: var(--wzp-red);
}

.wzp-dashboard-progress__bar {
  height: 8px;
  background: var(--wzp-border);
  border-radius: 100px;
  margin-top: 8px;
  overflow: hidden;
}

.wzp-dashboard-progress__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--wzp-gold), var(--wzp-red));
  border-radius: 100px;
}

@media (min-width: 900px) {
  .wzp-dashboard-hdr {
    padding: 16px max(40px, calc((100% - 1200px) / 2));
  }
  .wzp-dashboard-hdr__logo {
    height: 44px;
  }
  .wzp-dashboard-profile {
    padding: 36px max(40px, calc((100% - 1200px) / 2)) 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    gap: 24px;
  }
  .wzp-dashboard-profile__main {
    flex-direction: row;
    text-align: left;
  }
  .wzp-dashboard-profile__side {
    display: flex;
    align-items: center;
    gap: 20px;
  }
  .wzp-dashboard-avatar {
    width: 84px;
    height: 84px;
    font-size: 32px;
  }
  .wzp-dashboard-profile__name {
    font-size: 36px;
  }
  .wzp-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    max-width: 380px;
    margin-top: 0;
  }
  .wzp-dashboard-progress {
    max-width: 320px;
    margin-top: 0;
  }
}

.wzp-dashboard-prizes {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (min-width: 900px) {
  .wzp-dashboard-prizes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }
}

@media (min-width: 1280px) {
  .wzp-dashboard-prizes {
    grid-template-columns: repeat(4, 1fr);
  }
}

.wzp-dashboard-prize {
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-radius: 16px;
  padding: 16px;
}

.wzp-dashboard-prize.is-locked {
  opacity: 0.55;
}

.wzp-dashboard-prize__top {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.wzp-dashboard-prize__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--wzp-page-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}

.wzp-dashboard-prize__body {
  flex: 1;
  min-width: 0;
}

.wzp-dashboard-prize__body h3 {
  color: var(--wzp-maroon);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
}

.wzp-dashboard-prize__body p {
  color: var(--wzp-text-muted);
  font-size: 12.5px;
  line-height: 1.4;
  margin-top: 3px;
}

.wzp-dashboard-prize__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--wzp-border);
  gap: 10px;
}

.wzp-dashboard-prize__status {
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.wzp-dashboard-prize__status--claimed {
  color: var(--wzp-text-muted);
}

.wzp-dashboard-prize__status--available {
  color: #1F8A5B;
}

.wzp-dashboard-prize__status--locked {
  color: #9A8156;
}

.wzp-dashboard-promos {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

@media (min-width: 900px) {
  .wzp-dashboard-promos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
}

.wzp-dashboard-promo {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--wzp-maroon-dark);
  border-radius: 14px;
  padding: 14px 16px;
}

.wzp-dashboard-promo__icon {
  font-size: 26px;
}

.wzp-dashboard-promo__body {
  flex: 1;
}

.wzp-dashboard-promo__body h3 {
  color: var(--wzp-page-bg);
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.3;
}

.wzp-dashboard-promo__body p {
  color: var(--wzp-cream-soft);
  font-size: 12px;
  line-height: 1.4;
  margin-top: 2px;
}

.wzp-dashboard-promo__tag {
  color: var(--wzp-gold);
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  text-align: right;
}

.wzp-dashboard-flash {
  margin: 14px 18px 0;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 600;
}

.wzp-dashboard-flash--ok {
  background: rgba(31, 138, 91, 0.12);
  color: #1F8A5B;
  border: 1px solid rgba(31, 138, 91, 0.3);
}

.wzp-dashboard-flash--error {
  background: rgba(138, 34, 51, 0.1);
  color: var(--wzp-red);
  border: 1px solid rgba(138, 34, 51, 0.3);
}

@media (min-width: 900px) {
  .wzp-dashboard-flash {
    margin-left: max(40px, calc((100% - 1200px) / 2));
    margin-right: max(40px, calc((100% - 1200px) / 2));
  }
}

/* ===== Check-in (Replay) — page-checkin.php ===== */
.wzp-checkin-card {
  max-width: 420px;
  margin: 0 auto;
  background: var(--wzp-card-bg);
  border: 1px solid var(--wzp-border-soft);
  border-radius: 18px;
  padding: 32px 24px;
  text-align: center;
}

.wzp-checkin-card--error {
  border-color: rgba(138, 34, 51, 0.3);
}

.wzp-checkin-card__icon {
  font-size: 40px;
  line-height: 1;
  margin-bottom: 14px;
}

.wzp-checkin-card__title {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 28px;
  line-height: 1;
  margin-bottom: 6px;
}

.wzp-checkin-card__msg {
  color: var(--wzp-maroon);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

.wzp-checkin-card__note {
  color: var(--wzp-text-muted);
  font-size: 12.5px;
  line-height: 1.5;
  margin-top: 10px;
}

.wzp-checkin-card__big {
  font-family: var(--wzp-font-display);
  color: var(--wzp-maroon);
  font-size: 40px;
  line-height: 1;
  margin-top: 18px;
}

.wzp-checkin-card__big span {
  display: block;
  font-family: var(--wzp-font-body);
  color: var(--wzp-text-muted);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 2px;
}

.wzp-checkin-card__progress {
  margin-top: 18px;
}

.wzp-checkin-card__progress-bar {
  height: 8px;
  background: var(--wzp-border);
  border-radius: 100px;
  overflow: hidden;
}

.wzp-checkin-card__progress-bar div {
  height: 100%;
  background: linear-gradient(90deg, var(--wzp-gold), var(--wzp-red));
  border-radius: 100px;
}

.wzp-checkin-card #wzp-checkin-confirm-btn,
.wzp-checkin-card > .wzp-btn {
  margin-top: 20px;
}

.wzp-checkin-card__error {
  color: var(--wzp-red);
  font-size: 13px;
  font-weight: 600;
  margin-top: 10px;
  min-height: 1.2em;
}
