:root{
  --kavic-primary:#325d88;
  --kavic-accent:#f69059;
  --kavic-success:#a3ce66;
  --kavic-danger:#e53935;
  --kavic-ink:#0f172a;
  --kavic-muted:#64748b;
  --kavic-bg:#f6f8fb;
  --kavic-bg:#f6f8fb;
  --kavic-card:#ffffff;
  --kavic-shadow:0 10px 30px rgba(15,23,42,.10);
  --kavic-shadow-sm:0 6px 18px rgba(15,23,42,.10);
  --kavic-radius:18px;
}

body{background:var(--kavic-bg); color:var(--kavic-ink);}

/* Bootstrap color tune (lightweight) */
.btn-primary{background:var(--kavic-primary); border-color:var(--kavic-primary);}
.btn-primary:hover{filter:brightness(.95);}
.btn-outline-primary{color:var(--kavic-primary); border-color:rgba(50,93,136,.35);} 
.btn-outline-primary:hover{background:var(--kavic-primary); border-color:var(--kavic-primary);} 
.text-primary{color:var(--kavic-primary)!important;}

/* Layout helpers */
.kv-container{max-width:1140px;}
.kv-card{border-radius:var(--kavic-radius); box-shadow:var(--kavic-shadow-sm); background:var(--kavic-card);} 
.kv-card.hoverlift{transition:transform .18s ease, box-shadow .18s ease;}
.kv-card.hoverlift:hover{transform:translateY(-4px); box-shadow:var(--kavic-shadow);} 
.kv-pill{display:inline-flex; align-items:center; gap:.5rem; padding:.35rem .7rem; border-radius:999px; background:rgba(50,93,136,.08); color:var(--kavic-primary); font-size:.85rem;}

/* Hero */
.kv-hero{
  border-radius:calc(var(--kavic-radius) + 6px);
  background:
    radial-gradient(1200px 500px at 20% 15%, rgba(246,144,89,.22), transparent 60%),
    radial-gradient(900px 500px at 85% 40%, rgba(50,93,136,.22), transparent 55%),
    linear-gradient(135deg, #ffffff, #eef4fb);
  box-shadow:var(--kavic-shadow);
  overflow:hidden;
}
.kv-hero .kv-hero-art{
  background:
    radial-gradient(300px 260px at 65% 30%, rgba(246,144,89,.35), transparent 60%),
    radial-gradient(360px 260px at 40% 70%, rgba(50,93,136,.25), transparent 60%);
  border-left:1px solid rgba(15,23,42,.06);
}

/* Bento */
.kv-bento .kv-tile{border-radius:var(--kavic-radius); background:var(--kavic-card); box-shadow:var(--kavic-shadow-sm); padding:18px; height:100%;}
.kv-bento .kv-tile .kv-ico{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(50,93,136,.10);color:var(--kavic-primary);} 

/* Horizontal scroller for featured */
.kv-scroll{
  display:flex;
  gap:14px;
  overflow:auto;
  padding-bottom:6px;
  scroll-snap-type:x mandatory;
}
.kv-scroll::-webkit-scrollbar{height:8px;}
.kv-scroll::-webkit-scrollbar-thumb{background:rgba(15,23,42,.12); border-radius:999px;}
.kv-snap{scroll-snap-align:start; min-width:280px; max-width:280px;}

/* Sticky mobile CTA */
.kv-sticky-cta{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1030;
  padding:10px 12px;
  background:rgba(246,248,251,.85);
  backdrop-filter: blur(10px);
  border-top:1px solid rgba(15,23,42,.08);
}
.kv-sticky-cta .btn{border-radius:14px; box-shadow:var(--kavic-shadow-sm);} 

/* Category chips */
.kv-chip{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.45rem .8rem;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  text-decoration:none;
  color:var(--kavic-ink);
  transition:transform .15s ease, box-shadow .15s ease;
}
.kv-chip:hover{transform:translateY(-2px); box-shadow:var(--kavic-shadow-sm);}

/* Subtle section heading */
.kv-h{letter-spacing:-.02em;}

/* Make navbar feel premium */
.navbar{backdrop-filter: blur(8px);} 

/* Small screens: give space to sticky CTA */
@media (max-width: 991.98px){
  body{padding-bottom:72px;}
}


/* =========================
   Gallery (inflable_view)
   ========================= */
.kv-gallery-main{
  position:relative;
  display:block;
  width:100%;
  border:0;
  padding:0;
  background:transparent;
  border-radius:calc(var(--kavic-radius) + 6px);
  overflow:hidden;
  box-shadow:var(--kavic-shadow);
  cursor:zoom-in;
}
.kv-gallery-main-img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio: 4 / 3;
  object-fit:cover;
  transition:transform .25s ease;
}
.kv-gallery-main:hover .kv-gallery-main-img{ transform:scale(1.02); }

.kv-gallery-zoom{
  position:absolute;
  right:14px;
  bottom:14px;
  width:42px;height:42px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.85);
  border:1px solid rgba(15,23,42,.10);
  box-shadow:var(--kavic-shadow-sm);
  color:var(--kavic-ink);
}

.kv-gallery-placeholder{
  border-radius:calc(var(--kavic-radius) + 6px);
  aspect-ratio:4/3;
  background:linear-gradient(135deg,#fff,#eef4fb);
  box-shadow:var(--kavic-shadow);
}

/* Thumbs */
.kv-thumbs{
  display:flex;
  gap:10px;
  overflow:auto;
  padding-bottom:6px;
}
.kv-thumbs::-webkit-scrollbar{height:8px;}
.kv-thumbs::-webkit-scrollbar-thumb{background:rgba(15,23,42,.12); border-radius:999px;}

.kv-thumb{
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  border-radius:16px;
  padding:0;
  width:96px;
  min-width:96px;
  height:78px;
  overflow:hidden;
  box-shadow:var(--kavic-shadow-sm);
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.kv-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .2s ease;
}
.kv-thumb:hover{ transform:translateY(-2px); box-shadow:var(--kavic-shadow); }
.kv-thumb:hover img{ transform:scale(1.04); }
.kv-thumb.is-active{ border-color: rgba(50,93,136,.55); }

.kv-thumbs-modal .kv-thumb{
  width:110px; min-width:110px; height:84px;
}

/* Modal stage */
.kv-gallery-modal{
  border-radius:calc(var(--kavic-radius) + 10px);
  overflow:hidden;
  box-shadow:var(--kavic-shadow);
}
.kv-gallery-stage{
  width:100%;
  border-radius:calc(var(--kavic-radius) + 8px);
  overflow:hidden;
  background:#0b1220;
}
.kv-gallery-stage-img{
  width:100%;
  height:auto;
  max-height:70vh;
  object-fit:contain;
  display:block;
  margin:0 auto;
}



/* =========================
   Global Background Cover
   ========================= */

:root{
  /* Ajusta si quieres más/menos oscuridad */
  --kv-bg-dim-strong: rgba(0,0,0,.62);
  --kv-bg-dim-soft:   rgba(0,0,0,.10);

  /* Cambia esta ruta si tuvieras otra */
  --kv-bg-image: url("/assets/images/cover.webp");

  /* Por defecto: arriba oscuro -> abajo normal */
  --kv-bg-top:    var(--kv-bg-dim-strong);
  --kv-bg-bottom: var(--kv-bg-dim-soft);
}

/* Imagen de fondo fija tipo cover */
body{
  background: var(--kavic-bg); /* fallback */
  background-image: var(--kv-bg-image);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

/* Capa de degradado encima del fondo (para legibilidad) */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: linear-gradient(to bottom, var(--kv-bg-top), var(--kv-bg-bottom));
  pointer-events: none;
}

/* Opción A (arriba oscuro -> abajo normal) */
body.kv-bg-topdark{
  --kv-bg-top:    var(--kv-bg-dim-strong);
  --kv-bg-bottom: var(--kv-bg-dim-soft);
}

/* Opción B (abajo oscuro -> arriba normal) */
body.kv-bg-bottomdark{
  --kv-bg-top:    var(--kv-bg-dim-soft);
  --kv-bg-bottom: var(--kv-bg-dim-strong);
}

/* (Opcional) que cards se vean bien sobre fondo */
.kv-card, .card{
  backdrop-filter: blur(2px);
}

/* =========================
   Readability Surface (Glass Panel)
   ========================= */

.kv-surface{
  background: rgba(246, 248, 251, .88);  /* claro con transparencia */
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: calc(var(--kavic-radius) + 10px);
  box-shadow: var(--kavic-shadow);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* padding consistente dentro del panel */
.kv-surface-pad{
  padding: 18px;
}
@media (min-width: 768px){
  .kv-surface-pad{ padding: 26px; }
}

/* Ajuste: texto pequeño ligeramente más contrastado */
.kv-surface .text-muted{
  color: rgba(15,23,42,.62) !important;
}

/* Opcional: que links se vean más claros dentro */
.kv-surface a{
  text-decoration: none;
}
.kv-surface a:hover{
  text-decoration: underline;
}

/* =========================
   Catalog filters (accordion)
   ========================= */

/* Acordeón más premium solo en sidebar filtros */
#kvFilters .accordion-item{
  background: transparent;
}

#kvFilters .accordion-header{
  margin: 0;
}

/* Botón de acordeón con padding y estilo */
#kvFilters .accordion-button{
  padding: 12px 14px !important;   /* tu HTML tiene px-0; esto lo corrige */
  border-radius: 16px !important;
  background: rgba(50,93,136,.10);
  border: 1px solid rgba(15,23,42,.08);
  color: var(--kavic-ink);
  font-weight: 600;
  box-shadow: none;
}

#kvFilters .accordion-button.collapsed{
  background: rgba(255,255,255,.80);
}

#kvFilters .accordion-button:not(.collapsed){
  background: rgba(50,93,136,.14);
  border-color: rgba(50,93,136,.18);
}

#kvFilters .accordion-button:focus{
  box-shadow: 0 0 0 .2rem rgba(50,93,136,.18);
}

/* Cuerpo del acordeón */
#kvFilters .accordion-body{
  padding: 10px 0 6px 0 !important; /* tu HTML trae px-0 pt-0; aquí queda fino */
}

/* Links dentro del acordeón (la clase que faltaba) */
.kv-side-link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.78);
  color: var(--kavic-ink);
  text-decoration: none !important;
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
  margin-bottom: 8px;
}

.kv-side-link:hover{
  background: rgba(50,93,136,.08);
  box-shadow: var(--kavic-shadow-sm);
  transform: translateY(-1px);
}

.kv-side-link:active{
  transform: translateY(0);
}

/* Badge más “chip” */
.kv-side-link .badge{
  border-radius: 999px;
  font-weight: 600;
  border: 1px solid rgba(15,23,42,.08);
}


/* =========================
   NAV night-glass (texto claro)
   ========================= */

:root{
  --kv-nav-text: rgba(255,255,255,.92);   /* gris casi blanco */
  --kv-nav-muted: rgba(255,255,255,.72);
  --kv-nav-border: rgba(255,255,255,.10);
}

/* Navbar glass oscuro */
.kv-navglass{
  background: rgba(8, 12, 20, .58) !important;   /* oscuro translúcido */
  border-bottom: 1px solid var(--kv-nav-border) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.28) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Marca / links */
.kv-navglass .navbar-brand,
.kv-navglass .nav-link,
.kv-navglass .dropdown-toggle{
  color: var(--kv-nav-text) !important;
}

/* Hover + active */
.kv-navglass .nav-link:hover,
.kv-navglass .dropdown-toggle:hover{
  color: #fff !important;
  opacity: .95;
}
.kv-navglass .nav-link.active{
  color: #fff !important;
  font-weight: 700;
}

/* Dropdown menu (oscuro bonito) */
.kv-navglass .dropdown-menu{
  background: rgba(8, 12, 20, .92);
  border: 1px solid var(--kv-nav-border);
  box-shadow: 0 18px 40px rgba(0,0,0,.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.kv-navglass .dropdown-item{
  color: var(--kv-nav-text);
}
.kv-navglass .dropdown-item:hover{
  background: rgba(255,255,255,.08);
  color: #fff;
}
.kv-navglass .dropdown-divider{
  border-top-color: rgba(255,255,255,.12);
}

/* Icono del toggler (hamburguesa) en blanco */
.kv-navglass .navbar-toggler{
  border-color: rgba(255,255,255,.18);
}
.kv-navglass .navbar-toggler-icon{
  filter: invert(1) grayscale(1) brightness(1.8);
}

/* Botón teléfono estilo glass oscuro */
.kv-navglass .kv-btn-glass{
  background: rgba(255,255,255,.10) !important;
  border-color: rgba(255,255,255,.18) !important;
  color: var(--kv-nav-text) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.kv-navglass .kv-btn-glass:hover{
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
}

/* Botones outline-primary dentro del nav (ciudades) para modo oscuro */
.kv-navglass .btn-outline-primary{
  color: var(--kv-nav-text) !important;
  border-color: rgba(255,255,255,.22) !important;
}
.kv-navglass .btn-outline-primary:hover{
  background: rgba(255,255,255,.14) !important;
  color: #fff !important;
}

/* Botón activo (ciudad actual) un poco más brillante */
.kv-navglass .btn-primary{
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
}