/* =========================================================
   Inversiones Alvport — Inicio 2.0
   ========================================================= */

.alv-home {
  --alv-home-green: #008200;
  --alv-home-green-dark: #2a4d16;
  --alv-home-navy: #162b4c;
  --alv-home-text: #334155;
  --alv-home-muted: #6b7785;
  --alv-home-line: #e5eaed;
  --alv-home-card: #fff;
  width: 100%;
  color: var(--alv-home-text);
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

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

.alv-home-section,
.alv-home-categories {
  width: min(100% - 40px, 1180px);
  margin: 54px auto;
}

.alv-home-categories {
  overflow: hidden;
  border: 1px solid var(--alv-home-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(22,43,76,.08);
}

.alv-home-category-tabs {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  border-bottom: 1px solid #edf0f2;
  background: #fff;
}

.alv-home-category-tabs::-webkit-scrollbar {
  display: none;
}

.alv-home-category-tab {
  flex: 1 0 auto;
  min-height: 56px;
  padding: 0 16px;
  border: 0;
  border-right: 1px solid #edf0f2;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: #52606c;
  font: inherit;
  font-size: .74rem;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

.alv-home-category-tab:last-child {
  border-right: 0;
}

.alv-home-category-tab:hover,
.alv-home-category-tab:focus-visible,
.alv-home-category-tab.is-active {
  border-bottom-color: var(--alv-home-green);
  background: #f2f9f2;
  color: var(--alv-home-green);
  outline: none;
}

.alv-home-category-viewport {
  position: relative;
  height: 420px;
  overflow: hidden;
  background: #18201a;
}

.alv-home-category-track {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform .58s cubic-bezier(.22,.8,.25,1);
  will-change: transform;
}

.alv-home-category-slide {
  position: relative;
  display: flex;
  flex: 0 0 100%;
  align-items: flex-end;
  min-width: 100%;
  height: 100%;
  padding: 48px 42px;
  overflow: hidden;
  background-image: var(--alv-home-slide-image);
  background-position: center;
  background-size: cover;
  color: #fff !important;
  text-decoration: none !important;
}

.alv-home-category-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(8,18,11,.92) 0%, rgba(8,18,11,.55) 38%, rgba(8,18,11,.08) 76%),
    linear-gradient(90deg, rgba(0,130,0,.18), transparent 50%);
  transition: background .2s ease;
}

.alv-home-category-slide:hover::before,
.alv-home-category-slide:focus-visible::before {
  background:
    linear-gradient(to top, rgba(4,89,13,.92) 0%, rgba(8,18,11,.52) 42%, rgba(8,18,11,.08) 78%);
}

.alv-home-category-copy {
  position: relative;
  z-index: 1;
  max-width: 720px;
  transform: translateY(5px);
  transition: transform .18s ease;
}

.alv-home-category-slide:hover .alv-home-category-copy,
.alv-home-category-slide:focus-visible .alv-home-category-copy {
  transform: translateY(0);
}

.alv-home-category-copy h2 {
  margin: 0 0 8px;
  color: #fff !important;
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 850;
  line-height: 1.05;
}

.alv-home-category-copy p {
  margin: 0 0 20px;
  color: rgba(255,255,255,.9) !important;
  font-size: 1rem;
}

.alv-home-category-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 999px;
  color: #fff;
  font-size: .76rem;
  font-weight: 820;
  text-transform: uppercase;
  letter-spacing: .025em;
}

.alv-home-section-heading {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 26px;
}

.alv-home-section-heading h2 {
  margin: 0;
  color: var(--alv-home-navy);
  font-size: clamp(1.65rem, 2.6vw, 2.15rem);
  font-weight: 850;
  line-height: 1.1;
  white-space: nowrap;
}

.alv-home-section-heading > span {
  flex: 1;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--alv-home-green), rgba(0,130,0,.18));
}

.alv-home-products-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.alv-home-product-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e2e7ea;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(22,43,76,.04);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.alv-home-product-card:hover,
.alv-home-product-card:focus-within {
  border-color: rgba(0,130,0,.38);
  box-shadow: 0 14px 28px rgba(0,130,0,.09);
  transform: translateY(-5px);
}

.alv-home-product-card__link {
  display: flex;
  height: 100%;
  flex-direction: column;
  color: inherit !important;
  text-decoration: none !important;
}

.alv-home-product-card__media {
  position: relative;
  display: block;
  height: 225px;
  overflow: hidden;
  border-bottom: 1px solid #edf0f2;
  background: linear-gradient(180deg, #fff, #fafcfc);
}

.alv-home-product-card__image {
  position: absolute;
  inset: 9px;
  display: block;
  width: calc(100% - 18px) !important;
  height: calc(100% - 18px) !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  transition: opacity .28s ease, transform .34s ease;
}

.alv-home-product-card__image.is-primary {
  opacity: 1;
}

.alv-home-product-card__image.is-secondary {
  opacity: 0;
  transform: scale(.98);
}

.alv-home-product-card:hover .alv-home-product-card__image.is-primary,
.alv-home-product-card:focus-within .alv-home-product-card__image.is-primary {
  opacity: 0;
}

.alv-home-product-card:hover .alv-home-product-card__image.is-secondary,
.alv-home-product-card:focus-within .alv-home-product-card__image.is-secondary {
  opacity: 1;
  transform: scale(1);
}

.alv-home-product-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 16px 16px 17px;
}

.alv-home-product-card__brand {
  margin-bottom: 6px;
  color: var(--alv-home-green);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.alv-home-product-card__title {
  color: var(--alv-home-navy);
  font-size: .88rem;
  font-weight: 820;
  line-height: 1.35;
}

.alv-home-product-card__description {
  display: -webkit-box;
  margin-top: 8px;
  overflow: hidden;
  color: var(--alv-home-muted);
  font-size: .73rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.alv-home-product-card__action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 15px;
  color: var(--alv-home-green);
  font-size: .72rem;
  font-weight: 850;
}

.alv-home-product-card.is-new {
  position: relative;
}

.alv-home-product-card.is-new .alv-home-product-card__media {
  height: 205px;
}

.alv-home-product-card.is-new .alv-home-product-card__body {
  text-align: center;
}

.alv-home-product-card.is-new .alv-home-product-card__brand {
  display: none;
}

.alv-home-product-card.is-new .alv-home-product-card__action {
  justify-content: center;
}

.alv-home-product-card__badge {
  position: absolute;
  z-index: 3;
  top: 11px;
  right: 11px;
  min-height: 25px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--alv-home-green);
  color: #fff;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: 0 4px 12px rgba(0,130,0,.18);
}

.alv-home-product-skeleton {
  min-height: 360px;
  overflow: hidden;
  border: 1px solid #e7ebed;
  border-radius: 14px;
  background: #fff;
}

.alv-home-product-skeleton span,
.alv-home-product-skeleton i {
  display: block;
  background: linear-gradient(90deg, #f2f4f5 20%, #fafbfb 50%, #f2f4f5 80%);
  background-size: 200% 100%;
  animation: alv-home-shimmer 1.25s linear infinite;
}

.alv-home-product-skeleton span {
  height: 225px;
}

.alv-home-product-skeleton i {
  width: 75%;
  height: 12px;
  margin: 18px 16px 0;
  border-radius: 999px;
}

.alv-home-product-skeleton i + i {
  width: 55%;
  margin-top: 10px;
}

@keyframes alv-home-shimmer {
  to { background-position: -200% 0; }
}

/* Brands */
.alv-home-brand-marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 14px 0;
  border-radius: 16px;
  background: #fff;
  cursor: grab;
  user-select: none;
  touch-action: pan-y;
}

.alv-home-brand-marquee::before,
.alv-home-brand-marquee::after {
  content: "";
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  width: 64px;
  pointer-events: none;
}

.alv-home-brand-marquee::before {
  left: 0;
  background: linear-gradient(90deg, #fff, rgba(255,255,255,0));
}

.alv-home-brand-marquee::after {
  right: 0;
  background: linear-gradient(270deg, #fff, rgba(255,255,255,0));
}

.alv-home-brand-marquee.is-dragging {
  cursor: grabbing;
}

.alv-home-brand-track {
  display: flex;
  width: max-content;
  align-items: center;
  will-change: transform;
}

.alv-home-brand-set {
  display: flex;
  flex: none;
  align-items: center;
}

.alv-home-brand {
  display: grid;
  flex: 0 0 180px;
  width: 180px;
  height: 96px;
  margin: 0 18px;
  place-items: center;
  padding: 14px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 12px;
  background: #fff;
  text-decoration: none !important;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.alv-home-brand img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .68;
  pointer-events: none;
  transition: filter .18s ease, opacity .18s ease, transform .18s ease;
}

.alv-home-brand:hover,
.alv-home-brand:focus-visible {
  border-color: rgba(0,130,0,.38);
  box-shadow: 0 9px 22px rgba(0,130,0,.09);
  transform: translateY(-3px);
  outline: none;
}

.alv-home-brand:hover img,
.alv-home-brand:focus-visible img {
  filter: grayscale(0);
  opacity: 1;
  transform: scale(1.04);
}

.alv-home-new-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}

/* Advice CTA */
.alv-home-advice-banner {
  position: relative;
  overflow: hidden;
  min-height: 390px;
  border-radius: 18px;
  background-image: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSo2nNFnKzFRDA_w8OyWazLzgAPzXtS6YCVbDy-KJH0ZEKR3VStsLQmAh-m&s=10");
  background-position: center;
  background-size: cover;
  box-shadow: 0 12px 34px rgba(22,43,76,.08);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .55s ease, transform .55s ease;
}

.alv-home-advice-banner.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.alv-home-advice-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,110,8,.96) 0%, rgba(0,110,8,.84) 48%, rgba(0,80,0,.06) 100%);
}

.alv-home-advice-copy {
  position: relative;
  z-index: 1;
  max-width: 680px;
  padding: 64px 58px;
  color: #fff;
}

.alv-home-advice-tag {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-bottom: 17px;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 999px;
  background: rgba(255,255,255,.13);
  color: #fff;
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
  backdrop-filter: blur(5px);
}

.alv-home-advice-copy h2 {
  margin: 0 0 17px;
  color: #fff !important;
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 850;
  line-height: 1.05;
}

.alv-home-advice-copy p {
  margin: 0 0 28px;
  color: rgba(255,255,255,.92) !important;
  font-size: .98rem;
  line-height: 1.6;
}

.alv-home-advice-button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 21px;
  border-radius: 999px;
  background: #fff;
  color: var(--alv-home-green) !important;
  font-size: .78rem;
  font-weight: 850;
  text-decoration: none !important;
  transition: transform .16s ease, box-shadow .16s ease;
}

.alv-home-advice-button:hover,
.alv-home-advice-button:focus-visible {
  box-shadow: 0 9px 20px rgba(0,0,0,.18);
  transform: translateY(-2px);
  outline: none;
}

/* Map */
.alv-home-map {
  margin-top: 62px;
}

.alv-home-map-heading {
  width: min(100% - 40px, 1180px);
  margin: 0 auto 26px;
  text-align: center;
}

.alv-home-map-heading h2 {
  margin: 0;
  color: var(--alv-home-navy);
  font-size: clamp(1.65rem, 2.7vw, 2.15rem);
  font-weight: 850;
}

.alv-home-map-heading p {
  margin: 8px 0 0;
  color: var(--alv-home-muted);
  font-size: .92rem;
}

.alv-home-map-frame {
  position: relative;
  left: 50%;
  width: 100vw;
  height: 450px;
  margin-left: -50vw;
  overflow: hidden;
  background: #eef1f2;
}

.alv-home-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.alv-home-empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 32px;
  border: 1px dashed #dce3e7;
  border-radius: 14px;
  color: var(--alv-home-muted);
  text-align: center;
}

@media (max-width: 1000px) {
  .alv-home-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .alv-home-new-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .alv-home-advice-copy {
    max-width: 78%;
    padding: 54px 42px;
  }
}

@media (max-width: 700px) {
  .alv-home-section,
  .alv-home-categories {
    width: min(100% - 24px, 1180px);
    margin-top: 38px;
    margin-bottom: 38px;
  }

  .alv-home-category-viewport {
    height: 360px;
  }

  .alv-home-category-slide {
    padding: 30px 24px;
  }

  .alv-home-category-tab {
    min-height: 50px;
    padding: 0 14px;
  }

  .alv-home-section-heading {
    gap: 12px;
  }

  .alv-home-section-heading h2 {
    white-space: normal;
  }

  .alv-home-new-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .alv-home-advice-banner::before {
    background: linear-gradient(180deg, rgba(0,110,8,.95), rgba(0,95,8,.7));
  }

  .alv-home-advice-copy {
    max-width: 100%;
    padding: 42px 24px;
    text-align: center;
  }

  .alv-home-advice-button {
    justify-content: center;
    width: 100%;
  }

  .alv-home-map-frame {
    height: 360px;
  }
}

@media (max-width: 480px) {
  .alv-home-products-grid,
  .alv-home-new-grid {
    grid-template-columns: 1fr;
  }

  .alv-home-category-viewport {
    height: 330px;
  }

  .alv-home-product-card__media,
  .alv-home-product-card.is-new .alv-home-product-card__media {
    height: 245px;
  }

  .alv-home-brand {
    flex-basis: 145px;
    width: 145px;
    height: 82px;
    margin: 0 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .alv-home-category-track,
  .alv-home-product-card,
  .alv-home-product-card__image,
  .alv-home-brand,
  .alv-home-brand img,
  .alv-home-advice-banner,
  .alv-home-advice-button {
    transition: none !important;
  }

  .alv-home-product-skeleton span,
  .alv-home-product-skeleton i {
    animation: none;
  }
}


/* =========================================================
   1.4.1 — Inicio más compacto + interacción coherente
   ========================================================= */

/* El bloque sale del ancho restringido del editor y aprovecha mejor el viewport. */
.alv-home {
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: 100vw;
  margin-left: -50vw;
  overflow-x: clip;
}

.alv-home-section,
.alv-home-categories {
  width: min(calc(100% - 48px), 1240px);
}

.alv-home-categories {
  margin-top: 26px;
  margin-bottom: 42px;
}

.alv-home-section {
  margin-top: 46px;
  margin-bottom: 46px;
}

.alv-home-map {
  margin-top: 48px;
}

/* Categorías: sombreado verde animado más fino. */
.alv-home-category-slide::before {
  z-index: 0;
  background:
    linear-gradient(
      90deg,
      rgba(7,23,13,.84) 0%,
      rgba(7,23,13,.58) 40%,
      rgba(7,23,13,.14) 74%,
      rgba(7,23,13,.04) 100%
    ),
    linear-gradient(
      0deg,
      rgba(5,12,7,.74) 0%,
      rgba(5,12,7,.05) 62%
    );
}

.alv-home-category-slide::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background:
    radial-gradient(
      circle at 16% 92%,
      rgba(0,130,0,.72) 0%,
      rgba(0,130,0,.42) 22%,
      rgba(0,130,0,.12) 46%,
      transparent 68%
    );
  opacity: 0;
  transition: opacity .34s ease;
}

.alv-home-category-slide:hover::before,
.alv-home-category-slide:focus-visible::before {
  background:
    linear-gradient(
      90deg,
      rgba(7,23,13,.82) 0%,
      rgba(7,23,13,.56) 42%,
      rgba(7,23,13,.12) 76%,
      rgba(7,23,13,.03) 100%
    ),
    linear-gradient(
      0deg,
      rgba(5,12,7,.70) 0%,
      rgba(5,12,7,.04) 62%
    );
}

.alv-home-category-slide:hover::after,
.alv-home-category-slide:focus-visible::after {
  opacity: 1;
}

.alv-home-category-copy {
  z-index: 2;
}

/* "Ir a la categoría" se llena de izquierda a derecha. */
.alv-home-category-action {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: color .22s ease, border-color .22s ease, transform .22s ease;
}

.alv-home-category-action::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  background: #fff;
  transform: translateX(-102%);
  transition: transform .30s cubic-bezier(.22,.82,.28,1);
}

.alv-home-category-action:hover,
.alv-home-category-action:focus-visible {
  border-color: #fff;
  color: var(--alv-home-green);
  transform: translateY(-1px);
}

.alv-home-category-action:hover::before,
.alv-home-category-action:focus-visible::before {
  transform: translateX(0);
}

/* Tarjetas: misma lógica visual para todas las secciones. */
.alv-home-product-card__media {
  position: relative;
  height: 228px;
}

.alv-home-product-card.is-new .alv-home-product-card__media {
  height: 228px;
}

.alv-home-product-card__slides {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}

.alv-home-product-card__slide {
  position: absolute;
  inset: 7px;
  display: grid;
  place-items: center;
  overflow: hidden;
  opacity: 0;
  transform: scale(.988);
  transition: opacity .22s ease, transform .26s ease;
  pointer-events: none;
}

.alv-home-product-card__slide.is-active {
  opacity: 1;
  transform: scale(1);
}

.alv-home-product-card__image {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  opacity: 1 !important;
  transform: none !important;
}

.alv-home-product-card:hover .alv-home-product-card__image,
.alv-home-product-card:focus-within .alv-home-product-card__image {
  opacity: 1 !important;
  transform: none !important;
}

.alv-home-product-card__dots {
  position: absolute;
  z-index: 4;
  right: 10px;
  bottom: 9px;
  display: inline-flex;
  gap: 4px;
  align-items: center;
  min-height: 18px;
  padding: 5px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.90);
  box-shadow: 0 2px 8px rgba(22,43,76,.08);
  opacity: 0;
  transform: translateY(3px);
  transition: opacity .16s ease, transform .16s ease;
  pointer-events: none;
}

.alv-home-product-card__media.has-gallery:hover .alv-home-product-card__dots,
.alv-home-product-card:focus-within .alv-home-product-card__dots {
  opacity: 1;
  transform: translateY(0);
}

.alv-home-product-card__dots i {
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #c7d0d5;
  transition: width .16s ease, background-color .16s ease;
}

.alv-home-product-card__dots i.is-active {
  width: 13px;
  background: var(--alv-home-green);
}

.alv-home-product-card__title {
  transition: color .18s ease;
}

.alv-home-product-card:hover .alv-home-product-card__title,
.alv-home-product-card:focus-within .alv-home-product-card__title {
  color: var(--alv-home-green);
}

.alv-home-product-card__action {
  position: relative;
  width: fit-content;
  padding-bottom: 4px;
}

.alv-home-product-card.is-new .alv-home-product-card__action {
  align-self: center;
}

.alv-home-product-card__action::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: var(--alv-home-green);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .24s cubic-bezier(.22,.82,.28,1);
}

.alv-home-product-card:hover .alv-home-product-card__action::after,
.alv-home-product-card:focus-within .alv-home-product-card__action::after {
  transform: scaleX(1);
}

/* Marcas: caja y logo normalizados para que ninguna fuente domine. */
.alv-home-brand-marquee {
  min-height: 124px;
  padding: 17px 0;
  border: 1px solid #edf0f2;
  box-shadow: 0 7px 22px rgba(22,43,76,.035);
}

.alv-home-brand {
  flex-basis: 172px;
  width: 172px;
  height: 88px;
  margin: 0 14px;
  padding: 12px 16px;
}

.alv-home-brand img {
  width: auto !important;
  height: auto !important;
  max-width: 132px !important;
  max-height: 54px !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* Entrada suave al hacer scroll. Sólo se activa cuando JS está funcionando. */
.alv-home.has-scroll-reveal .alv-home-reveal-target {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity .48s ease var(--alv-reveal-delay, 0ms),
    transform .48s cubic-bezier(.22,.76,.28,1) var(--alv-reveal-delay, 0ms);
}

.alv-home.has-scroll-reveal .alv-home-reveal-target.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1000px) {
  .alv-home-section,
  .alv-home-categories {
    width: min(calc(100% - 32px), 1240px);
  }
}

@media (max-width: 700px) {
  .alv-home-section,
  .alv-home-categories {
    width: min(calc(100% - 22px), 1240px);
    margin-top: 32px;
    margin-bottom: 34px;
  }

  .alv-home-categories {
    margin-top: 18px;
  }

  .alv-home-brand-marquee {
    min-height: 110px;
  }

  .alv-home-brand {
    flex-basis: 148px;
    width: 148px;
    height: 78px;
    margin: 0 10px;
  }

  .alv-home-brand img {
    max-width: 112px !important;
    max-height: 46px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .alv-home.has-scroll-reveal .alv-home-reveal-target {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .alv-home-category-slide::after,
  .alv-home-category-action::before,
  .alv-home-product-card__slide,
  .alv-home-product-card__dots,
  .alv-home-product-card__action::after {
    transition: none;
  }
}


/* =========================================================
   1.4.2 — Hotfix centrado full-bleed de Inicio 2.0
   ========================================================= */

/*
 * WordPress/FSE puede sobrescribir margin-left en wrappers de bloque.
 * La técnica anterior left:50% + margin-left:-50vw quedaba entonces
 * desplazada media columna hacia la derecha.
 *
 * Centrar por transform no depende de los márgenes globales del editor.
 */
.alv-home {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: translateX(-50%) !important;
}

/*
 * Evita que un wrapper de contenido añada desplazamiento horizontal extra
 * cuando Inicio Alvport es el único bloque de la página.
 */
body.home .wp-site-blocks,
body.home main,
body.home .wp-block-post-content {
  overflow-x: clip;
}


/* =========================================================
   1.4.3 — Corrección de ancho, tarjetas, CTA y scroll reveal
   ========================================================= */

/*
 * El Inicio deja de usar 100vw puro. A zoom distinto de 100%, 100vw +
 * wrappers FSE podía hacer que el contenido pareciera cortado o demasiado
 * angosto. Ahora sale del contenedor del editor, pero mantiene una anchura
 * máxima amplia y gutters reales a ambos lados.
 */
.alv-home {
  position: relative !important;
  left: 50% !important;
  width: min(1500px, calc(100vw - 28px)) !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
  transform: translateX(-50%) !important;
}

.alv-home-section,
.alv-home-categories,
.alv-home-map-heading {
  width: 100% !important;
  max-width: none !important;
}

.alv-home-categories {
  margin-top: 22px !important;
  margin-bottom: 38px !important;
}

.alv-home-section {
  margin-top: 42px !important;
  margin-bottom: 42px !important;
}

/* El carrusel no debe recortar textos largos en pantallas amplias/zoom-out. */
.alv-home-category-copy {
  width: min(760px, 72%);
  max-width: 760px;
}

.alv-home-category-copy h2 {
  overflow-wrap: anywhere;
}

/*
 * Tarjetas uniformes: lienzo visual fijo, producto completo y con aire.
 * No se usa cover ni zoom, por lo que ninguna fotografía se recorta.
 */
.alv-home-product-card {
  display: flex;
  min-height: 352px;
}

.alv-home-product-card__link {
  width: 100%;
}

.alv-home-product-card__media,
.alv-home-product-card.is-new .alv-home-product-card__media {
  height: 220px !important;
  flex: 0 0 220px;
  background: #fff;
}

.alv-home-product-card__slide {
  inset: 12px 14px !important;
  overflow: hidden;
}

.alv-home-product-card__image {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

.alv-home-product-card__body {
  min-height: 126px;
}

.alv-home-product-card.is-new .alv-home-product-card__body {
  min-height: 118px;
  text-align: left;
}

.alv-home-product-card.is-new .alv-home-product-card__action {
  align-self: flex-start;
  justify-content: flex-start;
}

.alv-home-product-card__title {
  display: -webkit-box;
  min-height: 2.7em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* CTA: la animación pertenece a la sección, no al banner interno. */
.alv-home-advice-banner,
.alv-home-advice-banner.is-visible {
  opacity: 1 !important;
  transform: none !important;
}

/* Scroll reveal: desplazamiento un poco más legible, sin ser invasivo. */
.alv-home.has-scroll-reveal .alv-home-reveal-target {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition:
    opacity .58s ease var(--alv-reveal-delay, 0ms),
    transform .62s cubic-bezier(.22,.72,.25,1) var(--alv-reveal-delay, 0ms);
  will-change: opacity, transform;
}

.alv-home.has-scroll-reveal .alv-home-reveal-target.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* El mapa conserva el full-bleed únicamente dentro de la anchura de Inicio. */
.alv-home-map-frame {
  left: auto !important;
  width: 100% !important;
  margin-left: 0 !important;
}

@media (min-width: 1300px) {
  .alv-home-products-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
  }

  .alv-home-new-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
  }
}

@media (max-width: 1000px) {
  .alv-home {
    width: min(100%, calc(100vw - 22px)) !important;
  }

  .alv-home-category-copy {
    width: min(680px, 86%);
  }
}

@media (max-width: 700px) {
  .alv-home {
    width: min(100%, calc(100vw - 14px)) !important;
  }

  .alv-home-category-copy {
    width: 100%;
  }

  .alv-home-product-card__media,
  .alv-home-product-card.is-new .alv-home-product-card__media {
    height: 238px !important;
    flex-basis: 238px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .alv-home.has-scroll-reveal .alv-home-reveal-target {
    opacity: 1;
    transform: none;
    transition: none;
  }
}


/* =========================================================
   1.4.4 — Corrección estructural de recortes
   ========================================================= */

/*
 * Diagnóstico:
 * `left:50% + translateX(-50%)` se calculaba contra el contenedor FSE,
 * no contra el viewport. Por eso toda la portada quedaba corrida y se
 * recortaban simultáneamente títulos, primera/última tarjeta, CTA y mapa.
 *
 * Inicio 2.0 ya no usa ninguna compensación horizontal artificial.
 */
.alv-home {
  position: static !important;
  left: auto !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  overflow: visible !important;
  transform: none !important;
}

/*
 * La página Inicio sólo contiene el bloque dinámico de Alvport, así que
 * liberamos el ancho de contenido del template FSE y dejamos que sean las
 * propias secciones las que definan sus gutters.
 */
body.home .wp-site-blocks > main,
body.home main,
body.home .wp-block-post-content {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.home .wp-block-post-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/*
 * Un único sistema de ancho para toda la portada.
 * 24px totales de gutter en pantallas medias, hasta 1280px de contenido.
 */
.alv-home-section,
.alv-home-categories,
.alv-home-map-heading {
  width: min(calc(100% - 24px), 1280px) !important;
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.alv-home-categories {
  margin-top: 22px !important;
  margin-bottom: 38px !important;
}

.alv-home-section {
  margin-top: 42px !important;
  margin-bottom: 42px !important;
}

/*
 * El mapa comparte exactamente los mismos límites horizontales del resto
 * de Inicio; no usa viewport width ni márgenes negativos.
 */
.alv-home-map {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.alv-home-map-frame {
  position: relative !important;
  left: auto !important;
  width: min(calc(100% - 24px), 1280px) !important;
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Ninguna cuadrícula debe cortar la primera o última tarjeta. */
.alv-home-products-grid,
.alv-home-new-grid {
  width: 100%;
  min-width: 0;
  overflow: visible;
}

/* Tarjetas: conservamos el objeto completo dentro de un lienzo estable. */
.alv-home-product-card {
  min-width: 0;
  overflow: hidden;
}

.alv-home-product-card__media,
.alv-home-product-card.is-new .alv-home-product-card__media {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.alv-home-product-card__slide {
  inset: 10px 12px !important;
}

.alv-home-product-card__image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* El copy de categorías vuelve a respetar el padding real del slide. */
.alv-home-category-copy {
  width: min(760px, 78%) !important;
  max-width: 760px !important;
  margin: 0 !important;
}

.alv-home-category-copy h2,
.alv-home-category-copy p,
.alv-home-category-action {
  max-width: 100%;
}

/* CTA: sin posibilidad de quedar fuera del lienzo. */
.alv-home-advice-banner {
  width: 100%;
  overflow: hidden;
}

.alv-home-advice-copy {
  box-sizing: border-box;
  width: min(720px, 62%);
  max-width: 720px;
}

/* =========================================================
   Scroll reveal visible pero ligero
   ========================================================= */

.alv-home.has-scroll-reveal .alv-home-reveal-target:not(.is-visible) {
  opacity: 0 !important;
  transform: translate3d(0, 30px, 0) !important;
}

.alv-home.has-scroll-reveal .alv-home-reveal-target.is-visible {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
}

.alv-home.has-scroll-reveal .alv-home-reveal-target {
  transition:
    opacity .62s ease var(--alv-reveal-delay, 0ms),
    transform .68s cubic-bezier(.22,.72,.25,1) var(--alv-reveal-delay, 0ms) !important;
}

/* Elemento interno con una segunda micro-transición. */
.alv-home.has-scroll-reveal .alv-home-reveal-target .alv-home-section-heading,
.alv-home.has-scroll-reveal .alv-home-reveal-target .alv-home-category-copy,
.alv-home.has-scroll-reveal .alv-home-reveal-target .alv-home-advice-copy,
.alv-home.has-scroll-reveal .alv-home-reveal-target .alv-home-map-heading {
  transition: transform .68s cubic-bezier(.22,.72,.25,1), opacity .58s ease;
}

.alv-home.has-scroll-reveal .alv-home-reveal-target:not(.is-visible) .alv-home-section-heading,
.alv-home.has-scroll-reveal .alv-home-reveal-target:not(.is-visible) .alv-home-category-copy,
.alv-home.has-scroll-reveal .alv-home-reveal-target:not(.is-visible) .alv-home-advice-copy,
.alv-home.has-scroll-reveal .alv-home-reveal-target:not(.is-visible) .alv-home-map-heading {
  opacity: .2;
  transform: translateY(8px);
}

.alv-home.has-scroll-reveal .alv-home-reveal-target.is-visible .alv-home-section-heading,
.alv-home.has-scroll-reveal .alv-home-reveal-target.is-visible .alv-home-category-copy,
.alv-home.has-scroll-reveal .alv-home-reveal-target.is-visible .alv-home-advice-copy,
.alv-home.has-scroll-reveal .alv-home-reveal-target.is-visible .alv-home-map-heading {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 900px) {
  .alv-home-section,
  .alv-home-categories,
  .alv-home-map-heading,
  .alv-home-map-frame {
    width: min(calc(100% - 20px), 1280px) !important;
  }

  .alv-home-category-copy {
    width: min(680px, 88%) !important;
  }

  .alv-home-advice-copy {
    width: min(640px, 78%);
  }
}

@media (max-width: 700px) {
  .alv-home-section,
  .alv-home-categories,
  .alv-home-map-heading,
  .alv-home-map-frame {
    width: min(calc(100% - 14px), 1280px) !important;
  }

  .alv-home-category-copy,
  .alv-home-advice-copy {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .alv-home.has-scroll-reveal .alv-home-reveal-target,
  .alv-home.has-scroll-reveal .alv-home-reveal-target * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}


/* =========================================================
   1.4.5 — Equípate usa las tarjetas oficiales de Productos 2.0
   ========================================================= */

.alv-home-equip .alv-home-products-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.alv-home-equip .alv-product-card {
  min-height: 368px;
}

.alv-home-equip .alv-product-card__media {
  height: 220px;
}

.alv-home-equip .alv-product-card__image-link {
  position: relative;
  padding: 0;
  overflow: hidden;
}

.alv-home-equip-card__slides {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}

.alv-home-equip-card__slide {
  position: absolute;
  inset: 10px 12px;
  display: grid;
  place-items: center;
  overflow: hidden;
  opacity: 0;
  transform: scale(.988);
  transition: opacity .22s ease, transform .26s ease;
  pointer-events: none;
}

.alv-home-equip-card__slide.is-active {
  opacity: 1;
  transform: scale(1);
}

.alv-home-equip .alv-product-card__image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

.alv-home-equip .alv-product-card:hover .alv-product-card__image,
.alv-home-equip .alv-product-card:focus-within .alv-product-card__image {
  transform: none !important;
}

/* Galería discreta, igual que Productos Similares. */
.alv-home-equip-card__dots {
  position: absolute;
  z-index: 3;
  right: 10px;
  top: 10px;
  display: inline-flex;
  gap: 4px;
  align-items: center;
  min-height: 18px;
  padding: 5px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 2px 8px rgba(22,43,76,.08);
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity .16s ease, transform .16s ease;
  pointer-events: none;
}

.alv-home-equip .alv-product-card:hover .alv-home-equip-card__dots,
.alv-home-equip .alv-product-card:focus-within .alv-home-equip-card__dots {
  opacity: 1;
  transform: translateY(0);
}

.alv-home-equip-card__dots i {
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #c7d0d5;
  transition: width .16s ease, background-color .16s ease;
}

.alv-home-equip-card__dots i.is-active {
  width: 13px;
  background: var(--alv-home-green);
}

/* Hover solicitado: todo el título cambia a verde. */
.alv-home-equip .alv-product-card:hover .alv-product-card__title a,
.alv-home-equip .alv-product-card:focus-within .alv-product-card__title a {
  color: var(--alv-home-green) !important;
}

/* Línea animada bajo Ver producto, conservando la flecha del componente oficial. */
.alv-home-equip .alv-product-card__details {
  position: relative;
  width: fit-content;
  padding-bottom: 4px;
}

.alv-home-equip .alv-product-card__details::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: var(--alv-home-green);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .24s cubic-bezier(.22,.82,.28,1);
}

.alv-home-equip .alv-product-card:hover .alv-product-card__details::after,
.alv-home-equip .alv-product-card:focus-within .alv-product-card__details::after {
  transform: scaleX(1);
}

/* El botón Vista rápida permanece por encima de la galería. */
.alv-home-equip .alv-product-card__quick {
  z-index: 5;
}

@media (max-width: 1000px) {
  .alv-home-equip .alv-home-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .alv-home-equip .alv-home-products-grid {
    grid-template-columns: 1fr;
  }

  .alv-home-equip .alv-product-card__media {
    height: 240px;
  }

  .alv-home-equip-card__dots {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .alv-home-equip-card__slide,
  .alv-home-equip-card__dots,
  .alv-home-equip-card__dots i,
  .alv-home-equip .alv-product-card__details::after {
    transition: none;
  }
}


/* =========================================================
   1.4.6 — Equípate: escala visual equivalente a Nuevos ingresos
   ========================================================= */

/*
 * El problema no era ya el archivo fuente: las tarjetas de Equípate son
 * más anchas (4 columnas) y la regla width/height:100% hacía que cualquier
 * producto aprovechara TODO ese lienzo. Por eso platos, carros y utensilios
 * se veían sobredimensionados aunque técnicamente no se recortaran.
 *
 * Centramos la imagen con tamaño máximo físico, como se percibe en
 * Nuevos ingresos, sin alterar el tamaño de las tarjetas ni la galería.
 */
.alv-home-equip .alv-home-equip-card__slide {
  inset: 8px 10px !important;
  overflow: hidden;
}

.alv-home-equip .alv-product-card__image {
  width: auto !important;
  height: auto !important;
  max-width: min(84%, 238px) !important;
  max-height: 186px !important;
  margin: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Productos particularmente verticales siguen usando la altura disponible
   pero nunca crecen hasta tocar los límites visuales de la tarjeta. */
.alv-home-equip .alv-home-equip-card__slide {
  align-items: center;
  justify-items: center;
}

/* Un poco más de aire arriba/abajo, igualando la lectura de Nuevos ingresos. */
.alv-home-equip .alv-product-card__media {
  padding: 8px 0;
  background: linear-gradient(180deg, #fff 0%, #fdfefe 100%);
}

@media (max-width: 1000px) {
  .alv-home-equip .alv-product-card__image {
    max-width: min(86%, 250px) !important;
    max-height: 194px !important;
  }
}

@media (max-width: 560px) {
  .alv-home-equip .alv-product-card__image {
    max-width: min(88%, 280px) !important;
    max-height: 210px !important;
  }
}
