/* ============================================================
   Encapsulando — Child theme of Hummingbird
   Design tokens + sidebar + hero
   ============================================================ */

/* --- Design tokens -------------------------------------------------------- */
:root {
  /* Original tokens del diseño */
  --bg:        #FFFFFF;
  --paper:     #FAFBFB;
  --ink:       #1F2937;
  --ink-soft:  #4B5563;
  --muted:     #9CA3AF;
  --line:      #E5E7EB;
  --line-soft: #F1F2F4;

  --mint:      #1DC3C4;
  --mint-2:    #18AFB0;
  --mint-tint: #D6F5F5;
  --mint-soft: #E8FBFB;
  --mint-air:  #F0FCFC;

  /* Aliases nuestros (compatibilidad con CSS previo) */
  --enc-mint:        #1DC3C4;
  --enc-mint-dark:   #18AFB0;
  --enc-mint-light:  #E8FBFB;
  --enc-mint-soft:   #F0FCFC;
  --enc-ink:         #1F2937;
  --enc-ink-soft:    #4B5563;
  --enc-muted:       #9CA3AF;
  --enc-line:        #E5E7EB;
  --enc-surface:     #FFFFFF;
  --enc-bg:          #FAFBFB;
  --enc-dark:        #0F172A;
  --enc-warn:        #F59E0B;

  --enc-font-display: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --enc-font-mono:    'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;

  --enc-sidebar-w:   300px;
  --enc-radius-sm:   6px;
  --enc-radius:      12px;
  --enc-radius-lg:   20px;

  --bs-primary:        #1DC3C4;
  --bs-primary-rgb:    29,195,196;
  --bs-link-color:     #1DC3C4;
  --bs-link-hover-color: #16A8A9;
}

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200;300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

/* --- Base ----------------------------------------------------------------- */
body {
  font-family: var(--enc-font-display);
  color: var(--enc-ink);
  background: var(--enc-surface);
  -webkit-font-smoothing: antialiased;
  padding-left: var(--enc-sidebar-w);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--enc-font-display);
  font-weight: 200;
  letter-spacing: -0.02em;
  color: var(--enc-ink);
}

.enc-display {
  font-weight: 200;
  font-size: clamp(2.5rem, 6vw, 6rem);
  line-height: 1.0;
  letter-spacing: -0.04em;
}

.enc-mono {
  font-family: var(--enc-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
}

/* --- Hide default Hummingbird header (for now) --------------------------- */
.header-top,
.header-bottom,
.header__banner,
header#header {
  display: none !important;
}
/* --- Sidebar (CSS original del diseño) ----------------------------------- */
.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--enc-sidebar-w);
  height: 100vh;
  border-right: 1px solid var(--line);
  background: var(--bg);
  padding: 28px 28px 24px;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  z-index: 1000;
}
.sidebar::-webkit-scrollbar { width: 4px; }
.sidebar::-webkit-scrollbar-thumb { background: var(--line); border-radius: 2px; }

.side-top {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 32px;
  font-weight: 500;
}
.side-top:hover { color: var(--ink); }

.side-cart {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin: 24px 0 18px;
  font-size: 13px; letter-spacing: 0.08em;
  text-transform: uppercase; font-weight: 600;
  color: var(--ink-soft);
  cursor: pointer;
}
.side-cart .bag {
  width: 36px; height: 36px; border-radius: 999px;
  background: var(--mint-soft); color: var(--mint);
  display: grid; place-items: center;
  transition: background .2s, color .2s;
}
.side-cart:hover .bag { background: var(--mint); color: #fff; }

.side-search {
  position: relative;
  margin-bottom: 28px;
}
.side-search input {
  width: 100%; height: 40px; padding: 0 36px 0 4px;
  border: 0; border-bottom: 1px solid var(--line);
  background: transparent; font-family: inherit; font-size: 14px;
  color: var(--ink); outline: none;
  transition: border-color .2s;
}
.side-search input::placeholder { color: var(--muted); font-weight: 300; }
.side-search input:focus { border-color: var(--mint); }
.side-search svg {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  color: var(--mint); pointer-events: none;
}

.side-nav {
  display: flex; flex-direction: column;
  padding: 4px 0;
}
.side-nav a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 4px;
  font-size: 13px; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-soft);
  border-bottom: 1px solid var(--line-soft);
  transition: color .2s, padding-left .2s;
  position: relative;
  text-decoration: none;
}
.side-nav a::before {
  content: '';
  position: absolute; left: -4px; top: 50%; transform: translateY(-50%);
  width: 0; height: 2px; background: var(--mint);
  transition: width .2s;
}
.side-nav a:hover {
  color: var(--ink);
  padding-left: 14px;
}
.side-nav a:hover::before { width: 8px; }
.side-nav a .chev {
  color: var(--mint); opacity: 0; transform: translateX(-6px);
  transition: opacity .2s, transform .2s;
  display: inline-flex;
}
.side-nav a:hover .chev { opacity: 1; transform: translateX(0); }

.side-foot {
  margin-top: auto;
  padding-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.side-foot .lang {
  display: flex; gap: 8px;
  font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase; font-weight: 600;
  color: var(--muted);
}
.side-foot .lang a.active { color: var(--mint); }
.side-foot .social {
  display: flex; gap: 8px;
}
.side-foot .social a {
  width: 32px; height: 32px; border-radius: 999px;
  border: 1px solid var(--line);
  display: grid; place-items: center;
  font-size: 10px; font-weight: 700; letter-spacing: 0.05em;
  color: var(--ink-soft); transition: all .2s;
}
.side-foot .social a:hover {
  background: var(--mint); color: #fff; border-color: var(--mint);
}



/* --- Hero ---------------------------------------------------------------- */
.enc-hero {
  position: relative;
  min-height: 100vh;
  padding: 15px 60px 40px;
  overflow: hidden;
  background: var(--enc-surface);
}

.enc-hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.enc-hero__bg-mint {
  position: absolute;
  top: 0;
  right: 0;
  width: 60%;
  height: 100%;
  background: var(--enc-mint);
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%);
}

.enc-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0;
}

.enc-hero__tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: white;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--enc-line);
  margin-bottom: 32px;
  color: var(--enc-ink);
  font-weight: 600;
}
.enc-hero__tag-dot {
  width: 8px;
  height: 8px;
  background: var(--enc-mint);
  border-radius: 50%;
}

.enc-hero__title {
  margin: 0 0 24px;
  color: var(--enc-ink);
  font-size: clamp(2rem, 3.5vw, 3.25rem);
  line-height: 1.05;
  max-width: 100%;
}
.enc-hero__title-accent {
  color: var(--enc-ink);
  display: inline-block;
  font-weight: 300;
}

.enc-hero__subtitle {
  font-size: 18px;
  line-height: 1.5;
  color: var(--enc-ink-soft);
  max-width: 50ch;
  margin: 0 0 48px;
  font-weight: 300;
}

.enc-hero__slider {
  position: relative;
  background: white;
  border: 1px solid var(--enc-line);
  border-radius: var(--enc-radius);
  padding: 28px 32px;
  max-width: 580px;
  box-shadow: 0 20px 60px -20px rgba(15, 23, 42, 0.15);
  display: grid;
  grid-template-columns: 1fr 120px;
  gap: 24px;
  align-items: center;
}

.enc-hero__slides {
  position: relative;
  min-height: 160px;
  grid-column: 1;
}

.enc-hero__slider::after {
  content: '';
  grid-column: 2;
  grid-row: 1;
  width: 120px;
  height: 120px;
  background: var(--enc-mint-light);
  border-radius: var(--enc-radius);
  position: relative;
  background-image:
    radial-gradient(circle at 30% 30%, var(--enc-mint) 0%, transparent 50%),
    radial-gradient(circle at 70% 70%, var(--enc-mint-dark) 0%, transparent 50%);
  opacity: 0.7;
}

.enc-hero__dots {
  grid-column: 1 / -1;
}
.enc-hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.5s, transform 0.5s;
  pointer-events: none;
}
.enc-hero__slide.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  position: relative;
}

.enc-hero__slide-eyebrow {
  color: var(--enc-mint);
  margin-bottom: 12px;
}
.enc-hero__slide-title {
  font-size: 36px;
  font-weight: 300;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
  color: var(--enc-ink);
}
.enc-hero__slide-text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--enc-ink-soft);
  margin: 0 0 20px;
  font-weight: 300;
}
.enc-hero__slide-cta {
  color: var(--enc-ink);
  font-weight: 600;
  text-decoration: none;
  font-size: 14px;
  border-bottom: 2px solid var(--enc-mint);
  padding-bottom: 2px;
  display: inline-block;
  transition: color 0.2s;
}
.enc-hero__slide-cta:hover {
  color: var(--enc-mint);
}

.enc-hero__dots {
  display: flex;
  gap: 6px;
  margin-top: 24px;
}
.enc-hero__dot {
  width: 24px;
  height: 4px;
  background: var(--enc-line);
  border: none;
  border-radius: 2px;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s;
}
.enc-hero__dot.is-active {
  background: var(--enc-mint);
}

.enc-hero__floats {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 35%;
  pointer-events: none;
  z-index: 2;
}
.enc-hero__float {
  position: absolute;
  background: white;
  padding: 12px 16px;
  border-radius: var(--enc-radius-sm);
  box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.2);
  display: flex;
  flex-direction: column;
  gap: 2px;
  pointer-events: auto;
}
.enc-hero__float--1 {
  top: 18%;
  right: 8%;
}
.enc-hero__float--2 {
  bottom: 12%;
  right: 6%;
}
.enc-hero__float-label {
  color: var(--enc-mint);
  font-weight: 600;
}
.enc-hero__float-value {
  color: var(--enc-muted);
  font-size: 10px;
}

/* Imagen del producto que rota con los slides */
.enc-hero__media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 60%;                    /* mismo ancho que .enc-hero__bg-mint */
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.enc-hero__media-img {
  position: absolute;
  max-width: 90%;
  max-height: 90%;
  width: auto;
  height: auto;
  object-fit: contain;
  opacity: 0;
  transform: translateY(12px) scale(.98);
  transition: opacity .5s ease, transform .6s ease;
  filter: drop-shadow(0 24px 40px rgba(0, 60, 70, .25));
}

.enc-hero__media-img.is-active {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* En mobile, ocultá las imágenes del hero porque no hay espacio */
@media (max-width: 900px) {
  .enc-hero__media {
    display: none;
  }
}

/* --- Grid de categorías --------------------------------------------------- */
.cats {
  padding: 72px clamp(28px, 4vw, 56px);
}

.cats__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 40px;
  gap: 32px;
  flex-wrap: wrap;
}
.cats__eyebrow {
  color: var(--mint);
  margin-bottom: 14px;
}
.cats__title {
  font-size: clamp(40px, 5vw, 72px);
  margin: 0;
  color: var(--ink);
}
.cats__cta {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  transition: all 0.2s;
}
.cats__cta:hover {
  background: var(--mint);
  border-color: var(--mint);
  color: white;
}

.cats__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}

.cats__card {
  position: relative;
  background: white;
  padding: 40px 36px;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: background 0.25s, color 0.25s;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}
.cats__card:hover {
  background: var(--mint-air);
}

.cats__card-top {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
.cats__num {
  color: var(--mint);
}

.cats__card-pattern {
  position: absolute;
  right: -2%;
  top: 20%;
  width: 220px;
  height: 140px;
  background-image: repeating-linear-gradient(135deg,
    rgba(29,195,196,0.18) 0 6px,
    transparent 6px 12px);
  border-radius: 8px;
  opacity: 0.5;
  pointer-events: none;
}

.cats__card-body {
  position: relative;
  z-index: 1;
}
.cats__card-title {
  font-size: clamp(34px, 3.6vw, 52px);
  margin: 0 0 8px;
  font-weight: 200;
  color: var(--ink);
  line-height: 1;
}
.cats__card-sub {
  font-size: 13px;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.cats__card-arrow {
  position: absolute;
  bottom: 32px;
  right: 36px;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: var(--mint);
  color: white;
  display: grid;
  place-items: center;
  z-index: 2;
  transition: transform 0.2s;
}
.cats__card:hover .cats__card-arrow {
  transform: translateX(4px);
}

/* --- Productos destacados ------------------------------------------------ */
.prods {
  padding: 72px clamp(28px, 4vw, 56px);
  background: var(--paper);
}

.prods__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 40px;
  gap: 32px;
  flex-wrap: wrap;
}
.prods__eyebrow {
  color: var(--mint);
  margin-bottom: 14px;
}
.prods__title {
  font-size: clamp(40px, 5vw, 64px);
  margin: 0;
  color: var(--ink);
}

/* Pills */
.prods__filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.prods__filter {
  padding: 9px 16px;
  border: 1px solid var(--line);
  background: white;
  border-radius: 999px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  cursor: pointer;
  transition: all 0.2s;
}
.prods__filter:hover {
  border-color: var(--mint);
  color: var(--mint);
}
.prods__filter.is-active {
  background: var(--ink);
  border-color: var(--ink);
  color: white;
}

/* Grid */
.prods__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.prods__card {
  display: flex;
  flex-direction: column;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.prods__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -20px rgba(15, 23, 42, 0.15);
  border-color: var(--mint);
  color: inherit;
}

.prods__card-media {
  aspect-ratio: 1 / 1;
  background: var(--mint-air);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.prods__card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 16px;
}
.prods__card-placeholder {
  width: 60%;
  height: 60%;
  background-image: repeating-linear-gradient(135deg,
    rgba(29,195,196,0.18) 0 6px,
    transparent 6px 12px);
  border-radius: 8px;
}

.prods__card-body {
  padding: 20px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
}
.prods__card-name {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--ink);
  margin: 0;
  min-height: 2.7em;
}
.prods__card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
}
.prods__card-price {
  font-size: 18px;
  font-weight: 600;
  color: var(--ink);
}
.prods__card-arrow {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--mint-soft);
  color: var(--mint);
  display: grid;
  place-items: center;
  font-size: 14px;
  transition: background 0.2s, color 0.2s;
}
.prods__card:hover .prods__card-arrow {
  background: var(--mint);
  color: white;
}

/* --- Footer -------------------------------------------------------------- */
.enc-foot {
  background: var(--enc-dark);
  color: #CBD5E1;
  padding: 80px clamp(28px, 4vw, 56px) 24px;
  margin-top: 80px;
}

.enc-foot__inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 48px;
  max-width: 1400px;
  margin: 0 auto;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Columna marca */
.enc-foot__brand {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.enc-foot__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.enc-foot__brand-name {
  font-size: 26px;
  font-weight: 300;
  color: #F1F5F9;
  letter-spacing: -0.01em;
}
.enc-foot__tagline {
  font-size: 14px;
  line-height: 1.6;
  color: #94A3B8;
  font-weight: 300;
  margin: 0;
  max-width: 30ch;
}

/* Títulos de columna */
.enc-foot__title {
  font-family: var(--enc-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--mint);
  margin: 0 0 20px;
}

/* Listas */
.enc-foot__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.enc-foot__list a {
  color: #CBD5E1;
  text-decoration: none;
  font-size: 14px;
  font-weight: 300;
  transition: color 0.2s, padding-left 0.2s;
}
.enc-foot__list a:hover {
  color: var(--mint);
  padding-left: 4px;
}

/* Contacto */
.enc-foot__contact {
  font-style: normal;
  font-size: 14px;
  line-height: 1.7;
  color: #CBD5E1;
  font-weight: 300;
}
.enc-foot__contact a {
  color: #CBD5E1;
  text-decoration: none;
  transition: color 0.2s;
}
.enc-foot__contact a:hover {
  color: var(--mint);
}

/* Bottom strip */
.enc-foot__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1400px;
  margin: 0 auto;
  padding-top: 24px;
  gap: 24px;
  flex-wrap: wrap;
}
.enc-foot__copy {
  font-size: 12px;
  color: #64748B;
  font-weight: 300;
}

/* --- WhatsApp FAB a la derecha ------------------------------------------- */
/* El módulo whatsappchatblock lo posiciona a la izquierda con .float-bottom-left.
   Lo movemos a la derecha sin tocar el módulo. */
a.float.float-bottom-left {
  left: auto !important;
  right: 24px !important;
  bottom: 24px !important;
}

/* --- Ocultar loader global de Hummingbird ------------------------------- */
.page-loader,
.js-page-loader {
  display: none !important;
}

/* --- Página de categoría -------------------------------------------------- */
.enc-cat {
  padding: 32px 0 80px;
}
.enc-cat > .enc-cat__crumbs,
.enc-cat > .enc-cat__filters,
.enc-cat > .enc-cat__grid,
.enc-cat > .enc-cat__pager,
.enc-cat > .enc-cat__empty {
  padding-left: clamp(40px, 5vw, 72px);
  padding-right: clamp(40px, 5vw, 72px);
}

/* Breadcrumb */
.enc-cat__crumbs {
  font-family: var(--enc-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--enc-muted);
  margin-bottom: 28px;
}
.enc-cat__crumbs a {
  color: var(--enc-muted);
  text-decoration: none;
  transition: color 0.2s;
}
.enc-cat__crumbs a:hover { color: var(--mint); }
.enc-cat__sep { margin: 0 8px; color: var(--enc-line); }
.enc-cat__current { color: var(--enc-ink); }

/* Hero con split diagonal */
.enc-cat__hero {
  position: relative;
  background: var(--mint-soft);
  clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
  margin-bottom: 0;
  overflow: hidden;
}
.enc-cat__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  clip-path: polygon(62% 0, 100% 0, 100% 100%, 50% 100%);
  opacity: 0.55;
}
.enc-cat__hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 40px;
  align-items: center;
  padding: 56px clamp(40px, 5vw, 72px) 72px;
}
.enc-cat__hero-text { max-width: 560px; }
.enc-cat__eyebrow {
  color: var(--enc-ink-soft);
  margin-bottom: 16px;
}
.enc-cat__title {
  font-size: clamp(44px, 6vw, 80px);
  margin: 0 0 20px;
  color: var(--enc-ink);
  line-height: 1.02;
  letter-spacing: -0.02em;
}
.enc-cat__desc {
  font-size: 16px;
  line-height: 1.7;
  color: var(--enc-ink-soft);
  font-weight: 300;
  max-width: 460px;
}
.enc-cat__desc p { margin: 0 0 10px; }

/* Stats */
.enc-cat__stats {
  display: flex;
  gap: 40px;
  margin-top: 32px;
}
.enc-cat__stat { display: flex; flex-direction: column; gap: 4px; }
.enc-cat__stat-num {
  font-size: 38px;
  font-weight: 300;
  color: var(--enc-ink);
  line-height: 1;
}
.enc-cat__stat-label {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--enc-muted);
}

/* Media (placeholder foto + float) */
.enc-cat__hero-media { position: relative; }
.enc-cat__hero-photo {
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  background-image: repeating-linear-gradient(135deg,
    rgba(29,195,196,0.10) 0 8px, transparent 8px 16px);
  display: grid;
  place-items: center;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--enc-muted);
}
.enc-cat__hero-float {
  position: absolute;
  top: 18%;
  left: -28px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  padding: 10px 18px;
  border-radius: 999px;
  box-shadow: 0 12px 30px -12px rgba(15,23,42,0.25);
  font-size: 13px;
  font-weight: 500;
  color: var(--enc-ink);
  white-space: nowrap;
}
.enc-cat__hero-check {
  display: grid;
  place-items: center;
  width: 20px; height: 20px;
  border-radius: 999px;
  background: var(--mint);
  color: #fff;
  font-size: 11px;
}

/* Filtros tabs */
.enc-cat__filters {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  margin: 0 0 40px;
  padding-top: 24px;
  padding-bottom: 0;
  border-bottom: 1px solid var(--enc-line);
}
.enc-cat__filter {
  padding: 0 0 16px;
  font-family: var(--enc-font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--enc-muted);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color 0.2s, border-color 0.2s;
}
.enc-cat__filter:hover { color: var(--enc-ink); }
.enc-cat__filter.is-active {
  color: var(--enc-ink);
  border-bottom-color: var(--mint);
}

/* Grid de 4 columnas */
.enc-cat__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}

/* Paginación */
.enc-cat__pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  padding-top: 32px;
  border-top: 1px solid var(--enc-line);
}
.enc-cat__pager-link {
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--enc-line);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--enc-ink);
  text-decoration: none;
  transition: all 0.2s;
}
.enc-cat__pager-link:hover {
  border-color: var(--mint);
  color: var(--mint);
}
.enc-cat__pager-link.is-current {
  background: var(--enc-ink);
  border-color: var(--enc-ink);
  color: white;
}
.enc-cat__pager-prev,
.enc-cat__pager-next {
  font-family: var(--enc-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.enc-cat__pager-spacer {
  padding: 0 8px;
  color: var(--enc-muted);
}

/* Empty state */
.enc-cat__empty {
  padding: 80px 0;
  text-align: center;
  color: var(--enc-muted);
  font-weight: 300;
  font-size: 16px;
}

/* --- Cards de categoría: extras (eyebrow, link interno, botón agregar) --- */
.prods__card-link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.prods__card-link:hover {
  color: inherit;
}
.prods__card-eyebrow {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mint-2);
  font-weight: 600;
}
.prods__card-add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s;
}
.prods__card-add:hover {
  background: var(--mint-2);
  color: #fff;
}

/* ===================== ÁREA DE PROYECTOS (CMS 13) ===================== */
.enc-proy {
  --proy-pad: clamp(40px, 5vw, 72px);
  padding: 32px 0 0;
}
.enc-proy > .enc-cat__crumbs {
  padding: 0 var(--proy-pad);
}

/* Intro */
.enc-proy__intro { position: relative; overflow: hidden; }
.enc-proy__intro-diag {
  position: absolute; inset: 0;
  background: linear-gradient(118deg,
    var(--mint-tint) 0%, var(--mint-tint) 48%,
    var(--mint-air) 48.1%, var(--mint-air) 100%);
  opacity: 0.55;
}
.enc-proy__intro-inner {
  position: relative; z-index: 2;
  padding: 64px var(--proy-pad) 56px;
}
.enc-proy__eyebrow {
  color: var(--mint); margin-bottom: 22px;
  display: flex; align-items: center; gap: 10px;
}
.enc-proy__eyebrow-line { width: 24px; height: 1px; background: var(--mint); }
.enc-proy__title {
  font-size: clamp(52px, 8vw, 116px);
  font-weight: 200; margin: 0 0 40px;
  letter-spacing: -0.03em; line-height: 0.94;
  max-width: 16ch; color: var(--ink);
}
.enc-proy__intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: start; max-width: 1100px;
}
.enc-proy__lead {
  font-size: clamp(18px, 1.7vw, 23px); line-height: 1.5;
  color: var(--ink); margin: 0; font-weight: 300; letter-spacing: -0.01em;
}
.enc-proy__lead-aside { display: flex; flex-direction: column; gap: 18px; padding-top: 4px; }
.enc-proy__lead-aside p { font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); margin: 0; }

/* Headings compartidos */
.enc-proy__kicker { color: var(--mint); margin-bottom: 16px; }
.enc-proy__h2 { font-size: clamp(34px, 4vw, 56px); margin: 0; color: var(--ink); }

/* Alcance */
.enc-proy__scope { padding: 72px var(--proy-pad); border-top: 1px solid var(--line); }
.enc-proy__scope-head {
  display: flex; align-items: end; justify-content: space-between;
  gap: 32px; margin-bottom: 44px; flex-wrap: wrap;
}
.enc-proy__scope-head-l { max-width: 560px; }
.enc-proy__scope-desc { font-size: 14.5px; line-height: 1.6; color: var(--ink-soft); margin: 0; max-width: 360px; }
.enc-proy__scope-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line);
}
.enc-proy__scope-card { background: #fff; padding: 28px 28px 30px; display: flex; flex-direction: column; gap: 12px; min-height: 168px; }
.enc-proy__scope-card-top { display: flex; align-items: center; justify-content: space-between; }
.enc-proy__num { color: var(--muted); }
.enc-proy__dot { width: 8px; height: 8px; border-radius: 999px; background: var(--mint); }
.enc-proy__scope-card-title { font-size: 24px; font-weight: 300; margin: 0; color: var(--ink); }
.enc-proy__scope-card-desc { font-size: 13.5px; line-height: 1.55; color: var(--ink-soft); margin: 0; }

/* Servicios */
.enc-proy__services { padding: 72px var(--proy-pad); background: var(--mint-air); }
.enc-proy__services-head {
  display: flex; align-items: end; justify-content: space-between;
  gap: 32px; margin-bottom: 44px; flex-wrap: wrap;
}
.enc-proy__btn-ghost {
  display: inline-flex; align-items: center; height: 40px; padding: 0 18px;
  font-family: var(--enc-font-mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink);
  border: 1px solid var(--line); transition: border-color .2s, color .2s;
}
.enc-proy__btn-ghost:hover { border-color: var(--mint); color: var(--mint); }
.enc-proy__services-grid {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px; background: var(--line); border: 1px solid var(--line);
}
.enc-proy__svc--span2 { grid-column: span 2; }
.enc-proy__svc--span3 { grid-column: span 3; }
.enc-proy__svc {
  position: relative; background: #fff;
  display: flex; flex-direction: column; padding: 28px 28px 26px;
  min-height: 248px; transition: background .3s ease; overflow: hidden;
  text-decoration: none;
}
.enc-proy__svc:hover { background: var(--mint-air); }
.enc-proy__svc-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.enc-proy__svc-icon {
  width: 52px; height: 52px; border-radius: 999px;
  background: var(--mint-soft); color: var(--mint);
  display: grid; place-items: center; transition: background .25s, color .25s;
}
.enc-proy__svc:hover .enc-proy__svc-icon { background: var(--mint); color: #fff; }
.enc-proy__svc-title {
  font-size: clamp(24px, 1.9vw, 31px); font-weight: 200;
  margin: 0 0 12px; color: var(--ink); letter-spacing: -0.02em; line-height: 1.02;
}
.enc-proy__svc-desc { font-size: 14px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 20px; }
.enc-proy__svc-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.enc-proy__svc-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.enc-proy__tag { font-size: 9.5px; color: var(--ink-soft); border: 1px solid var(--line); padding: 5px 9px; white-space: nowrap; }
.enc-proy__svc-arrow {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 999px;
  background: transparent; color: var(--mint); border: 1px solid var(--mint);
  display: grid; place-items: center; transition: background .25s, color .25s, transform .25s;
}
.enc-proy__svc:hover .enc-proy__svc-arrow { background: var(--mint); color: #fff; transform: translateX(2px); }

/* CTA */
.enc-proy__cta-wrap { padding: 72px var(--proy-pad); }
.enc-proy__cta { position: relative; background: var(--enc-dark); color: #fff; padding: clamp(48px, 7vw, 80px); overflow: hidden; }
.enc-proy__cta-diag {
  position: absolute; top: 0; right: 0; bottom: 0; width: 55%;
  background: linear-gradient(115deg, transparent 0%, transparent 32%, var(--mint) 32.5%, var(--mint) 100%);
  opacity: 0.95;
}
.enc-proy__cta-inner { position: relative; max-width: 640px; }
.enc-proy__cta-kicker { color: var(--mint); margin-bottom: 18px; }
.enc-proy__cta-title { font-size: clamp(42px, 5vw, 72px); margin: 0 0 24px; color: #fff; }
.enc-proy__cta-desc { font-size: 16.5px; line-height: 1.55; color: rgba(255,255,255,0.7); margin: 0 0 32px; max-width: 480px; }
.enc-proy__cta-btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 52px; padding: 0 28px; background: var(--mint); color: #fff;
  font-family: var(--enc-font-mono); font-weight: 600; font-size: 13px;
  letter-spacing: 0.14em; text-transform: uppercase; transition: background .2s, transform .15s;
  text-decoration: none;
}
.enc-proy__cta-btn:hover { background: var(--mint-2); transform: translateY(-1px); }

/* Responsive básico */
@media (max-width: 900px) {
  .enc-proy__intro-grid { grid-template-columns: 1fr; }
  .enc-proy__scope-grid { grid-template-columns: repeat(2, 1fr); }
  .enc-proy__services-grid { grid-template-columns: 1fr; }
  .enc-proy__svc--span2, .enc-proy__svc--span3 { grid-column: span 1; }
}

/* ===================== CLIENTES (CMS 6) ===================== */
.enc-cli { --cli-pad: clamp(40px, 5vw, 72px); padding: 32px 0 0; }
.enc-cli > .enc-cat__crumbs { padding: 0 var(--cli-pad); }

/* Intro */
.enc-cli__intro { position: relative; overflow: hidden; }
.enc-cli__intro-diag {
  position: absolute; inset: 0;
  background: linear-gradient(118deg, var(--mint-tint) 0%, var(--mint-tint) 48%, var(--mint-air) 48.1%, var(--mint-air) 100%);
  opacity: 0.55;
}
.enc-cli__intro-inner { position: relative; z-index: 2; padding: 64px var(--cli-pad) 48px; }
.enc-cli__eyebrow { color: var(--mint); margin-bottom: 22px; display: flex; align-items: center; gap: 10px; }
.enc-cli__eyebrow-line { width: 24px; height: 1px; background: var(--mint); }
.enc-cli__title { font-size: clamp(52px, 8vw, 116px); font-weight: 200; margin: 0 0 40px; letter-spacing: -0.03em; line-height: 0.94; color: var(--ink); }
.enc-cli__intro-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: clamp(32px,5vw,80px); align-items: end; max-width: 1100px; }
.enc-cli__lead { font-size: clamp(18px,1.7vw,23px); line-height: 1.5; color: var(--ink); margin: 0; font-weight: 300; letter-spacing: -0.01em; }
.enc-cli__stats { display: flex; gap: 40px; }
.enc-cli__stat-num { font-size: clamp(40px,4vw,58px); font-weight: 200; color: var(--mint); line-height: 1; letter-spacing: -0.02em; }
.enc-cli__stat-label { color: var(--muted); margin-top: 10px; }

.enc-cli__kicker { color: var(--mint); }

/* Banderas mini */
.enc-cli__flag-mini {
  width: 26px; height: 18px; border-radius: 3px; flex-shrink: 0; display: inline-block;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08);
  background: linear-gradient(180deg, var(--f0) 0 33.33%, var(--f1) 33.33% 66.66%, var(--f2) 66.66% 100%);
}
.enc-cli__flag-mini--v { background: linear-gradient(90deg, var(--f0) 0 33.33%, var(--f1) 33.33% 66.66%, var(--f2) 66.66% 100%); }
.enc-cli__flag-mini--lg { width: 40px; height: 27px; }

/* Índice */
.enc-cli__index { padding: 40px var(--cli-pad) 8px; border-top: 1px solid var(--line); }
.enc-cli__index-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 26px; flex-wrap: wrap; }
.enc-cli__all { background: none; border: none; cursor: pointer; padding: 0 0 1px; color: var(--muted); border-bottom: 1px solid transparent; font: inherit; }
.enc-cli__all.is-active { color: var(--mint); border-bottom-color: var(--mint); }
.enc-cli__region { margin-bottom: 30px; }
.enc-cli__region-label { font-size: 12.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 14px; }
.enc-cli__flags { display: flex; flex-wrap: wrap; gap: 8px; }
.enc-cli__flag {
  display: flex; align-items: center; gap: 9px; padding: 8px 13px 8px 9px; cursor: pointer;
  background: #fff; border: 1px solid var(--line); color: var(--ink); transition: all .18s ease; font: inherit;
}
.enc-cli__flag:hover { border-color: var(--mint); }
.enc-cli__flag.is-active { background: var(--mint); border-color: var(--mint); color: #fff; }
.enc-cli__flag.is-active .enc-cli__flag-count { color: #fff; background: rgba(255,255,255,0.22); }
.enc-cli__flag-name { font-size: 14px; font-weight: 400; }
.enc-cli__flag-count { font-size: 10.5px; font-weight: 500; color: var(--mint); background: var(--mint-soft); padding: 1px 7px; border-radius: 999px; min-width: 18px; text-align: center; }

/* Directorio */
.enc-cli__dir { padding: 44px var(--cli-pad) 24px; }
.enc-cli__country { margin-bottom: 56px; }
.enc-cli__country-head { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.enc-cli__country-name { font-size: clamp(30px,3.4vw,46px); font-weight: 200; margin: 0; letter-spacing: -0.02em; }
.enc-cli__country-count { color: var(--muted); margin-left: auto; }
.enc-cli__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.enc-cli__card { background: #fff; border: 1px solid var(--line); padding: 26px 26px 24px; display: flex; flex-direction: column; transition: background .25s ease; min-height: 200px; }
.enc-cli__card:hover { background: var(--mint-air); }
.enc-cli__card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.enc-cli__type { font-size: 9.5px; color: var(--mint); border: 1px solid var(--mint); padding: 4px 8px; }
.enc-cli__card-num { color: var(--muted); }
.enc-cli__card-name { font-size: 22px; font-weight: 300; margin: 0 0 14px; color: var(--ink); letter-spacing: -0.01em; line-height: 1.12; }
.enc-cli__card-info { display: flex; flex-direction: column; gap: 7px; margin-bottom: 20px; }
.enc-cli__card-row { display: flex; gap: 9px; align-items: flex-start; }
.enc-cli__card-row svg { flex-shrink: 0; margin-top: 2px; color: var(--mint); }
.enc-cli__card-row span { font-size: 13.5px; color: var(--ink-soft); line-height: 1.45; }
.enc-cli__card-link { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; color: var(--mint); border-bottom: 1px solid var(--mint); padding-bottom: 3px; font-size: 11px; }

/* CTA */
.enc-cli__cta-wrap { padding: 40px var(--cli-pad) 72px; }
.enc-cli__cta { position: relative; background: var(--enc-dark); color: #fff; padding: clamp(48px,7vw,80px); overflow: hidden; }
.enc-cli__cta-diag { position: absolute; top: 0; right: 0; bottom: 0; width: 55%; background: linear-gradient(115deg, transparent 0%, transparent 32%, var(--mint) 32.5%, var(--mint) 100%); opacity: 0.95; }
.enc-cli__cta-inner { position: relative; max-width: 640px; }
.enc-cli__cta-kicker { color: var(--mint); margin-bottom: 18px; }
.enc-cli__cta-title { font-size: clamp(42px,5vw,72px); margin: 0 0 24px; color: #fff; }
.enc-cli__cta-desc { font-size: 16.5px; line-height: 1.55; color: rgba(255,255,255,0.7); margin: 0 0 32px; max-width: 480px; }
.enc-cli__cta-btn { display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 28px; background: var(--mint); color: #fff; font-family: var(--enc-font-mono); font-weight: 600; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; transition: background .2s, transform .15s; text-decoration: none;}
.enc-cli__cta-btn:hover { background: var(--mint-2); transform: translateY(-1px); }

@media (max-width: 900px) {
  .enc-cli__intro-grid { grid-template-columns: 1fr; align-items: start; }
  .enc-cli__cards { grid-template-columns: 1fr; }
}

/* ===================== CONTACTO ===================== */
.enc-contact { --c-pad: clamp(40px, 5vw, 72px); padding: 32px 0 72px; }
.enc-contact > * { padding-left: var(--c-pad); padding-right: var(--c-pad); }

.enc-contact__head { margin-bottom: 28px; }
.enc-contact__eyebrow { color: var(--mint); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.enc-contact__eyebrow-line { width: 24px; height: 1px; background: var(--mint); }
.enc-contact__title { font-size: clamp(44px, 6vw, 84px); font-weight: 200; margin: 0; letter-spacing: -0.03em; line-height: 1; color: var(--ink); }

/* Mapa */
.enc-contact__map { height: clamp(280px, 38vh, 440px); margin-bottom: 40px; border: 1px solid var(--line); overflow: hidden; }
.enc-contact__map iframe { display: block; width: 100%; height: 100%; }

/* Grid datos + formulario */
.enc-contact__grid { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 32px; align-items: start; }

/* Columna datos */
.enc-contact__info { border: 1px solid var(--line); padding: 30px 28px; background: #fff; }
.enc-contact__info-title { color: var(--ink); font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 24px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.enc-contact__info-block { display: flex; gap: 14px; align-items: flex-start; padding: 16px 0; border-bottom: 1px solid var(--line-soft); }
.enc-contact__info-block:last-child { border-bottom: 0; padding-bottom: 0; }
.enc-contact__info-icon { flex-shrink: 0; width: 38px; height: 38px; border-radius: 999px; background: var(--mint-soft); color: var(--mint); display: grid; place-items: center; }
.enc-contact__info-block div { font-size: 14px; line-height: 1.5; color: var(--ink-soft); }
.enc-contact__info-block strong { display: block; color: var(--ink); font-weight: 600; margin-bottom: 3px; }
.enc-contact__info-block a { color: var(--ink-soft); text-decoration: none; transition: color .2s; }
.enc-contact__info-block a:hover { color: var(--mint); }

/* Columna formulario */
.enc-contact__form-wrap { border: 1px solid var(--line); padding: 36px 38px 40px; background: #fff; }
.enc-contact__form-title { font-size: clamp(26px, 2.4vw, 34px); font-weight: 200; margin: 0 0 28px; color: var(--ink); letter-spacing: -0.02em; }
.enc-contact__hidden-subject { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.enc-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.enc-contact__field { display: block; margin-bottom: 18px; }
.enc-contact__label { display: block; font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 8px; }
.enc-contact__label i { color: var(--mint); font-style: normal; margin-left: 2px; }
.enc-contact__label small { color: var(--muted); font-weight: 400; }
.enc-contact__field input,
.enc-contact__field textarea {
  width: 100%; border: 1px solid var(--line); background: var(--paper);
  padding: 12px 14px; font-family: inherit; font-size: 14.5px; color: var(--ink);
  border-radius: 4px; outline: none; transition: border-color .2s, background .2s;
}
.enc-contact__field input:focus,
.enc-contact__field textarea:focus { border-color: var(--mint); background: #fff; }
.enc-contact__field textarea { resize: vertical; min-height: 130px; }
.enc-contact__submit {
  display: inline-flex; align-items: center; height: 48px; padding: 0 32px;
  background: var(--ink); color: #fff; border: 0; cursor: pointer;
  font-family: var(--enc-font-mono); font-size: 12px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; transition: background .2s;
  margin-top: 8px;
}
.enc-contact__submit:hover { background: var(--mint-2); }
.enc-contact__notif { padding: 14px 16px; margin-bottom: 22px; border-radius: 4px; font-size: 14px; }
.enc-contact__notif ul { margin: 0; padding-left: 18px; }
.enc-contact__notif.is-ok { background: var(--mint-soft); color: var(--mint-2); }
.enc-contact__notif.is-error { background: #FEF2F2; color: #B91C1C; }

@media (max-width: 860px) {
  .enc-contact__grid { grid-template-columns: 1fr; }
  .enc-contact__row { grid-template-columns: 1fr; }
}

/* ============================================================
   RESPONSIVE MÓVIL  (≤ 900px)  — bloque único
   ============================================================ */
.m-topbar { display: none; }
.m-overlay { display: none; }
.m-close { display: none; }

@media (max-width: 900px) {

  /* Sin sidebar fija; dejar lugar a la top bar */
  body { padding-left: 0 !important; padding-top: 58px; }

  /* ---- TOP BAR: hamburguesa | logo centrado | carrito ---- */
  .m-topbar {
    display: grid !important;
    grid-template-columns: 40px 1fr 40px;
    align-items: center;
    position: fixed; top: 0; left: 0; right: 0; height: 58px; z-index: 1100;
    padding: 0 14px;
    background: #fff;
    border-bottom: 1px solid var(--line);
  }
  .m-topbar__btn {
    width: 40px; height: 40px; padding: 0; cursor: pointer;
    display: grid; place-items: center;
    border: none; background: transparent;
  }
  .m-topbar__btn:nth-child(1) { justify-self: start; }
  .m-topbar__btn:last-child  { justify-self: end; }
  .m-topbar__logo {
    grid-column: 2; justify-self: center;
    display: inline-flex; align-items: center; gap: 7px;
    text-decoration: none; min-width: 0;
  }
  .m-topbar__logo span {
    font-size: 20px; font-weight: 300; color: var(--ink-soft);
    letter-spacing: -0.01em; white-space: nowrap;
  }

  /* ---- SIDEBAR como panel deslizable ---- */
  .sidebar {
    width: 300px; max-width: 84vw;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    z-index: 1200;
    box-shadow: 0 0 40px rgba(0,0,0,0.18);
    padding: 58px 24px 24px;
  }
  body.m-menu-open .sidebar { transform: translateX(0); }
  body.m-menu-open { overflow: hidden; }

  /* Logo dentro de la sidebar, tamaño controlado por clase */
  .side-logo { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; }
  .side-logo__name { font-size: 22px; font-weight: 300; color: #4B5563; letter-spacing: -0.01em; }
  .side-logo__ico { width: 36px; height: 34px; }

  /* Botón cerrar (X) */
  .m-close {
    display: grid; place-items: center;
    position: absolute; top: 12px; right: 12px;
    width: 40px; height: 40px; border: none; background: transparent;
    cursor: pointer; color: var(--ink); border-radius: 8px; z-index: 5;
  }
  .m-close:active { background: var(--mint-soft); }

  /* Overlay */
  .m-overlay {
    display: block; position: fixed; inset: 0; z-index: 1150;
    background: rgba(15,23,42,0.5);
    opacity: 0; pointer-events: none; transition: opacity 0.3s ease;
  }
  body.m-menu-open .m-overlay { opacity: 1; pointer-events: auto; }

  /* ---- Grids de contenido a 1-2 columnas ---- */
  .enc-cat__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .enc-cat__hero-inner { grid-template-columns: 1fr; gap: 24px; padding: 36px 20px 44px; }
  .enc-cat__hero-media { display: none; }
  .enc-cat__title { font-size: clamp(40px, 12vw, 60px); }
  .enc-cat, .enc-proy, .enc-cli, .enc-contact { --c-pad: 20px; --proy-pad: 20px; --cli-pad: 20px; }
  .enc-proy__scope-grid, .enc-proy__services-grid,
  .enc-proy__intro-grid, .enc-cli__intro-grid, .enc-cli__cards { grid-template-columns: 1fr; }
  .enc-proy__svc--span2, .enc-proy__svc--span3 { grid-column: span 1; }
  .enc-contact__grid, .enc-contact__row { grid-template-columns: 1fr; }
  .enc-proy__title, .enc-cli__title { font-size: clamp(40px, 12vw, 64px); }
  .enc-contact__title { font-size: clamp(38px, 11vw, 60px); }
}



/* === FIX desborde móvil — va al final para ganar siempre === */
@media (max-width: 900px) {
  body { padding-left: 0 !important; }
  html, body { overflow-x: hidden !important; max-width: 100vw; }
}

@media (max-width: 900px) {
  .enc-hero__slide-title {
    font-size: clamp(22px, 7vw, 30px);
    line-height: 1.1;
  }
}
@media (max-width: 900px) {
  /* Categorías en fila horizontal con scroll lateral */
  .cats__grid {
    display: flex;
    gap: 14px;
    background: transparent;
    border: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
    margin: 0 -20px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .cats__grid::-webkit-scrollbar { display: none; }

  .cats__card {
    flex: 0 0 75%;        /* cada card ocupa 75% del ancho visible */
    max-width: 280px;
    scroll-snap-align: start;
    border: 1px solid var(--line);
    min-height: 260px;
  }

  /* Título completo */
  .cats__card-title { font-size: clamp(22px, 6vw, 30px); line-height: 1.1; }
}

@media (max-width: 900px) {
  /* Productos destacados: 2 por fila */
  .prods__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .prods { padding: 48px 20px; }
}
@media (max-width: 900px) {
  /* Imagen de producto más alta en móvil */
  .prods__card-media { aspect-ratio: 1 / 1; }
}
@media (max-width: 900px) {
  /* Footer: logo full width arriba, columnas en 2 abajo */
  .enc-foot {
    padding: 48px 20px 24px; 
    margin-top: 48px; 
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;}
  .enc-foot__inner {
    grid-template-columns: 1fr 1fr;
    gap: 32px 24px;
    padding-bottom: 40px;
    max-width: 100%;
  }
  /* La marca (logo+tagline) ocupa las 2 columnas */
  .enc-foot__brand { grid-column: 1 / -1; }

  /* Bottom: copyright y redes apilados y centrados */
  .enc-foot__bottom {
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
    max-width: 100%;
  }
}

/* Cards de categoría: precio parejo y alineado */
.enc-cat__grid .prods__card-foot { justify-content: flex-start; }
.enc-cat__grid .prods__card-name {
  min-height: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* ===================== FICHA DE PRODUCTO (PDP) ===================== */
.enc-pdp { --pdp-pad: clamp(40px, 5vw, 72px); padding: 32px 0 72px; }
.enc-pdp > .enc-cat__crumbs { padding: 0 var(--pdp-pad) 24px; }

/* ---- Top: galería + panel ---- */
.enc-pdp__top {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(32px, 4vw, 64px);
  padding: 0 var(--pdp-pad);
  align-items: start;
}

/* Galería (usa el partial de PrestaShop, lo estilamos) */
.enc-pdp__gallery .images-container,
.enc-pdp__gallery .product-cover { margin: 0; }
.enc-pdp__gallery img { border: 1px solid var(--line); width: 100%; height: auto; }
.enc-pdp__gallery .product-images img { border: 1px solid var(--line); }

/* Panel de compra */
.enc-pdp__eyebrow {display: none;}
.enc-pdp__title {
  font-size: clamp(30px, 3.4vw, 46px); font-weight: 200;
  margin: 0 0 18px; letter-spacing: -0.025em; line-height: 1.04; color: var(--ink);
}
.enc-pdp__short { font-size: 15.5px; line-height: 1.6; color: var(--ink-soft); margin: 0 0 24px; }

/* Highlights (features destacadas) */
.enc-pdp__highlights {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
  background: var(--line); border: 1px solid var(--line); margin-bottom: 28px;
}
.enc-pdp__hl {display: none; background: #fff; padding: 16px 18px; }
.enc-pdp__hl-value { font-size: 19px; color: var(--ink); margin-bottom: 4px; line-height: 1.15; font-weight: 300; }
.enc-pdp__hl-label { font-size: 12px; color: var(--muted); line-height: 1.35; }

/* Precio */
.enc-pdp__price-box {
  background: var(--mint-air); border: 1px solid var(--line);
  padding: 20px 24px; margin-bottom: 22px;
}
.enc-pdp__price-box .product-prices { margin: 0; }
.enc-pdp__price-box .product-price,
.enc-pdp__price-box .current-price span { font-size: clamp(30px, 4vw, 44px); font-weight: 200; color: var(--ink); }
.enc-pdp__price-box .tax-shipping-delivery-label { font-size: 12px; color: var(--muted); margin-top: 6px; }

/* Variantes (selector de tamaño de cápsula) */
.enc-pdp__variants { margin-bottom: 20px; }
.enc-pdp__variants .product-variants { margin: 0; }
.enc-pdp__variants .product-variants__label,
.enc-pdp__variants .control-label {
  display: block; font-size: 13px; font-weight: 600; color: var(--ink);
  margin-bottom: 10px; text-transform: none;
}
.enc-pdp__variants select,
.enc-pdp__variants .form-control {
  border: 1px solid var(--line); border-radius: 4px; padding: 12px 14px;
  font-family: inherit; font-size: 15px; color: var(--ink); background: #fff;
  width: 100%; max-width: 280px;
}
/* Si las variantes son botones/radios */
.enc-pdp__variants .product-variants__option { margin-right: 8px; margin-bottom: 8px; }

/* Cantidad + agregar */
.enc-pdp__buy { margin-bottom: 24px; }
.enc-pdp__buy .product-add-to-cart { margin: 0; }
.enc-pdp__buy .product-quantity { display: none; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.enc-pdp__buy .qty { flex: 0 0 auto; }
.enc-pdp__buy .input-group,
.enc-pdp__buy .bootstrap-touchspin {
  border: 1px solid var(--line); height: 52px; display: inline-flex; align-items: center;
}
.enc-pdp__buy input.js-qty,
.enc-pdp__buy .js-cart-line-product-quantity,
.enc-pdp__buy input[type="number"] {
  width: 56px; text-align: center; border: none; font-size: 16px; font-weight: 600; height: 50px;
}
.enc-pdp__buy .btn-touchspin,
.enc-pdp__buy .bootstrap-touchspin-up,
.enc-pdp__buy .bootstrap-touchspin-down {
  border: none; background: transparent; width: 40px; height: 50px; cursor: pointer;
  font-size: 18px; color: var(--ink-soft);
}
.enc-pdp__buy .add-to-cart,
.enc-pdp__buy button.add-to-cart {
  flex: 1 1 220px; min-height: 52px; background: var(--ink); color: #fff; border: none;
  border-radius: 4px; cursor: pointer; font-family: var(--enc-font-mono);
  font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  transition: background .2s; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.enc-pdp__buy .add-to-cart:hover:not([disabled]) { background: var(--mint-2); }
.enc-pdp__buy .add-to-cart[disabled] { opacity: 0.5; cursor: not-allowed; }

/* Garantías */
.enc-pdp__assurances {
  display: flex; flex-direction: column; gap: 12px;
  padding-top: 22px; margin-top: 4px; border-top: 1px solid var(--line);
}
.enc-pdp__assurance { display: flex; gap: 12px; align-items: center; }
.enc-pdp__assurance svg { color: var(--mint); flex-shrink: 0; }
.enc-pdp__assurance span { font-size: 13.5px; color: var(--ink-soft); }

/* ---- Info: ficha técnica + descripción ---- */
.enc-pdp__info { padding: 0 var(--pdp-pad); margin-top: 64px; }
.enc-pdp__kicker { color: var(--mint); margin-bottom: 14px; }
.enc-pdp__h2 { font-size: clamp(30px, 3.4vw, 46px); font-weight: 200; margin: 0 0 28px; letter-spacing: -0.02em; }

.enc-pdp__specs { border-top: 1px solid var(--line); padding-top: 56px; margin-bottom: 56px; }
.enc-pdp__specs-table { border: 1px solid var(--line); }
.enc-pdp__spec-row {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); gap: 20px;
  padding: 16px 24px; border-bottom: 1px solid var(--line);
}
.enc-pdp__spec-row:last-child { border-bottom: none; }
.enc-pdp__spec-row:nth-child(even) { background: var(--mint-air); }
.enc-pdp__spec-key { font-size: 13.5px; color: var(--muted); }
.enc-pdp__spec-val { font-size: 14.5px; color: var(--ink); font-weight: 500; }

.enc-pdp__desc { border-top: 1px solid var(--line); padding-top: 56px; margin-bottom: 56px; display: grid; justify-content: center;}
.enc-pdp__desc-body { font-size: 18px; line-height: 1.7; color: var(--ink-soft); max-width: 820px; }
.enc-pdp__desc-body p { margin: 0 0 14px; }
.enc-pdp__desc-body ul { padding-left: 20px; margin: 0 0 14px; }
.enc-pdp__desc-body li { margin-bottom: 6px; }

.enc-pdp__attachments { border-top: 1px solid var(--line); padding-top: 40px; margin-bottom: 40px; }
.enc-pdp__attachment {
  display: inline-flex; align-items: center; gap: 10px; color: var(--mint-2);
  text-decoration: none; padding: 10px 0; font-size: 14px;
}
.enc-pdp__attachment:hover { color: var(--mint); }

.enc-pdp__related { padding: 0 var(--pdp-pad); margin-top: 56px; }

/* ---- Móvil ---- */
@media (max-width: 900px) {
  .enc-pdp { --pdp-pad: 20px; }
  .enc-pdp__top { grid-template-columns: 1fr; gap: 28px; }
  .enc-pdp__title { font-size: clamp(24px, 7vw, 32px); line-height: 1.08; }
  .enc-pdp__highlights { grid-template-columns: 1fr 1fr; }
  .enc-pdp__spec-row { grid-template-columns: 1fr; gap: 4px; padding: 14px 18px; }
  .enc-pdp__spec-key { font-size: 12px; }
  .enc-pdp__buy .add-to-cart { flex: 1 1 100%; }
}
/* ===================== GALERÍA DE PRODUCTO ===================== */
.enc-gal { display: flex; flex-direction: column; gap: 12px; }
.enc-gal__main {
  border: 1px solid var(--line); background: var(--mint-air);
  aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden;
}
.enc-gal__main img { width: 100%; height: 100%; object-fit: contain; padding: 24px; }
.enc-gal__thumbs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 6px;
  scroll-snap-type: x proximity;
}
.enc-gal__thumbs::-webkit-scrollbar { height: 6px; }
.enc-gal__thumbs::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }
.enc-gal__thumb {
  flex: 0 0 88px;
  scroll-snap-align: start;
}
.enc-gal__thumb {
  border: 1px solid var(--line); background: var(--mint-air); cursor: pointer;
  padding: 0; aspect-ratio: 1 / 1; overflow: hidden; transition: border-color .2s;
}
.enc-gal__thumb:hover { border-color: var(--mint); }
.enc-gal__thumb.is-active { border-color: var(--mint); outline: 1px solid var(--mint); }
.enc-gal__thumb img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }

/* ===================== PDP: controles (variantes, cantidad, comprar) ===================== */

/* --- Precio --- */
.enc-pdp__price-box .product__current-price {
  font-size: clamp(30px, 4vw, 44px); font-weight: 200; color: var(--ink); line-height: 1;
}
.enc-pdp__price-box .prices__wrapper { margin: 0 !important; gap: 4px !important; }
.enc-pdp__price-box .product__tax-label { font-size: 18px; color: var(--muted); }

/* --- Selector de tamaño: radios → pills horizontales --- */
.enc-pdp__variants .variant { margin: 0; }
.enc-pdp__variants .form-label {
  display: block; font-size: 13px; font-weight: 600; color: var(--ink);
  margin-bottom: 12px;
}
.enc-pdp__variants .radio-variants {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: nowrap; gap: 6px;
}
.enc-pdp__variants .radio-variant { margin: 0; padding: 0; }
.enc-pdp__variants .radio-variant label {
  display: block; margin: 0; cursor: pointer; position: relative;
}
/* Ocultar el círculo del radio */
.enc-pdp__variants .input-radio {
  position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
/* El texto del tamaño como pill */
.enc-pdp__variants .radio-label {
  display: grid; place-items: center;
  min-width: 0; width: 44px; height: 40px; padding: 0 8px;
  border: 1px solid var(--line); border-radius: 6px;
  font-size: 14px; font-weight: 500; color: var(--ink); background: #fff;
  transition: all .18s ease;
}
.enc-pdp__variants .radio-variant label:hover .radio-label { border-color: var(--mint); }
/* Pill seleccionada */
.enc-pdp__variants .input-radio:checked + .radio-label {
  background: var(--ink); border-color: var(--ink); color: #fff;
}

/* --- Cantidad --- */
.enc-pdp__buy .row { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; margin: 0; }
.enc-pdp__buy .input-group {
  display: inline-flex; align-items: stretch; border: 1px solid var(--line);
  border-radius: 6px; overflow: hidden; height: 52px; margin: 0 !important;
}
.enc-pdp__buy .input-group .btn {
  width: 44px; border: none; background: #fff; cursor: pointer;
  display: grid; place-items: center; color: var(--ink-soft); font-size: 20px; position: relative;
}
.enc-pdp__buy .input-group .btn:hover { background: var(--mint-soft); color: var(--mint); }
/* Íconos material rotos → reemplazar por símbolos */
.enc-pdp__buy .decrement .material-icons,
.enc-pdp__buy .increment .material-icons { display: none; }
.enc-pdp__buy .decrement::after { content: "−"; font-size: 22px; }
.enc-pdp__buy .increment::after { content: "+"; font-size: 22px; }
.enc-pdp__buy .js-quantity-wanted,
.enc-pdp__buy #quantity_wanted {
  width: 56px; text-align: center; border: none; border-left: 1px solid var(--line);
  border-right: 1px solid var(--line); font-size: 16px; font-weight: 600; color: var(--ink);
}

/* --- Botón Comprar --- */
.enc-pdp__buy .product-actions__button { display: flex; flex: 1 1 220px; }
.enc-pdp__buy .add-to-cart {
  flex: 1; min-height: 52px; width: 100%;
  background: var(--ink); color: #fff; border: none; border-radius: 6px; cursor: pointer;
  font-family: var(--enc-font-mono); font-size: 13px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  transition: background .2s;
}
.enc-pdp__buy .add-to-cart:hover:not([disabled]) { background: var(--mint-2); }
.enc-pdp__buy .add-to-cart[disabled] { opacity: 0.45; cursor: not-allowed; }
.enc-pdp__buy .add-to-cart .material-icons { display: none; }

/* Ocultar el video extra que mete un módulo (no va en el panel) */
.enc-pdp__panel .product__additional-info #pv_side_video { display: none; }

@media (max-width: 900px) {
  .enc-pdp__buy .product-actions__button { flex: 1 1 100%; }
}
/* PDP — productos relacionados */
.enc-pdp .section-title, .enc-pdp .container > .h2 {
  font-size: clamp(26px, 3vw, 40px); font-weight: 200; color: var(--ink);
  letter-spacing: -0.02em; margin: 0 0 28px; padding: 0 var(--pdp-pad);
}
.enc-pdp .products.row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
  padding: 0 var(--pdp-pad); margin: 0;
}
.enc-pdp .product-miniature { width: auto; margin: 0; }
.enc-pdp .product-miniature .card {
  border: 1px solid var(--line); border-radius: 12px; overflow: hidden;
  background: #fff; height: 100%; display: flex; flex-direction: column;
}
.enc-pdp .product-miniature__image-container {
  aspect-ratio: 1/1; background: var(--mint-air); display: grid; place-items: center; overflow: hidden;
}
.enc-pdp .product-miniature__image { width: 100%; height: 100%; object-fit: contain; padding: 16px; }
.enc-pdp .product-miniature__infos { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.enc-pdp .product-miniature__quickview { display: none; }
.enc-pdp .product-miniature__title {
  font-size: 15px; font-weight: 500; color: var(--ink); line-height: 1.35; margin: 0 0 12px;
}
.enc-pdp .product-miniature__price { font-size: 18px; font-weight: 600; color: var(--ink); }
.enc-pdp .product-miniature .btn-outline-primary {
  margin-top: auto; display: inline-block; text-decoration: none;
  border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px;
  font-size: 12px; color: var(--ink); transition: all .2s; align-self: flex-start; margin-top: 14px;
}
.enc-pdp .product-miniature .btn-outline-primary:hover { border-color: var(--mint); color: var(--mint); }
.enc-pdp .product-miniature__image-container .material-icons { display: none; }

@media (max-width: 900px) {
  .enc-pdp .products.row { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .enc-pdp__gallery { width: 100%; padding: 0 var(--pdp-pad); box-sizing: border-box; }
  .enc-gal { width: 100%; }
  .enc-gal__main {
    width: 100%;
    aspect-ratio: 1 / 1 !important;
    display: grid;
    place-items: center;
    overflow: hidden;
    box-sizing: border-box;
  }
  .enc-gal__main img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
  }
}
@media (max-width: 900px) {
  /* Galería full-bleed: ocupa todo el ancho, sin márgenes */
  .enc-pdp__top { padding: 0 !important; }
  .enc-pdp__gallery {
    width: 100%;
    max-width: 100%;
    padding: 0 !important;
    margin: 0;
    box-sizing: border-box;
  }
  .enc-gal__main {
    aspect-ratio: 1 !important; width: 100%; border-left: none; border-right: none; 
    width: 100%;
    border-left: none;
    border-right: none;
  }
  /* El panel y el resto SÍ mantienen su padding lateral */
  .enc-pdp__panel { padding: 0 var(--pdp-pad); box-sizing: border-box; }
  .enc-gal__thumbs { padding: 0 var(--pdp-pad); box-sizing: border-box; }
}

@media (max-width: 900px) {
  .enc-pdp__panel {
    padding: 0 var(--pdp-pad) !important;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
  .enc-pdp__panel * { max-width: 100%; box-sizing: border-box; }
  .enc-pdp__panel form { width: 100%; }

  /* Tamaños: que hagan scroll horizontal en vez de salirse */
  .enc-pdp__variants .radio-variants {
    overflow-x: auto;
    padding-bottom: 6px;
  }

  /* Título y descripción contenidos */
  .enc-pdp__title, .enc-pdp__short { max-width: 100%; word-wrap: break-word; }
}
@media (max-width: 900px) {
  .enc-pdp__title {
    font-size: clamp(24px, 7vw, 30px) !important;
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
  }
  .enc-pdp__short {
    word-break: break-word;
    overflow-wrap: break-word;
  }
  .enc-pdp__short, .enc-pdp__short p {
    max-width: 100%;
  }
}
@media (max-width: 900px) {
  .enc-pdp, .enc-pdp__top, .enc-pdp__panel, .enc-pdp__gallery {
    max-width: 100vw;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  .enc-pdp__panel { padding-left: 20px; padding-right: 20px; }
  .enc-pdp__title { font-size: 26px; line-height: 1.1; word-break: break-word; }
}

@media (max-width: 900px) {
  .enc-contact__form-wrap {
    padding: 24px 20px !important;
    box-sizing: border-box;
  }
  .enc-contact__form,
  .enc-contact__form form {
    width: 100%;
    box-sizing: border-box;
  }
  .enc-contact__field,
  .enc-contact__row {
    width: 100%;
    box-sizing: border-box;
  }
  .enc-contact__field input,
  .enc-contact__field textarea {
    width: 100%;
    box-sizing: border-box;
  }
}
.side-logo {
  text-decoration: none;
}
.side-logo__name {
  color: #4B5563 !important;
  text-decoration: none;
}
.side-logo:hover .side-logo__name {
  color: var(--ink);
}
.side-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.side-logo__name {
  font-size: 32px;
  font-weight: 300;
  color: #4B5563 !important;
  text-decoration: none;
  letter-spacing: -0.01em;
  line-height: 1;
}

/* Back to top: oculto visualmente, visible solo al foco con teclado */
.back-to-top-link,
.visually-hidden-focusable {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.back-to-top-link:focus,
.visually-hidden-focusable:focus {
  position: fixed !important;
  top: 1rem;
  left: 1rem;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: .75rem 1.25rem !important;
  overflow: visible !important;
  clip: auto !important;
  z-index: 500;
  background: #1976d2;
  color: #fff;
  border-radius: 6px;
}

.prods__card-foot {
  padding-left: 1rem;
  padding-right: 1rem;
}

.ps-sharebuttons {
  display: none !important;
}

.enc-gal__main {
  width: 100%;
  height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#enc-gal-main {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.product__price {
  font-size: 1.2rem;
  font-weight: 600;
}

/* === Selector de tamaño estilo pills === */

/* Label "Tamaño" en mayúscula */
.product-variant__legend {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.85rem;
  color: #6B7280;
  font-weight: 600;
}

/* Ocultar el ": 0" que aparece al lado */
.product-variant__selected {
  display: none !important;
}

/* Layout en fila */
.product-variant__radios {
  display: flex !important;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

/* Ocultar el radio nativo sin perder funcionalidad/accesibilidad */
.product-variant__radio input[type="radio"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none;
  width: 0;
  height: 0;
}

/* Reset del contenedor */
.product-variant__radio.form-check {
  padding: 0 !important;
  margin: 0 !important;
  position: relative;
}

/* Label convertido en pill circular */
.product-variant__radio label {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #F3F4F6;
  color: #374151;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 2px solid transparent;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hover */
.product-variant__radio label:hover {
  background: #E5E7EB;
}

/* Estado seleccionado — borde y texto teal */
.product-variant__radio input[type="radio"]:checked + label {
  background: #ffffff;
  border-color: #1DC3C4;
  color: #1DC3C4;
  font-weight: 600;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.side-nav__item {
  position: relative;
}

.side-nav__submenu {
  display: none;
  position: absolute;
  left: 100%;
  top: 0;
  min-width: 190px;
  background: #ffffff;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 6px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  z-index: 9999;
}

.side-nav__submenu a {
  display: block;
  padding: 7px 12px;
  color: #374151;
  text-decoration: none;
  border-radius: 5px;
  font-size: 0.85rem;
  line-height: 1.3;
  transition: all 0.15s;
}

.side-nav__submenu a:hover {
  background: #F3F4F6;
  color: #1DC3C4;
  padding-left: 16px;
}
.side-nav__item:hover .side-nav__submenu {
  display: block;
}

.sidebar {
  overflow: visible !important;
}

.side-nav {
  overflow: visible !important;
}
.enc-foot__social-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: #374151;
  margin: 0 0 12px 0;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.enc-foot__social-icons {
  display: flex;
  gap: 10px;
}

.enc-foot__social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #F3F4F6;
  color: #374151;
  text-decoration: none;
  transition: all 0.2s ease;
}

.enc-foot__social-icons a:hover {
  background: #1DC3C4;
  color: white;
  transform: translateY(-2px);
}
@media (max-width: 900px) {
  .sidebar {
    position: fixed;
    top: 0;
    bottom: 0;             
    left: 0;
    width: 300px;
    max-width: 84vw;
    padding: 58px 24px 1.5rem;

    display: block !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;

    z-index: 1200 !important;
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.18);

    transform: translateX(-100%);
    transition: transform 0.3s ease;
  }

  body.m-menu-open .sidebar { transform: translateX(0); }

  body.m-menu-open {
    overflow: hidden;
  }

  .side-foot { margin-top: 20px !important; }
  .side-nav__item:hover .side-nav__submenu { display: none; }
  .side-nav { overflow: visible !important; }
}

/* === Subcategorías en página de categoría (solo mobile) === */
.enc-cat__subcats {
  display: none;  /* oculto en desktop */
}

@media (max-width: 900px) {
  .enc-cat__subcats {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin: 16px -20px 32px;        /* negativo para que llegue al borde */
    padding: 4px 20px 12px;          /* 20px de aire a ambos lados */
    scrollbar-width: none;           /* Firefox */
  }
  .enc-cat__subcats::-webkit-scrollbar { display: none; }  /* Chrome/Safari */

  .enc-cat__subcat {
    flex: 0 0 75%;                   /* cada card ocupa 75% del ancho visible */
    max-width: 280px;
    scroll-snap-align: start;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    text-decoration: none;
    color: var(--ink);
    transition: border-color 0.2s ease;
    overflow: hidden;
  }

  .enc-cat__subcat::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(135deg,
      rgba(29, 195, 196, 0.06) 0 6px,
      transparent 6px 14px);
    opacity: 0;
    transition: opacity 0.25s;
    pointer-events: none;
  }

  .enc-cat__subcat:active { border-color: var(--mint); }
  .enc-cat__subcat:active::before { opacity: 1; }

  .enc-cat__subcat-body { position: relative; z-index: 1; min-width: 0; }

  .enc-cat__subcat-eyebrow {
    color: var(--mint);
    margin-bottom: 6px;
    font-size: 10px;
  }

  .enc-cat__subcat-name {
    font-size: 18px;
    font-weight: 300;
    margin: 0;
    letter-spacing: -0.01em;
    color: var(--ink);
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .enc-cat__subcat-arrow {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background: var(--mint-soft);
    color: var(--mint);
    display: grid;
    place-items: center;
    position: relative;
    z-index: 1;
  }
}

/* === WhatsApp FAB === */
.enc-whatsapp-fab {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: grid;
  place-items: center;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  z-index: 999;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  /* Respeta el safe area en iPhones con notch */
  bottom: max(24px, env(safe-area-inset-bottom, 24px));
}

.enc-whatsapp-fab:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 12px 32px rgba(37, 211, 102, 0.5);
  color: #fff;
}

.enc-whatsapp-fab:active {
  transform: translateY(-1px) scale(1);
}

/* Animación de "respiración" sutil para que llame la atención */
.enc-whatsapp-fab::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #25D366;
  z-index: -1;
  animation: enc-whatsapp-pulse 2.5s ease-in-out infinite;
}

@keyframes enc-whatsapp-pulse {
  0%, 100% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.15); opacity: 0; }
}

/* En mobile, ajustar tamaño y posición para no superponerse con la topbar */
@media (max-width: 900px) {
  .enc-whatsapp-fab {
    width: 52px;
    height: 52px;
    right: 16px;
    bottom: max(16px, env(safe-area-inset-bottom, 16px));
  }
  .enc-whatsapp-fab svg {
    width: 26px;
    height: 26px;
  }
}
#content.page-content.page-cms {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}