:root {
     --bg: #0B0B0D;
     --card: #141418;
     --text: #F5F5F7;
     --muted: #B7B7C2;
     --accent: #C2182B;
     --accent2: #E01E37;
     --border: rgba(255, 255, 255, .08);
}

html,
body {
     background: var(--bg);
     color: var(--text);
}

.navbar,
.card {
     background: var(--card) !important;
     border: 1px solid var(--border);
}

a {
     color: var(--text) !important;
}

.text-muted {
     color: var(--muted) !important;
}

.btn-accent {
     background: var(--accent);
     border-color: var(--accent);
     color: #fff;
}

.btn-accent:hover {
     background: var(--accent2);
     border-color: var(--accent2);
}

.badge-accent {
     background: rgba(194, 24, 43, .18);
     color: #fff;
     border: 1px solid rgba(194, 24, 43, .35);
}

.hero {
     border: 1px solid var(--border);
     background: radial-gradient(ellipse at top, rgba(194, 24, 43, .18), transparent 55%),
          linear-gradient(180deg, rgba(255, 255, 255, .05), transparent 60%);
     border-radius: 20px;
}

.section-title {
     letter-spacing: .5px;
}

.small-help {
     color: var(--muted);
     font-size: .95rem;
}

.navbar-toggler {
     border-color: var(--border);
}

.navbar-toggler-icon {
     filter: invert(1);
}


.fc .fc-button {
     background: var(--card);
     border: 1px solid var(--border);
     color: var(--text);
}

.fc .fc-scrollgrid,
.fc-theme-standard td,
.fc-theme-standard th {
     border-color: var(--border);
}

/* Calendario público: bloques ocupados */
.fc .fc-event {
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  padding: 2px 6px;
}
.fc .fc-event-title { font-weight: 600; }
.fc .fc-event, .fc-event-main { color: #fff; }

/* --- Hero coqueto (home) --- */
.hero-panel{
  background: radial-gradient(1200px 500px at 10% 10%, rgba(255,0,70,.10), transparent 55%),
              radial-gradient(900px 400px at 80% 20%, rgba(255,255,255,.06), transparent 50%),
              rgba(255,255,255,.03);
  border-color: var(--border)!important;
  box-shadow: 0 18px 55px rgba(0,0,0,.35);
  position: relative;
  overflow: hidden;
}
.hero-panel::after{
  content:"";
  position:absolute;
  inset:-2px;
  background: linear-gradient(120deg, rgba(255,0,70,.18), transparent 35%, rgba(255,255,255,.06));
  pointer-events:none;
  opacity:.45;
  mask: radial-gradient(700px 380px at 20% 10%, #000 35%, transparent 70%);
}

.logo-wrap{
  width:68px;height:68px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.25);
  display:flex;align-items:center;justify-content:center;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}
.hero-logo{ width:46px;height:46px; object-fit:contain; }

.tracking{ letter-spacing: .12em; opacity:.9; }

.hero-title{ font-weight: 800; line-height: 1.05; }
.hero-underline{
  width: 92px; height: 4px;
  border-radius: 999px;
  margin-top: 10px;
  background: linear-gradient(90deg, rgba(255,0,70,1), rgba(255,0,70,.2));
  box-shadow: 0 10px 30px rgba(255,0,70,.25);
}

.hero-lead{ max-width: 52ch; opacity:.95; }

.mini-stat{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.20);
  border-radius: 16px;
  padding: 10px 12px;
  height: 100%;
}
.mini-k{ font-size: .78rem; opacity: .75; }
.mini-v{ font-size: .95rem; font-weight: 700; margin-top: 2px; }

.tag-pill{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .78rem;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
}


/* FullCalendar: diferenciar estatus en agendar.php */
/*
.ev-ocupado.fc-event {
   background: rgba(25, 135, 84, .18) !important;
}

.ev-reservado.fc-event {
  background: rgba(7, 123, 255, 0.18) !important;
}

.ev-bloqueo.fc-event {
  background: rgba(69, 94, 122, 0.445) !important;
}
*/


/* Ajustes visuales (dark) para FullCalendar */
.fc { color: var(--text); }
.fc .fc-toolbar-title { font-size: 1.15rem; }
.fc .fc-button { background: var(--card); border: 1px solid var(--border); color: var(--text); }
.fc .fc-button:hover { filter: brightness(1.08); }
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active { background: rgba(194,24,43,.25); border-color: rgba(194,24,43,.55); }
.fc-theme-standard .fc-scrollgrid, .fc-theme-standard td, .fc-theme-standard th { border-color: var(--border); }
.fc .fc-daygrid-day-number, .fc .fc-col-header-cell-cushion { color: var(--text); text-decoration: none; }
.fc .fc-daygrid-event { border-radius: 10px; padding: 2px 6px; border: 1px solid var(--border); }
.fc .fc-timegrid-event { border-radius: 12px; border: 1px solid var(--border); }

/* Estados */
.ev-pendiente, .ev-reservado { background: rgba(135, 7, 255, 0.308) !important; }
.ev-confirmada, .ev-ocupado { background: rgba(25, 135, 84, .18) !important; }
.ev-cancelada   { background: rgba(220, 53, 69, .18) !important; }
.ev-completada { background: rgba(13, 110, 253, .18) !important; }

/* Bloqueos */
 .ev-bloqueo { background: rgba(233, 212, 215, 0.18) !important; border-style: dashed !important; } 


     /* ===== Testimonios: 3 visibles en desktop ===== */
     .testi-wrap {
          position: relative;
     }

     .testi-row {
          display: flex;
          gap: 14px;
          overflow-x: auto;
          scroll-snap-type: x mandatory;
          padding-bottom: 8px;
          -webkit-overflow-scrolling: touch;
          scrollbar-width: none;
     }

     .testi-row::-webkit-scrollbar {
          display: none;
     }

     .testi-card {
          flex: 0 0 auto;
          width: min(360px, 86vw);
          /* mobile */
          background: var(--card);
          border: 1px solid rgba(255, 255, 255, .10);
          border-radius: 16px;
          padding: 14px;
          scroll-snap-align: start;
     }

     @media (min-width: 992px) {

          /* 3 tarjetas visibles: 2 gaps * 14px = 28px */
          .testi-card {
               width: calc((100% - 28px) / 3);
          }
     }

     .testi-img {
          position: relative;
          width: 100%;
          height: 220px;
          border-radius: 14px;
          overflow: hidden;
          border: 1px solid rgba(255, 255, 255, .12);
          margin-bottom: 10px;
          cursor: zoom-in;
     }

     .testi-img img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          display: block;
     }

     .testi-img-count {
          position: absolute;
          right: 10px;
          bottom: 10px;
          font-size: 12px;
          padding: 6px 10px;
          background: rgba(0, 0, 0, .55);
          border: 1px solid rgba(255, 255, 255, .18);
          border-radius: 999px;
     }

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

     .testi-name {
          font-weight: 700;
     }

     .testi-stars {
          letter-spacing: 1px;
          opacity: .9;
     }

     .testi-text {
          color: var(--text);
          opacity: .92;
     }

     .testi-dots {
          display: flex;
          gap: 6px;
          justify-content: center;
          margin-top: 10px;
     }

     .testi-dot {
          width: 8px;
          height: 8px;
          border-radius: 999px;
          background: rgba(255, 255, 255, .25);
     }

     .testi-dot.is-active {
          background: rgba(255, 255, 255, .85);
     }

     /* ===== Lightbox ===== */
     .lb-backdrop {
          position: fixed;
          inset: 0;
          z-index: 9999;
          background: rgba(0, 0, 0, .78);
          display: none;
          align-items: center;
          justify-content: center;
          padding: 18px;
     }

     .lb-backdrop.show {
          display: flex;
     }

     .lb-box {
          width: min(980px, 96vw);
          background: rgba(20, 20, 20, .9);
          border: 1px solid rgba(255, 255, 255, .14);
          border-radius: 16px;
          overflow: hidden;
     }

     .lb-img {
          width: 100%;
          height: min(72vh, 720px);
          display: flex;
          align-items: center;
          justify-content: center;
          background: #000;
     }

     .lb-img img {
          max-width: 100%;
          max-height: 100%;
          object-fit: contain;
          display: block;
     }

     .lb-bar {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 10px 12px;
     }

     .lb-btn {
          border: 1px solid rgba(255, 255, 255, .18);
          background: transparent;
          color: #fff;
          padding: 6px 10px;
          border-radius: 10px;
     }