:root {
  --an-black: #0b0b0b;
  --an-white: #fff;
  --an-ink: #161616;
  --an-muted: #707070;
  --an-surface: #f5f4f1;
  --an-line: #dededb;
  --an-container: 1440px;
  --an-gutter: clamp(16px, 2.1vw, 32px);
  --an-section-space: clamp(58px, 7vw, 108px);
  --an-title-xl: clamp(34px, 5vw, 72px);
  --an-title-lg: clamp(25px, 3vw, 42px);
  --an-title-md: clamp(20px, 2vw, 28px);
  --an-text-sm: 12px;
  --an-ease: cubic-bezier(.22, 1, .36, 1);
  --an-fast: 220ms;
  --an-slow: 700ms;
}

html { scroll-behavior: smooth; }

body {
  color: var(--an-ink);
  background: var(--an-white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea { font-family: inherit; }

::selection { color: #fff; background: #111; }

/* Header: más preciso y con transición tipo Represent */
.head-main {
  z-index: 1001;
  transition: background-color .35s var(--an-ease), box-shadow .35s var(--an-ease), transform .35s var(--an-ease) !important;
}

.head-main .container-fluid {
  padding-right: var(--an-gutter);
  padding-left: var(--an-gutter);
}

.head-main .nav-list-link,
.head-main .region-switch,
.head-main .utility-name {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.head-main .nav-list-link {
  position: relative;
  padding-bottom: 5px;
}

.head-main .nav-list-link::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  content: "";
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .35s var(--an-ease);
}

.head-main .nav-list-link:hover::after,
.head-main .nav-list-link.selected::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.head-main.an-head-scrolled {
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.09);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.region-switch--header {
  border: 1px solid currentColor !important;
  border-radius: 999px !important;
  transition: color var(--an-fast), background var(--an-fast) !important;
}

.region-switch--header:hover { color: #fff !important; background: #111 !important; }

/* Jerarquía común para títulos del Home y módulos agregados */
.template-home .section-title,
.template-home .an-product-social__title,
.template-home .anhelo-fam-title,
.template-home .an-reels-title,
.template-home #revie-tn-widget .topTest {
  margin: 0;
  color: var(--an-ink);
  font-family: inherit;
  font-size: var(--an-title-md) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: -.03em !important;
  text-align: left;
  text-transform: uppercase;
}

.template-home .section-featured-home,
.template-home .section-testimonials-home,
.template-home .an-product-social,
.template-home .anhelo-home-reviews {
  scroll-margin-top: 110px;
}

/* Botones y enlaces: un solo sistema */
.btn,
.btn-primary,
.btn-default,
.icon-Testimoniales,
.anhelo-home-reviews .icon-Testimoniales {
  min-height: 42px;
  border-radius: 0 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
  transition: color var(--an-fast), background-color var(--an-fast), border-color var(--an-fast), transform var(--an-fast) !important;
}

.btn-primary:hover,
.icon-Testimoniales:hover { transform: translateY(-1px); }

/* Producto: tarjetas más editoriales y consistentes */
.item-product .item-image {
  overflow: hidden;
  background: #f5f4f2;
}

.item-product .item-image img {
  transition: transform .75s var(--an-ease), opacity .4s var(--an-ease) !important;
}

@media (hover:hover) and (pointer:fine) {
  .item-product:hover .item-image-featured { transform: scale(1.018); }
}

.item-product .item-description { padding-top: 14px; }

.item-product .item-name {
  margin-bottom: 8px !important;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .015em;
  text-transform: uppercase;
}

.item-product .item-price,
.item-product .price-compare {
  font-size: 12px;
  line-height: 1.4;
}

/* Footer con mayor separación y jerarquía */
.js-footer {
  padding-top: clamp(58px, 7vw, 96px);
  border-top: 1px solid var(--an-line);
}

.js-footer .container-fluid {
  max-width: var(--an-container);
  padding-right: var(--an-gutter);
  padding-left: var(--an-gutter);
}

.js-footer .subtitle {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.js-footer a { transition: opacity var(--an-fast); }
.js-footer a:hover { opacity: .55; }

/* Animaciones globales discretas */
.an-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--an-slow) var(--an-ease), transform var(--an-slow) var(--an-ease);
}

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

/* Selector inicial de región */
.an-region-gate {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(7,7,7,.76);
  opacity: 0;
  visibility: hidden;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: opacity .4s var(--an-ease), visibility .4s;
}

.an-region-gate.is-open { opacity: 1; visibility: visible; }

.an-region-gate__dialog {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, 46%) 1fr;
  width: min(920px, 96vw);
  min-height: 570px;
  overflow: hidden;
  background: #fff;
  transform: translateY(18px) scale(.985);
  transition: transform .55s var(--an-ease);
}

.an-region-gate.is-open .an-region-gate__dialog { transform: none; }

.an-region-gate__visual { position: relative; min-height: 570px; background: #deddd9; }
.an-region-gate__visual::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.35)); }
.an-region-gate__visual img { display:block; width:100%; height:100%; object-fit:cover; }
.an-region-gate__visual-label { position:absolute; z-index:1; right:24px; bottom:22px; left:24px; margin:0; color:#fff; font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }

.an-region-gate__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(36px, 6vw, 72px);
}

.an-region-gate__eyebrow { margin:0 0 18px; font-size:9px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.an-region-gate__title { margin:0 0 12px; font-size:clamp(30px, 4vw, 48px); font-weight:700; line-height:.98; letter-spacing:-.045em; text-transform:uppercase; }
.an-region-gate__intro { max-width:410px; margin:0 0 32px; color:var(--an-muted); font-size:13px; line-height:1.55; }
.an-region-gate__choices { display:grid; gap:10px; }
.an-region-gate__choice { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:68px; padding:14px 17px; border:1px solid var(--an-line); color:#111; background:#fff; text-decoration:none; transition:color var(--an-fast),background var(--an-fast),border-color var(--an-fast); }
.an-region-gate__choice:hover { color:#fff; background:#111; border-color:#111; }
.an-region-gate__choice strong { display:block; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.an-region-gate__choice small { display:block; margin-top:3px; color:var(--an-muted); font-size:9px; }
.an-region-gate__choice:hover small { color:rgba(255,255,255,.66); }
.an-region-gate__arrow { font-size:19px; }
.an-region-gate__close { position:absolute; z-index:4; top:14px; right:14px; display:flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0; border:0; color:#111; background:#fff; font-size:22px; cursor:pointer; }
.an-region-lock { overflow:hidden !important; }

@media (max-width: 767px) {
  :root { --an-section-space: 56px; }
  .an-region-gate { align-items:flex-end; padding:0; }
  .an-region-gate__dialog { display:block; width:100%; max-height:94vh; min-height:0; overflow-y:auto; }
  .an-region-gate__visual { min-height:34vh; max-height:330px; }
  .an-region-gate__content { padding:31px 20px 24px; }
  .an-region-gate__title { font-size:32px; }
  .an-region-gate__intro { margin-bottom:23px; font-size:12px; }
  .an-region-gate__choice { min-height:62px; }
  .item-product .item-description { padding:11px 10px 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .an-reveal { opacity:1; transform:none; }
}
