/* =============================================================================
   El Mirasol — Textile Theme v41 · Editorial Ivory Loom (single theme)
   woven-runner-reference.png = COLOR REFERENCE ONLY (never tiled as photo).
   Design: warm ivory canvas · whisper diamond weave · champagne selvedge thread.
   Type: Cormorant display · Dancing Script warmth · Jakarta body · Montserrat UI.
   ============================================================================= */

body.site-huipil {
  /* Canvas — bright ivory loom */
  --tex-cream: #faf6ee;
  --tex-cream-light: #fffef9;
  --tex-linen: #f2ebe0;
  --tex-wood: #3d2618;
  --tex-wood-mid: #6b4e3a;
  --tex-ink: #261c16;
  --tex-ink-soft: #5c4638;

  /* Accent jewels — one color at a time, never rainbow bands */
  --tex-navy: #1e3050;
  --tex-navy-deep: #101c30;
  --tex-teal: #1a6b72;
  --tex-red: #c8322e;
  --tex-red-deep: #a82824;
  --tex-red-bright: #d9443a;
  --tex-magenta: #9a3274;
  --tex-orange: #c85a30;
  --tex-yellow: #d4b040;
  --tex-green: #2a6b52;
  --tex-gold: #c9a04a;
  --tex-gold-pale: #f5e6bc;
  --tex-gold-light: #e8c878;

  /* Typography scale */
  --tex-font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --tex-font-script: 'Dancing Script', 'Pinyon Script', cursive;
  --tex-font-body: 'Plus Jakarta Sans', system-ui, sans-serif;
  --tex-font-ui: Montserrat, system-ui, sans-serif;

  /* Photo is palette reference only — never used as a background tile */
  --tex-cloth-photo: none;

  /* Oaxacan red craft — serape · zigzag · greca · flores (red + gold only) */
  --tex-oax-serape: linear-gradient(
    90deg,
    var(--tex-red-deep) 0%,
    var(--tex-red) 38%,
    var(--tex-gold) 72%,
    var(--tex-gold-light) 100%
  );
  --tex-oax-zigzag-h: url("data:image/svg+xml,%3Csvg width='72' height='9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 4.5 L9 1.5 L18 4.5 L27 1.5 L36 4.5 L45 1.5 L54 4.5 L63 1.5 L72 4.5' fill='none' stroke='%23c9a04a' stroke-width='1.1' stroke-opacity='0.82'/%3E%3Cpath d='M0 7 L9 4 L18 7 L27 4 L36 7 L45 4 L54 7 L63 4 L72 7' fill='none' stroke='%23c8322e' stroke-width='0.95' stroke-opacity='0.52'/%3E%3C/svg%3E");
  --tex-oax-zigzag-v: url("data:image/svg+xml,%3Csvg width='9' height='72' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 0 L1.5 9 L4.5 18 L1.5 27 L4.5 36 L1.5 45 L4.5 54 L1.5 63 L4.5 72' fill='none' stroke='%23c9a04a' stroke-width='1' stroke-opacity='0.65'/%3E%3Cpath d='M7 0 L4 9 L7 18 L4 27 L7 36 L4 45 L7 54 L4 63 L7 72' fill='none' stroke='%23c8322e' stroke-width='0.8' stroke-opacity='0.38'/%3E%3C/svg%3E");
  --tex-oax-flores: url("data:image/svg+xml,%3Csvg width='88' height='32' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='16' r='2.2' fill='%23c8322e' fill-opacity='0.1'/%3E%3Ccircle cx='30' cy='11' r='1.5' fill='%23c9a04a' fill-opacity='0.12'/%3E%3Ccircle cx='48' cy='19' r='1.9' fill='%23c8322e' fill-opacity='0.09'/%3E%3Ccircle cx='66' cy='12' r='1.4' fill='%23c9a04a' fill-opacity='0.11'/%3E%3Ccircle cx='80' cy='17' r='1.6' fill='%23c8322e' fill-opacity='0.085'/%3E%3Cpath d='M12 16 Q21 10 30 11 T48 19 T66 12 T80 17' fill='none' stroke='%23c9a04a' stroke-opacity='0.1' stroke-width='1'/%3E%3C/svg%3E");
  --tex-oax-greca: url("data:image/svg+xml,%3Csvg width='48' height='48' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='48' height='48' fill='%23fffcf7'/%3E%3Cpath d='M24 4 L44 24 L24 44 L4 24 Z' fill='none' stroke='%23c8322e' stroke-width='0.85' opacity='0.16'/%3E%3Cpath d='M24 10 L38 24 L24 38 L10 24 Z' fill='%23c8322e' fill-opacity='0.07'/%3E%3Cpath d='M24 16 L32 24 L24 32 L16 24 Z' fill='none' stroke='%23c9a04a' stroke-width='0.7' opacity='0.14'/%3E%3C/svg%3E");
  --tex-oax-star: url("data:image/svg+xml,%3Csvg width='120' height='120' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M60 6l8 19L86 16l-3 25 23 6-18 17L93 90l-22-8L60 103l-14-21L24 90l12-26L18 47l23-6L34 16l20 8z' fill='%23c8322e' fill-opacity='0.08'/%3E%3Cpath d='M60 22l4.8 11L76 28l-8 8 2.8 20-14-8L52 64l3-20-10-8 11-1z' fill='%23c9a04a' fill-opacity='0.09'/%3E%3C/svg%3E");

  /* Accent lines — Oaxacan serape thread */
  --tex-accent-bar: var(--tex-oax-serape);
  --tex-accent-line: linear-gradient(
    90deg,
    transparent 0%,
    var(--tex-red-deep) 14%,
    var(--tex-red) 38%,
    var(--tex-gold) 62%,
    var(--tex-gold-light) 86%,
    transparent 100%
  );

  /* Neutralize legacy rainbow --textile from styles.css */
  --textile: linear-gradient(90deg, var(--tex-gold), var(--tex-gold));

  /* SVG diamond field — crisp ivory weave */
  --tex-weave-svg: url("data:image/svg+xml,%3Csvg width='64' height='64' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='64' height='64' fill='%23fffcf7'/%3E%3Cpath d='M32 8 L56 32 L32 56 L8 32 Z' fill='none' stroke='%233d2618' stroke-width='0.75' opacity='0.13'/%3E%3Cpath d='M32 14 L50 32 L32 50 L14 32 Z' fill='none' stroke='%23c8322e' stroke-width='0.6' opacity='0.1'/%3E%3Cpath d='M32 20 L44 32 L32 44 L20 32 Z' fill='none' stroke='%23c9a04a' stroke-width='0.55' opacity='0.12'/%3E%3Cpath d='M32 26 L38 32 L32 38 L26 32 Z' fill='%23c8322e' fill-opacity='0.06'/%3E%3Cpath d='M0 32 H64 M32 0 V64' stroke='%23c9a04a' stroke-width='0.4' opacity='0.1'/%3E%3C/svg%3E");

  --tex-weave: var(--tex-weave-svg);
  --tex-oax-stack: var(--tex-oax-flores), var(--tex-oax-greca), var(--tex-weave-svg);

  --tex-radius-sm: 10px;
  --tex-radius-md: 16px;
  --tex-radius-lg: 22px;
  --tex-shadow-soft: 0 2px 16px rgba(38, 28, 22, 0.06), 0 8px 32px rgba(38, 28, 22, 0.04);
  --tex-shadow-lift: 0 8px 32px rgba(38, 28, 22, 0.08), 0 20px 56px rgba(38, 28, 22, 0.06);
  --tex-shadow-chrome: 0 2px 16px rgba(16, 28, 48, 0.28);
  --tex-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tex-trim-h: 15px;

  /* Layout rhythm */
  --tex-content-max: 1100px;
  --tex-prose-max: 40rem;

  /* Selvedge button system */
  --btn-radius: 8px;
  --btn-radius-pill: 999px;
  --btn-h: 44px;
  --btn-h-sm: 40px;
  --btn-h-xs: 32px;
  --btn-pad-x: 1.15rem;
  --btn-pad-x-sm: 0.9rem;
  --btn-font: var(--tex-font-ui);
  --btn-shadow: 0 1px 2px rgba(38, 28, 22, 0.06), 0 4px 14px rgba(38, 28, 22, 0.08);
  --btn-shadow-hover: 0 2px 6px rgba(38, 28, 22, 0.08), 0 8px 22px rgba(38, 28, 22, 0.1);
  --btn-thread: inset 0 -2px 0 var(--tex-gold);

  --huipil-red: var(--tex-red);
  --huipil-red-deep: var(--tex-red-deep);
  --huipil-cream: var(--tex-cream);
  --huipil-cream-light: var(--tex-cream-light);
  --huipil-ink: var(--tex-ink);

  --oax-red: var(--tex-red);
  --oax-red-deep: var(--tex-red-deep);
  --oax-gold: var(--tex-gold);
  --oax-gold-light: var(--tex-gold-light);
  --oax-gold-pale: #f2e6cc;
  --oax-ivory: var(--tex-cream-light);
  --oax-pearl: var(--tex-cream);

  --fire-red: var(--tex-red);
  --fire-red-deep: var(--tex-red-deep);
  --coast-sea: var(--tex-navy);
  --coast-sea-mid: #2a4f7a;

  scroll-behavior: smooth;
  font-family: var(--tex-font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--tex-ink);
  -webkit-font-smoothing: antialiased;
}

body.site-huipil::selection {
  background: rgba(212, 56, 50, 0.22);
  color: var(--tex-ink);
}

/* ── Weave surface mixin ── */
body.site-huipil .tex-weave-fill {
  background-image: var(--tex-weave);
  background-size: 64px 64px;
  background-position: center;
  background-repeat: repeat;
}

/* ── Selvedge trim (fixed under header) ── */
body.site-huipil .tex-serape-trim {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--tex-linen);
  box-shadow: 0 1px 0 rgba(196, 160, 85, 0.28), 0 4px 14px rgba(38, 28, 22, 0.06);
  pointer-events: none;
}

body.site-huipil.has-topbar .tex-serape-trim {
  position: fixed !important;
  top: calc(var(--topbar-stack) + var(--header-h)) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 199 !important;
}

body.site-huipil .tex-serape-trim__line {
  display: block !important;
  width: 100%;
  height: 3px;
  background: var(--tex-oax-serape);
  box-shadow: 0 1px 0 rgba(255, 252, 247, 0.35) inset;
}

body.site-huipil .tex-serape-trim__weave {
  display: block;
  width: 100%;
  height: 9px;
  background-color: var(--tex-linen);
  background-image:
    var(--tex-oax-zigzag-h),
    var(--tex-oax-flores),
    var(--tex-weave-svg);
  background-size: 72px 9px, 88px 32px, 40px 40px;
  background-position: center, center, center;
  background-repeat: repeat-x, repeat, repeat;
  opacity: 0.92;
  border-top: 1px solid rgba(200, 50, 46, 0.1);
  border-bottom: 1px solid rgba(61, 38, 24, 0.07);
  box-shadow: inset 0 1px 0 rgba(255, 252, 247, 0.75);
}

body.site-huipil.has-topbar .header + .tex-serape-trim + .hero,
body.site-huipil.has-topbar:not(.menu-page) .hero {
  padding-top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + 0.35rem) !important;
  margin-top: 0 !important;
}

body.site-huipil.has-topbar .header + .tex-serape-trim + .menu-shell,
body.site-huipil.has-topbar .menu-online-shell {
  padding-top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + 0.2rem) !important;
}

body.site-huipil.pay-page .tex-serape-trim {
  position: relative !important;
  top: auto !important;
}

/* ── Fixed chrome ── */
body.site-huipil .social-topbar,
body.site-huipil .header {
  isolation: isolate;
}

body.site-huipil .social-topbar {
  position: fixed !important;
  z-index: 210 !important;
}

body.site-huipil .header {
  position: fixed !important;
  z-index: 200 !important;
}

body.site-huipil .skip-link {
  position: absolute !important;
  z-index: 999 !important;
}

/* ── Page canvas: ivory + whisper weave ── */
body.site-huipil.pattern,
body.site-huipil.menu-page.pattern,
body.site-huipil.pay-page.pattern {
  background-color: var(--tex-cream) !important;
  background-image:
    radial-gradient(ellipse 120% 80% at 50% -20%, rgba(251, 249, 244, 0.9) 0%, transparent 55%),
    linear-gradient(180deg, rgba(251, 249, 244, 0.97) 0%, rgba(244, 239, 228, 0.99) 100%),
    var(--tex-weave-svg) !important;
  background-size: 100% 100%, 100% 100%, 80px 80px !important;
  background-repeat: no-repeat, no-repeat, repeat !important;
  color: var(--tex-ink);
}

body.site-huipil.pattern::before,
body.site-huipil.pattern::after,
body.site-huipil.menu-page.pattern::before,
body.site-huipil.menu-page.pattern::after,
body.site-huipil.pay-page.pattern::before,
body.site-huipil.pay-page.pattern::after {
  display: none !important;
  content: none !important;
}

/* ── Topbar: SOLID — no see-through ── */
body.site-huipil .social-topbar {
  background-color: var(--tex-navy-deep) !important;
  background-image: linear-gradient(
    90deg,
    var(--tex-navy-deep) 0%,
    var(--tex-navy) 72%,
    #243a5c 100%
  ) !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: var(--tex-shadow-chrome) !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15) !important;
}

body.site-huipil .social-topbar::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.06) 0%, transparent 40%, rgba(0, 0, 0, 0.08) 100%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

body.site-huipil .social-topbar::after {
  display: block !important;
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 3px !important;
  background: var(--tex-oax-serape) !important;
  box-shadow: 0 1px 0 rgba(255, 252, 247, 0.2) inset !important;
  z-index: 1 !important;
}

body.site-huipil .social-topbar a,
body.site-huipil .social-topbar span {
  position: relative !important;
  z-index: 2 !important;
}

body.site-huipil .social-topbar a {
  background: transparent !important;
  color: #fff !important;
  border: none !important;
  padding: 0.3rem 0.65rem !important;
  font-weight: 600 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.03em !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35) !important;
  opacity: 1 !important;
}

body.site-huipil .social-topbar a svg {
  color: #fff !important;
  opacity: 1 !important;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.25));
}

body.site-huipil .social-topbar a:hover {
  color: var(--tex-gold-pale) !important;
  text-decoration: none !important;
}

/* ── Header: solid linen glass ── */
body.site-huipil .header {
  background-color: var(--tex-cream-light) !important;
  background-image: linear-gradient(180deg, #fffefb 0%, var(--tex-cream-light) 100%) !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.06) !important;
  box-shadow: 0 1px 0 rgba(196, 160, 85, 0.18), 0 6px 20px rgba(38, 28, 22, 0.05) !important;
}

body.site-huipil .header::before,
body.site-huipil .header::after {
  display: none !important;
}

body.site-huipil .logo-img--lockup {
  box-shadow:
    0 0 0 2px #fff,
    0 0 0 3px var(--tex-gold),
    0 4px 16px rgba(38, 28, 22, 0.14) !important;
}

body.site-huipil .logo__title {
  font-family: var(--tex-font-display) !important;
  color: var(--tex-red-deep) !important;
  letter-spacing: 0.04em;
  font-weight: 700 !important;
  font-size: 1.45rem !important;
}

body.site-huipil .header .logo__sub {
  color: var(--tex-gold) !important;
  letter-spacing: 0.2em !important;
  font-weight: 600 !important;
}

body.site-huipil .header .nav a:not(.nav-menu-cta) {
  color: var(--tex-ink-soft) !important;
  font-weight: 600 !important;
  position: relative;
}

body.site-huipil .header .nav a:not(.nav-menu-cta).active::after,
body.site-huipil .header .nav a:not(.nav-menu-cta):hover::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 3px;
  background: var(--tex-accent-bar);
  border-radius: 2px;
}

body.site-huipil .header .nav a.nav-menu-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 0.5rem 1.2rem !important;
  border-radius: 999px !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.07em !important;
}

/* ── Hero · storefront photo + readable type ── */
body.site-huipil .hero-rotator {
  position: absolute;
  inset: 0;
  z-index: 0;
}

body.site-huipil .hero-rotator__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1.2s ease, transform 6s ease;
}

body.site-huipil .hero-rotator__slide.is-active {
  opacity: 1;
  transform: scale(1);
}

body.site-huipil .hero--single .hero-rotator {
  background-color: var(--tex-navy-deep);
  overflow: hidden;
}

body.site-huipil .hero--single .hero-rotator__slide {
  transform: scale(1) !important;
  transition: none !important;
  top: 0 !important;
  left: -2% !important;
  right: -2% !important;
  bottom: -5% !important;
  background-size: cover !important;
  background-position: center 3% !important;
  background-repeat: no-repeat !important;
}

@media (max-width: 768px) {
  body.site-huipil .hero--single .hero-rotator__slide {
    left: -2% !important;
    right: -2% !important;
    bottom: -4% !important;
    background-position: center 5% !important;
  }
}

@media (min-width: 1200px) {
  body.site-huipil .hero--single .hero-rotator__slide {
    left: -3% !important;
    right: -3% !important;
    bottom: -6% !important;
    background-position: center 2% !important;
  }
}

body.site-huipil .hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(ellipse 62% 52% at 50% 46%, rgba(16, 28, 48, 0.32) 0%, rgba(16, 28, 48, 0.1) 50%, transparent 74%),
    linear-gradient(90deg, rgba(16, 28, 48, 0.28) 0%, transparent 24%, transparent 76%, rgba(16, 28, 48, 0.28) 100%),
    linear-gradient(180deg, rgba(38, 28, 22, 0.08) 0%, rgba(38, 28, 22, 0.2) 55%, rgba(168, 40, 36, 0.3) 100%) !important;
}

body.site-huipil:not(.menu-page) .hero {
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  overflow: hidden !important;
}

body.site-huipil .hero-content {
  position: relative;
  z-index: 4;
  width: 100% !important;
  max-width: min(36rem, 72vw) !important;
  margin: 0 auto !important;
  padding-left: clamp(1rem, 5vw, 3rem) !important;
  padding-right: clamp(1rem, 5vw, 3rem) !important;
  text-align: center !important;
}

body.site-huipil .hero-eyebrow {
  display: block !important;
  font-family: var(--tex-font-script) !important;
  font-size: clamp(1.45rem, 4vw, 2.15rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  color: var(--tex-gold-pale) !important;
  text-shadow:
    0 2px 14px rgba(16, 28, 48, 0.5),
    0 1px 6px rgba(38, 28, 22, 0.4) !important;
  margin-bottom: 0.25rem !important;
  line-height: 1.15 !important;
}

body.site-huipil .oax-craft-band {
  display: none !important;
}

body.site-huipil .hero::before,
body.site-huipil .hero::after,
body.site-huipil .section-title::after,
body.site-huipil .menu-section-title::after {
  display: none !important;
  content: none !important;
}

/* ── Kitchen ribbon — editorial bar ── */
body.site-huipil .feat-ribbon {
  position: relative;
  background: var(--tex-navy-deep) !important;
  border-bottom: none !important;
  border-top: 1px solid rgba(196, 160, 85, 0.22) !important;
  box-shadow: 0 4px 18px rgba(16, 28, 48, 0.14) !important;
  overflow: hidden;
}

body.site-huipil .feat-ribbon::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: var(--tex-weave-svg) !important;
  background-size: 48px 48px !important;
  opacity: 0.07 !important;
  pointer-events: none !important;
}

body.site-huipil .feat-ribbon::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  height: auto !important;
  background: linear-gradient(180deg, var(--tex-gold) 0%, var(--tex-red-deep) 100%) !important;
}

body.site-huipil .feat-ribbon__inner {
  position: relative;
  z-index: 1;
}

body.site-huipil .feat-ribbon__dot {
  background: var(--tex-gold-pale) !important;
  box-shadow: 0 0 8px rgba(240, 221, 176, 0.6) !important;
}

/* ── Stats ── */
body.site-huipil .feat-stats {
  position: relative;
  padding: 0.85rem 0.55rem !important;
  background: var(--tex-linen) !important;
  background-image: var(--tex-weave-svg) !important;
  background-size: 48px 48px !important;
  gap: 0.55rem !important;
  border-top: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.1) !important;
}

body.site-huipil .feat-stats::before {
  display: none !important;
}

body.site-huipil .feat-stats::after {
  display: none !important;
}

body.site-huipil .feat-stat {
  position: relative;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-radius: var(--tex-radius-sm) !important;
  overflow: hidden;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil .feat-stat::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--tex-accent-line);
}

body.site-huipil .feat-stat__num {
  color: var(--tex-red-deep) !important;
}

body.site-huipil .feat-stat__label {
  color: var(--tex-wood-mid) !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.66rem !important;
}

/* ── Section ornaments ── */
body.site-huipil .favorites-showcase::before,
body.site-huipil .story-spin-section::before,
body.site-huipil .reviews-section::before,
body.site-huipil .visit-section::before {
  content: '';
  display: block;
  width: min(64%, 480px);
  height: 1px;
  margin: 0 auto 1.5rem;
  background: linear-gradient(90deg, transparent, rgba(196, 160, 85, 0.55) 18%, rgba(196, 160, 85, 0.55) 82%, transparent);
  border-radius: 1px;
  box-shadow: none;
  position: relative;
}



body.site-huipil h1,
body.site-huipil h2,
body.site-huipil .section-title,
body.site-huipil .menu-section-title {
  font-family: var(--tex-font-display);
  color: var(--tex-red-deep);
}

body.site-huipil h2 em {
  color: var(--tex-gold) !important;
  font-style: normal;
}

/* ── Signature cards (photo layout — was in removed coastal-theme.css) ── */
body.site-huipil .favorites-showcase {
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1rem, 4vw, 2rem) !important;
}

body.site-huipil .favorites-showcase__head {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 1.75rem;
}

body.site-huipil .favorites-showcase__head p {
  color: var(--tex-ink-soft) !important;
  margin-top: 0.45rem;
}

body.site-huipil .fav-cards {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1rem !important;
  max-width: 1100px;
  margin: 0 auto;
}

body.site-huipil .fav-card {
  position: relative;
  border-radius: var(--tex-radius-md) !important;
  box-shadow: var(--tex-shadow-soft) !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  overflow: hidden;
  min-height: 280px !important;
  display: flex !important;
  align-items: flex-end !important;
}

body.site-huipil .fav-card__bg {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  transition: transform 0.5s ease;
}

body.site-huipil .fav-card:hover .fav-card__bg {
  transform: scale(1.04);
}

body.site-huipil .fav-card__overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(
    0deg,
    rgba(38, 28, 22, 0.94) 0%,
    rgba(38, 28, 22, 0.68) 42%,
    rgba(38, 28, 22, 0.22) 72%,
    transparent 100%
  ) !important;
}

body.site-huipil .fav-card__body {
  position: relative !important;
  z-index: 2 !important;
  padding: 1.35rem !important;
  color: #fff !important;
  width: 100% !important;
}

body.site-huipil .fav-card::before {
  display: none;
}

body.site-huipil .fav-card__tag {
  background: rgba(251, 249, 244, 0.94) !important;
  color: var(--tex-red-deep) !important;
  border: 1px solid rgba(196, 160, 85, 0.4) !important;
  letter-spacing: 0.12em !important;
  font-family: var(--tex-font-ui) !important;
  font-size: 0.62rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 0.28rem 0.55rem !important;
  border-radius: 100px !important;
}

body.site-huipil .fav-card h3 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 1.55rem !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  margin-bottom: 0.3rem !important;
  color: #fff !important;
}

body.site-huipil .fav-card p {
  font-size: 0.88rem !important;
  line-height: 1.5 !important;
  color: rgba(255, 252, 247, 0.92) !important;
}

body.site-huipil .fav-card__trending {
  display: none !important;
}

body.site-huipil .favorites-showcase__head h2 {
  color: var(--tex-red-deep) !important;
}

@media (max-width: 900px) {
  body.site-huipil .fav-cards {
    grid-template-columns: 1fr !important;
  }
}

/* ── Story + Dish Roulette ── */
body.site-huipil .story-spin-section {
  padding-top: clamp(1.75rem, 3.5vw, 2.75rem) !important;
  padding-bottom: clamp(1.75rem, 3.5vw, 2.75rem) !important;
}

body.site-huipil .story-spin__frame {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr) !important;
  gap: 0 !important;
  padding: 0 !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.12) !important;
  border-radius: var(--tex-radius-md) !important;
  box-shadow: var(--tex-shadow-lift) !important;
}

body.site-huipil .story-spin__frame::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  height: auto !important;
  background: linear-gradient(180deg, var(--tex-gold) 0%, var(--tex-red-deep) 100%) !important;
  z-index: 3 !important;
}

body.site-huipil .story-spin__story {
  border-right: 1px solid rgba(61, 38, 24, 0.1) !important;
  padding: clamp(1.35rem, 2.5vw, 1.85rem) !important;
}

body.site-huipil .fiesta-card--roulette-hero {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 0 !important;
  background:
    var(--tex-weave-svg),
    linear-gradient(165deg, var(--tex-cream-light) 0%, var(--tex-linen) 100%) !important;
  background-size: 56px 56px, 100% 100% !important;
  border: none !important;
  box-shadow: none !important;
  min-height: 100% !important;
  overflow: visible !important;
}

/* Label as header — no absolute overlap on spin button */
body.site-huipil .story-spin__roulette-label {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 2 !important;
  flex-shrink: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0.85rem 1.1rem 0.75rem !important;
  text-align: center !important;
  background: var(--tex-cream-light) !important;
  border: none !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.site-huipil .story-spin__roulette-label::before {
  display: none;
}

body.site-huipil .story-spin__roulette-eyebrow {
  display: block !important;
  color: var(--tex-teal) !important;
  font-size: 0.62rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

body.site-huipil .story-spin__roulette-title {
  color: var(--tex-red-deep) !important;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(1.35rem, 2.4vw, 1.55rem) !important;
  line-height: 1.05 !important;
  margin: 0.12rem 0 0 !important;
}

body.site-huipil .story-spin__roulette-hint {
  color: var(--tex-ink-soft) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  margin: 0.2rem 0 0 !important;
}

body.site-huipil .story-spin__roulette-stage {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 !important;
  gap: clamp(1rem, 2.2vw, 1.65rem) !important;
  min-height: clamp(280px, 32vw, 360px) !important;
  padding: clamp(1.15rem, 2.2vw, 1.55rem) clamp(1rem, 2vw, 1.35rem) !important;
}

body.site-huipil .story-spin__roulette-wheel {
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.site-huipil .story-spin__roulette-panel {
  flex: 1 1 12rem !important;
  min-width: 0 !important;
  max-width: 18rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  position: relative !important;
  z-index: 4 !important;
}

body.site-huipil .story-spin__roulette-teaser {
  margin: 0 !important;
  font-size: 0.82rem !important;
  line-height: 1.45 !important;
  color: var(--tex-ink-soft) !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__wheel-wrap {
  transform: none !important;
  width: clamp(210px, 22vw, 280px) !important;
  height: clamp(210px, 22vw, 280px) !important;
  margin: 0 !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__wheel {
  border: 5px solid var(--tex-gold) !important;
  background: conic-gradient(
    var(--tex-red) 0deg 45deg,
    var(--tex-gold) 45deg 90deg,
    var(--tex-teal) 90deg 135deg,
    var(--tex-navy) 135deg 180deg,
    var(--tex-orange) 180deg 225deg,
    var(--tex-magenta) 225deg 270deg,
    var(--tex-green) 270deg 315deg,
    var(--tex-red-deep) 315deg 360deg
  ) !important;
  box-shadow:
    0 10px 28px rgba(38, 28, 22, 0.14),
    inset 0 0 22px rgba(255, 252, 247, 0.22) !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__pointer {
  top: -12px !important;
  border-left-width: 13px !important;
  border-right-width: 13px !important;
  border-top-width: 22px !important;
  border-top-color: var(--tex-gold) !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__center {
  width: clamp(3.5rem, 5vw, 4.5rem) !important;
  height: clamp(3.5rem, 5vw, 4.5rem) !important;
  font-size: clamp(1.75rem, 3vw, 2.2rem) !important;
  border: 4px solid var(--tex-gold) !important;
  background: var(--tex-cream-light) !important;
  box-shadow: 0 3px 10px rgba(38, 28, 22, 0.18) !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__result {
  text-align: left !important;
  min-height: 3.25rem !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__result p {
  margin: 0.25rem 0 0 !important;
  font-size: 0.84rem !important;
  line-height: 1.42 !important;
  color: var(--tex-ink-soft) !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__result strong {
  display: block !important;
  font-size: 1.08rem !important;
  line-height: 1.2 !important;
  color: var(--tex-red-deep) !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__tag {
  color: var(--tex-gold) !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__meta {
  color: var(--tex-wood-mid) !important;
  font-size: 0.76rem !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__actions {
  margin-top: 0.55rem !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__menu-link {
  width: 100% !important;
  min-height: 44px !important;
  font-size: 0.84rem !important;
}

body.site-huipil .fiesta-card--roulette-hero .fiesta-spin-btn {
  width: 100% !important;
  margin-top: 0 !important;
  position: relative !important;
  z-index: 6 !important;
  min-height: 48px !important;
}

/* Menu-page floating roulette */
body.site-huipil.menu-page .roulette-fab {
  border-radius: 50% !important;
  min-width: var(--btn-h) !important;
  padding: 0 !important;
}

body.site-huipil.menu-page .roulette-panel__inner,
body.site-huipil.menu-page .fiesta-card--roulette-compact {
  background: var(--tex-cream-light) !important;
  border-color: rgba(61, 38, 24, 0.14) !important;
}

body.site-huipil.menu-page .roulette-panel__title {
  color: var(--tex-red-deep) !important;
}

body.site-huipil.menu-page .fiesta-card--roulette-compact .fiesta-roulette__wheel {
  border-color: var(--tex-gold) !important;
}

/* ── Reviews & visit ── */
body.site-huipil .reviews-section {
  background: linear-gradient(180deg, var(--tex-cream-light) 0%, var(--tex-cream) 100%) !important;
}

body.site-huipil .review-card {
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-top: 3px solid var(--tex-gold) !important;
  border-image: none !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil .visit-section--flow .visit-card,
body.site-huipil .info-card {
  background: var(--tex-cream-light) !important;
  border-color: rgba(61, 38, 24, 0.1) !important;
}

/* ── Menu / pay ── */
body.site-huipil.menu-page .order-strip {
  position: relative;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.11) !important;
  border-radius: var(--tex-radius-md) !important;
  overflow: hidden;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil.menu-page .order-strip::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 7px;
  background: var(--tex-accent-bar);
}

body.site-huipil.menu-page .menu-view-tabs {
  background: var(--tex-cream-light) !important;
  border-color: rgba(61, 38, 24, 0.12) !important;
}

body.site-huipil .menu-card,
body.site-huipil .order-cart-panel,
body.site-huipil.pay-page .pay-head,
body.site-huipil.pay-page .pay-summary,
body.site-huipil.pay-page .pay-card,
body.site-huipil .item-modal__dialog {
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-radius: var(--tex-radius-sm) !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil .menu-card::before {
  content: '';
  display: block;
  height: 3px;
  background: var(--tex-accent-bar);
  margin: -1px -1px 0;
  border-radius: var(--tex-radius-sm) var(--tex-radius-sm) 0 0;
}

/* ── Menu page · textile-only layout ── */
body.site-huipil.menu-page.menu-online-layout {
  background-color: var(--tex-cream) !important;
}

body.site-huipil.menu-page .menu-view-tab.is-active,
body.site-huipil.menu-page .menu-online-tab.is-active {
  background: var(--tex-red) !important;
  border-color: var(--tex-red-deep) !important;
  color: #fff !important;
  box-shadow: 0 3px 14px rgba(184, 40, 36, 0.24) !important;
}

body.site-huipil.menu-page .menu-online-shell {
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0.5rem clamp(0.75rem, 2.5vw, 1.25rem) 2rem !important;
}

body.site-huipil.menu-page.has-topbar .menu-online-shell {
  padding-top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + 0.35rem) !important;
  margin-top: 0 !important;
}

body.site-huipil.menu-page .menu-online {
  margin-top: 0 !important;
}

body.site-huipil.menu-page .order-strip {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  grid-template-columns: unset !important;
  gap: 0.45rem !important;
  max-width: none !important;
  margin: 0 0 0.75rem !important;
  padding: 1rem 1.1rem !important;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.12) !important;
  border-radius: var(--tex-radius-md) !important;
  box-shadow: var(--tex-shadow-soft) !important;
  color: var(--tex-ink) !important;
  text-align: left !important;
  overflow: hidden !important;
}

body.site-huipil.menu-page .order-strip.is-live {
  background: var(--tex-cream-light) !important;
  border-color: rgba(61, 38, 24, 0.12) !important;
}

body.site-huipil.menu-page .order-strip p {
  max-width: none !important;
  margin: 0 !important;
}

body.site-huipil.menu-page .order-strip__actions {
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.site-huipil.menu-page .order-strip__actions .btn-order {
  width: 100% !important;
  border-radius: var(--tex-radius-sm) !important;
  transform: none !important;
}

body.site-huipil.menu-page .order-strip__actions .btn-order:hover {
  transform: none !important;
}

body.site-huipil.menu-page .order-strip__actions .btn-order.is-live {
  background: var(--tex-red) !important;
  color: #fff !important;
}

body.site-huipil.menu-page .order-strip__hint {
  text-align: left !important;
  opacity: 1 !important;
  margin: 0 !important;
}

body.site-huipil.menu-page .order-strip__badge::before {
  background: var(--tex-gold) !important;
}

body.site-huipil.menu-page .order-strip::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: var(--tex-accent-bar);
}

body.site-huipil.menu-page .order-strip h2,
body.site-huipil.menu-page .order-strip p,
body.site-huipil.menu-page .order-strip__hint {
  color: var(--tex-ink-soft) !important;
}

body.site-huipil.menu-page .order-strip h2 {
  color: var(--tex-red-deep) !important;
  font-size: 1.2rem !important;
  margin-bottom: 0.25rem !important;
}

body.site-huipil.menu-page .order-strip__badge {
  background: var(--tex-navy) !important;
  color: #fff !important;
  border: 1px solid var(--tex-navy-deep) !important;
  box-shadow: none !important;
}

body.site-huipil.menu-page .menu-view-tabs {
  display: flex !important;
  gap: 0.45rem !important;
  margin-bottom: 0.65rem !important;
  padding: 0.4rem !important;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.12) !important;
  border-radius: var(--tex-radius-sm) !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil.menu-page .menu-online__toolbar {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  position: sticky !important;
  top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + var(--safe-top, 0px) - 1px) !important;
  z-index: 195 !important;
  margin-bottom: 0.65rem !important;
  padding: 0.45rem 0 !important;
  background: rgba(252, 250, 245, 0.96) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border: none !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.1) !important;
}

body.site-huipil.menu-page .menu-online__tabs {
  display: flex !important;
  flex: 1 !important;
  gap: 0.4rem !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  padding-bottom: 0.15rem !important;
}

body.site-huipil.menu-page .menu-online__tabs::-webkit-scrollbar {
  display: none !important;
}

body.site-huipil.menu-page .menu-online__heading h2 {
  color: var(--tex-red-deep) !important;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(1.35rem, 3vw, 1.65rem) !important;
  margin: 0 0 0.35rem !important;
}

body.site-huipil.menu-page .menu-online__note,
body.site-huipil.menu-page .menu-online__fine {
  color: var(--tex-ink-soft) !important;
}

body.site-huipil.menu-page .menu-online__grid {
  gap: 0.55rem !important;
}

body.site-huipil.menu-page .menu-card {
  position: relative !important;
  overflow: hidden !important;
  padding: 0.65rem 0.7rem 0.55rem !important;
  background: #fff !important;
  border: 1px solid rgba(61, 38, 24, 0.12) !important;
  border-radius: var(--tex-radius-sm) !important;
  box-shadow: 0 2px 10px rgba(61, 38, 24, 0.05) !important;
}

body.site-huipil.menu-page .menu-card::before {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 3px !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

body.site-huipil.menu-page .menu-card--btn:hover,
body.site-huipil.menu-page .menu-card--btn:focus-visible {
  border-color: var(--tex-gold) !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil.menu-page .menu-card__name {
  color: var(--tex-ink) !important;
  font-weight: 700 !important;
}

body.site-huipil.menu-page .menu-card__price {
  color: var(--tex-red) !important;
  font-weight: 700 !important;
}

body.site-huipil.menu-page .menu-card__desc,
body.site-huipil.menu-page .menu-card__hint {
  color: var(--tex-ink-soft) !important;
}

body.site-huipil.menu-page .menu-reviews-block {
  margin-top: 1rem !important;
  padding: 0.75rem !important;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-radius: var(--tex-radius-sm) !important;
}

body.site-huipil.menu-page .menu-online__call {
  margin-top: 1rem !important;
  text-align: center !important;
}

body.site-huipil.menu-page .item-modal__title {
  color: var(--tex-red-deep) !important;
}

body.site-huipil.menu-page .item-modal__price {
  color: var(--tex-red) !important;
}

body.site-huipil.menu-page .cart-fab {
  background: var(--tex-red) !important;
  border: 2px solid var(--tex-red-deep) !important;
  border-top-color: var(--tex-gold) !important;
  color: #fff !important;
  box-shadow: 0 6px 22px rgba(184, 40, 36, 0.3) !important;
}

body.site-huipil.menu-page .order-cart-panel {
  background: var(--tex-cream-light) !important;
  border-color: rgba(61, 38, 24, 0.12) !important;
}

body.site-huipil.menu-page .footer {
  background: linear-gradient(180deg, var(--tex-navy) 0%, var(--tex-navy-deep) 45%, var(--tex-red-deep) 100%) !important;
  color: rgba(255, 252, 247, 0.92) !important;
}

body.site-huipil.menu-page .footer a {
  color: rgba(255, 252, 247, 0.9) !important;
}

body.site-huipil.menu-page .footer .logo__title,
body.site-huipil.menu-page .footer .logo__sub {
  color: var(--tex-gold-pale) !important;
}

@media (max-width: 768px) {
  body.site-huipil.menu-page .menu-view-tabs {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
  }

  body.site-huipil.menu-page .menu-view-tab {
    flex: 0 0 auto !important;
    min-width: 7.5rem !important;
    scroll-snap-align: start !important;
    white-space: nowrap !important;
  }

  body.site-huipil.menu-page .menu-online__toolbar {
    padding: 0.5rem 0 !important;
  }
}

/* ── Buttons v36 · Selvedge system (all interactive controls) ── */
body.site-huipil .btn,
body.site-huipil .fiesta-spin-btn,
body.site-huipil .fiesta-stamp-btn,
body.site-huipil .btn-order,
body.site-huipil .order-cart-checkout,
body.site-huipil .popup__btn,
body.site-huipil .header .nav a.nav-menu-cta,
body.site-huipil .mobile-cta a,
body.site-huipil .lang-toggle-btn,
body.site-huipil .menu-chip,
body.site-huipil .menu-filter-btn,
body.site-huipil .cart-fab,
body.site-huipil .visit-flow__chip,
body.site-huipil .roulette-fab,
body.site-huipil .fiesta-roulette__menu-link,
body.site-huipil .tuesday-closed-modal__btn,
body.site-huipil .pay-submit,
body.site-huipil .social-btn,
body.site-huipil .cart-clear-btn,
body.site-huipil .cart-back-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem;
  min-height: var(--btn-h) !important;
  padding: 0.62rem var(--btn-pad-x) !important;
  font-family: var(--btn-font) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
  line-height: 1.25 !important;
  text-transform: none !important;
  border-radius: var(--btn-radius) !important;
  border: 1.5px solid transparent !important;
  cursor: pointer !important;
  text-decoration: none !important;
  box-shadow: var(--btn-shadow) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  -webkit-text-fill-color: unset !important;
  text-shadow: none !important;
  -webkit-tap-highlight-color: transparent !important;
  touch-action: manipulation !important;
  transition:
    background 0.2s var(--tex-ease),
    border-color 0.2s var(--tex-ease),
    color 0.2s var(--tex-ease),
    box-shadow 0.2s var(--tex-ease),
    transform 0.15s var(--tex-ease) !important;
}

body.site-huipil .btn::before,
body.site-huipil .btn::after,
body.site-huipil .fiesta-spin-btn::before,
body.site-huipil .fiesta-spin-btn::after,
body.site-huipil .fiesta-stamp-btn::before,
body.site-huipil .fiesta-stamp-btn::after,
body.site-huipil .header .nav a.nav-menu-cta::before,
body.site-huipil .header .nav a.nav-menu-cta::after,
body.site-huipil .tuesday-closed-modal__btn::before,
body.site-huipil .tuesday-closed-modal__btn::after {
  content: none !important;
  display: none !important;
}

body.site-huipil .btn:active:not(:disabled),
body.site-huipil .fiesta-spin-btn:active:not([aria-busy="true"]),
body.site-huipil .btn-order:active,
body.site-huipil .popup__btn:active {
  transform: scale(0.98) !important;
}

/* Fill — runner red + gold selvedge thread */
body.site-huipil .btn-primary,
body.site-huipil .btn-red,
body.site-huipil .fiesta-spin-btn,
body.site-huipil .fiesta-stamp-btn,
body.site-huipil .btn-order,
body.site-huipil .order-cart-checkout,
body.site-huipil .menu-online__call .btn-red,
body.site-huipil .visit-flow__actions .btn-red,
body.site-huipil .header .nav a.nav-menu-cta,
body.site-huipil .mobile-cta .cta-menu,
body.site-huipil .cart-fab,
body.site-huipil .popup__btn,
body.site-huipil .fiesta-roulette__menu-link,
body.site-huipil .roulette-fab,
body.site-huipil .tuesday-closed-modal__btn--primary,
body.site-huipil .pay-submit:not(:disabled),
body.site-huipil .cart-checkout-btn,
body.site-huipil .cart-pay-btn,
body.site-huipil .cart-place-btn:not(.cart-place-btn--secondary) {
  background: var(--tex-red) !important;
  color: #fffefb !important;
  border-color: var(--tex-red-deep) !important;
  box-shadow: var(--btn-shadow), var(--btn-thread), inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
}

/* Outline — ivory label */
body.site-huipil .btn-outline,
body.site-huipil .item-modal__actions .btn-outline,
body.site-huipil .visit-card__toolbar .btn-outline,
body.site-huipil .feat-share-row .btn-outline,
body.site-huipil .btn-copy-addr,
body.site-huipil .mobile-cta .cta-call,
body.site-huipil .lang-toggle-btn:not([aria-pressed="true"]),
body.site-huipil .cart-place-btn--secondary,
body.site-huipil .cart-back-btn {
  background: var(--tex-cream-light) !important;
  color: var(--tex-red-deep) !important;
  border-color: rgba(61, 38, 24, 0.28) !important;
  box-shadow: var(--btn-shadow) !important;
}

body.site-huipil .lang-toggle-btn[aria-pressed="true"] {
  background: var(--tex-linen) !important;
  color: var(--tex-red-deep) !important;
  border-color: var(--tex-gold) !important;
  box-shadow: var(--btn-shadow), inset 0 0 0 1px rgba(196, 160, 85, 0.25) !important;
}

/* Chips & tabs — pill controls */
body.site-huipil .menu-view-tab,
body.site-huipil .menu-online-tab,
body.site-huipil .menu-chip,
body.site-huipil .menu-filter-btn,
body.site-huipil .lang-toggle-btn {
  min-height: var(--btn-h-xs) !important;
  padding: 0.42rem 0.9rem !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.08em !important;
  border-radius: var(--btn-radius-pill) !important;
  border-width: 1.5px !important;
  box-shadow: none !important;
  text-transform: uppercase !important;
}

body.site-huipil .menu-online-tab:not(.is-active),
body.site-huipil .menu-view-tab:not(.is-active),
body.site-huipil .menu-chip:not(.is-active),
body.site-huipil .menu-filter-btn:not(.is-active) {
  background: var(--tex-cream-light) !important;
  color: var(--tex-ink-soft) !important;
  border-color: rgba(61, 38, 24, 0.2) !important;
}

body.site-huipil .menu-view-tab.is-active,
body.site-huipil .menu-online-tab.is-active,
body.site-huipil .menu-chip.is-active,
body.site-huipil .menu-filter-btn.is-active {
  background: var(--tex-red) !important;
  color: #fffefb !important;
  border-color: var(--tex-red-deep) !important;
  box-shadow: var(--btn-shadow), var(--btn-thread) !important;
}

@media (min-width: 640px) {
  body.site-huipil .menu-view-tab,
  body.site-huipil .menu-online-tab {
    font-size: 0.74rem !important;
    padding: 0.48rem 1rem !important;
  }
}

/* Brand & utility fills */
body.site-huipil a[href*="facebook.com/elmirasolburgaw"].btn,
body.site-huipil .btn-social--facebook,
body.site-huipil .visit-flow__chip--fb,
body.site-huipil .social-btn--facebook {
  background: #1877f2 !important;
  border-color: #1256b8 !important;
  color: #fff !important;
  box-shadow: var(--btn-shadow) !important;
  text-transform: uppercase !important;
}

body.site-huipil a[href*="google.com/maps/dir"].btn,
body.site-huipil .btn-social--directions,
body.site-huipil .mobile-cta .cta-directions,
body.site-huipil .visit-card__toolbar .btn-social--directions {
  background: var(--tex-navy) !important;
  border-color: var(--tex-navy-deep) !important;
  color: #fffefb !important;
  box-shadow: var(--btn-shadow), inset 0 -2px 0 rgba(26, 107, 114, 0.65) !important;
  text-transform: uppercase !important;
}

body.site-huipil .visit-flow__chip--ig,
body.site-huipil .social-btn--instagram {
  background: linear-gradient(135deg, #f09433 0%, #e6683c 35%, #dc2743 68%, #bc1888 100%) !important;
  border-color: #a8327a !important;
  color: #fff !important;
  box-shadow: var(--btn-shadow) !important;
}

/* Size variants */
body.site-huipil .header .nav a.nav-menu-cta {
  min-height: var(--btn-h-sm) !important;
  padding: 0.5rem 1.1rem !important;
  font-size: 0.78rem !important;
  border-radius: var(--btn-radius-pill) !important;
}

body.site-huipil .visit-card__toolbar .btn,
body.site-huipil .visit-flow__actions .btn,
body.site-huipil .visit-flow__share .btn,
body.site-huipil .visit-flow__chip {
  min-height: var(--btn-h-sm) !important;
  padding: 0.5rem 0.85rem !important;
  font-size: 0.72rem !important;
}

body.site-huipil .fiesta-spin-btn,
body.site-huipil .fiesta-stamp-btn,
body.site-huipil .popup__btn,
body.site-huipil .btn-order,
body.site-huipil .order-cart-checkout {
  width: 100% !important;
  margin-top: 0 !important;
}

body.site-huipil .mobile-cta {
  background: var(--tex-cream-light) !important;
  border-top: 2px solid rgba(196, 160, 85, 0.45) !important;
  box-shadow: 0 -6px 24px rgba(38, 28, 22, 0.08) !important;
}

body.site-huipil .mobile-cta a {
  min-height: var(--btn-h-sm) !important;
  padding: 0.55rem 0.65rem !important;
  font-size: 0.74rem !important;
  flex: 1 1 0 !important;
}

body.site-huipil .cart-fab {
  min-height: var(--btn-h) !important;
  min-width: var(--btn-h) !important;
  padding: 0 !important;
  border-radius: 50% !important;
  font-size: 1.1rem !important;
}

/* Text / ghost controls */
body.site-huipil .cart-clear-btn,
body.site-huipil .fiesta-stamps__toggle,
body.site-huipil .fiesta-stamps__signout {
  min-height: auto !important;
  padding: 0.35rem 0.5rem !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--tex-red) !important;
  font-family: var(--btn-font) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  text-transform: none !important;
}

body.site-huipil .cart-back-btn {
  min-height: auto !important;
  padding: 0.45rem 0.65rem !important;
  font-size: 0.78rem !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

/* Stepper & icon controls */
body.site-huipil .qty-stepper__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 2.25rem !important;
  height: 2.25rem !important;
  min-height: 0 !important;
  padding: 0 !important;
  border-radius: var(--btn-radius) !important;
  border: 1.5px solid rgba(61, 38, 24, 0.22) !important;
  background: var(--tex-cream-light) !important;
  color: var(--tex-red-deep) !important;
  font-family: var(--btn-font) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background 0.18s var(--tex-ease), border-color 0.18s var(--tex-ease) !important;
}

body.site-huipil .pay-submit:disabled,
body.site-huipil .fiesta-spin-btn[aria-busy="true"],
body.site-huipil .fiesta-stamp-btn:disabled,
body.site-huipil .btn:disabled,
body.site-huipil .cart-checkout-btn:disabled {
  opacity: 0.48 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

@media (hover: hover) {
  body.site-huipil .btn-primary:hover:not(:disabled),
  body.site-huipil .btn-red:hover,
  body.site-huipil .fiesta-spin-btn:hover:not([aria-busy="true"]):not(:disabled),
  body.site-huipil .fiesta-stamp-btn:hover:not(:disabled),
  body.site-huipil .btn-order:hover,
  body.site-huipil .header .nav a.nav-menu-cta:hover,
  body.site-huipil .mobile-cta .cta-menu:hover,
  body.site-huipil .popup__btn:hover,
  body.site-huipil .cart-fab:hover,
  body.site-huipil .roulette-fab:hover,
  body.site-huipil .pay-submit:hover:not(:disabled),
  body.site-huipil .cart-checkout-btn:hover:not(:disabled),
  body.site-huipil .cart-pay-btn:hover,
  body.site-huipil .tuesday-closed-modal__btn--primary:hover {
    background: var(--tex-red-bright) !important;
    box-shadow: var(--btn-shadow-hover), var(--btn-thread), inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
  }

  body.site-huipil .btn-outline:hover,
  body.site-huipil .btn-copy-addr:hover,
  body.site-huipil .mobile-cta .cta-call:hover,
  body.site-huipil .cart-back-btn:hover,
  body.site-huipil .cart-place-btn--secondary:hover,
  body.site-huipil .lang-toggle-btn:hover:not([aria-pressed="true"]) {
    background: var(--tex-cream) !important;
    border-color: var(--tex-gold) !important;
    color: var(--tex-red-deep) !important;
  }

  body.site-huipil .menu-online-tab:not(.is-active):hover,
  body.site-huipil .menu-view-tab:not(.is-active):hover,
  body.site-huipil .menu-chip:not(.is-active):hover,
  body.site-huipil .menu-filter-btn:not(.is-active):hover {
    border-color: var(--tex-gold) !important;
    color: var(--tex-red-deep) !important;
    background: #fffefb !important;
  }

  body.site-huipil a[href*="facebook.com/elmirasolburgaw"].btn:hover,
  body.site-huipil .btn-social--facebook:hover,
  body.site-huipil .social-btn--facebook:hover {
    background: #1a85ff !important;
    box-shadow: var(--btn-shadow-hover) !important;
  }

  body.site-huipil a[href*="google.com/maps/dir"].btn:hover,
  body.site-huipil .btn-social--directions:hover,
  body.site-huipil .mobile-cta .cta-directions:hover {
    background: #243a5c !important;
    box-shadow: var(--btn-shadow-hover), inset 0 -2px 0 rgba(26, 107, 114, 0.65) !important;
  }

  body.site-huipil .qty-stepper__btn:hover {
    background: var(--tex-linen) !important;
    border-color: var(--tex-gold) !important;
  }

  body.site-huipil .cart-clear-btn:hover,
  body.site-huipil .fiesta-stamps__toggle:hover,
  body.site-huipil .fiesta-stamps__signout:hover {
    color: var(--tex-red-bright) !important;
  }
}

body.site-huipil :focus-visible {
  outline: 2px solid var(--tex-gold) !important;
  outline-offset: 2px !important;
}

/* ── Footer luxe ── */
body.site-huipil .footer::before,
body.site-huipil footer.footer--slim::before {
  display: block !important;
  content: '' !important;
  height: 2px !important;
  background: linear-gradient(90deg, transparent, var(--tex-gold) 20%, var(--tex-gold) 80%, transparent) !important;
}

body.site-huipil .footer,
body.site-huipil footer.footer--slim {
  background: linear-gradient(180deg, var(--tex-navy) 0%, var(--tex-navy-deep) 100%) !important;
  color: rgba(255, 252, 247, 0.92) !important;
  border-top: none !important;
}

body.site-huipil .footer .logo__title,
body.site-huipil .footer .logo__sub {
  color: var(--tex-gold-pale) !important;
}

body.site-huipil .footer a {
  color: rgba(255, 252, 247, 0.9) !important;
}

/* ── Welcome ── */
body.site-huipil.welcome-page {
  background: linear-gradient(165deg, var(--tex-navy-deep) 0%, var(--tex-wood) 100%) !important;
}

body.site-huipil.welcome-page .tex-serape-trim--compact {
  width: calc(100% + 3.5rem);
  margin: -2rem -1.75rem 1.15rem;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
}

body.site-huipil.welcome-page .popup {
  padding-top: 0 !important;
  overflow: hidden;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.14) !important;
  box-shadow: var(--tex-shadow-lift) !important;
}

body.site-huipil.welcome-page .popup::before {
  display: none !important;
}

body.site-huipil.welcome-page .popup__btn {
  width: 100%;
}

/* ── Layout rhythm (replaces removed coastal compact pass) ── */
body.site-huipil .section,
body.site-huipil .favorites-showcase,
body.site-huipil .visit-section--flow {
  padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1rem, 3vw, 1.5rem) !important;
}

body.site-huipil .reviews-section {
  padding-top: clamp(1.75rem, 3.5vw, 2.5rem) !important;
  padding-bottom: clamp(1.75rem, 3.5vw, 2.5rem) !important;
}

body.site-huipil .story-spin-section {
  background: transparent !important;
}

body.site-huipil .section-tag {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  color: var(--tex-wood-mid) !important;
  font-family: var(--tex-font-ui) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.5rem !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}

body.site-huipil .section-tag::after {
  content: '' !important;
  display: block !important;
  width: 3.25rem !important;
  height: 3px !important;
  margin: 0.45rem auto 0 !important;
  background: var(--tex-oax-serape) !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 0 rgba(255, 252, 247, 0.5) inset !important;
}

body.site-huipil:not(.menu-page) .section-tag {
  background: none !important;
}

body.site-huipil h2 {
  color: var(--tex-red-deep) !important;
  margin-bottom: 0.55rem !important;
  font-size: clamp(1.55rem, 3.5vw, 2.1rem) !important;
  line-height: 1.12 !important;
  text-align: center !important;
}

body.site-huipil:not(.menu-page) h2 em {
  font-family: 'Dancing Script', 'Pinyon Script', cursive !important;
  font-size: clamp(1.35rem, 3.2vw, 1.9rem) !important;
  font-weight: 600 !important;
  color: var(--tex-red) !important;
  display: block !important;
  margin-bottom: 0.12rem !important;
  letter-spacing: 0.02em !important;
  line-height: 1.2 !important;
}

body.site-huipil .feat-stat__num--text {
  font-family: Montserrat, system-ui, sans-serif !important;
  font-size: clamp(1.35rem, 3.5vw, 1.95rem) !important;
  font-weight: 800 !important;
  color: var(--tex-red-deep) !important;
  letter-spacing: 0.02em !important;
  line-height: 1.1 !important;
}

body.site-huipil .section-lead {
  color: var(--tex-ink-soft) !important;
  margin: 0 auto 0.85rem !important;
  max-width: var(--tex-prose-max) !important;
  font-size: 0.9375rem !important;
  line-height: 1.6 !important;
  text-align: center !important;
}

body.site-huipil .feature,
body.site-huipil .review-card,
body.site-huipil .extras-card,
body.site-huipil .fiesta-card:not(.fiesta-card--roulette-hero),
body.site-huipil .info-card,
body.site-huipil .visit-grid > .map-wrap,
body.site-huipil.menu-page .menu-card {
  border-left: none !important;
}

body.site-huipil:not(.menu-page) .hero,
body.site-huipil:not(.menu-page) .hero.hero--vibe {
  min-height: min(62dvh, 600px) !important;
  padding-bottom: 1.5rem !important;
}

body.site-huipil:not(.menu-page).has-topbar .hero {
  padding-top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + 0.35rem) !important;
}

body.site-huipil:not(.menu-page) .hero h1 {
  font-family: var(--tex-font-display) !important;
  color: #fff !important;
  font-size: clamp(2.4rem, 6.5vw, 3.75rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.02 !important;
  text-shadow:
    0 2px 20px rgba(16, 28, 48, 0.5),
    0 0 32px rgba(196, 160, 85, 0.15) !important;
}

body.site-huipil:not(.menu-page) .hero-sub {
  color: rgba(255, 252, 247, 0.92) !important;
  font-size: clamp(0.88rem, 2vw, 1.02rem) !important;
  line-height: 1.58 !important;
  font-weight: 500 !important;
  max-width: 36ch;
  margin-inline: auto;
}

body.site-huipil:not(.menu-page) .hero-content {
  max-width: 36rem !important;
}

body.site-huipil:not(.menu-page) .mobile-quick {
  display: none !important;
}

body.site-huipil .visit-flow {
  position: relative !important;
  border: 1px solid rgba(61, 38, 24, 0.12) !important;
  border-left: none !important;
  border-radius: var(--tex-radius-md) !important;
  background: var(--tex-cream-light) !important;
  box-shadow: var(--tex-shadow-lift) !important;
  overflow: hidden !important;
}

body.site-huipil .visit-flow::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  height: auto !important;
  background: linear-gradient(180deg, var(--tex-gold) 0%, var(--tex-red-deep) 100%) !important;
}

body.site-huipil .visit-flow__head {
  background: var(--tex-cream-light) !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.1) !important;
  padding: 0.85rem 1rem 0.75rem !important;
}

body.site-huipil .visit-flow__hours,
body.site-huipil .visit-flow__info {
  background: transparent !important;
  border-color: rgba(61, 38, 24, 0.1) !important;
}

body.site-huipil .visit-flow__share {
  background: var(--tex-linen) !important;
  border-top: 1px solid rgba(61, 38, 24, 0.1) !important;
  padding: 0.65rem 0.85rem 0.75rem !important;
}

body.site-huipil .visit-flow__share .btn {
  min-height: 44px !important;
  font-size: 0.78rem !important;
  padding: 0.55rem 0.85rem !important;
}

body.site-huipil .map-wrap__frame,
body.site-huipil .visit-flow__map-frame .map-wrap__frame {
  min-height: 220px !important;
  height: clamp(200px, 34vw, 280px) !important;
  border-color: rgba(61, 38, 24, 0.12) !important;
}

/* Visit flow layout (was in removed coastal-oax-fusion.css) */
body.site-huipil .visit-section--flow {
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1rem, 3vw, 1.5rem) !important;
}

body.site-huipil .visit-flow {
  max-width: 52rem !important;
  margin-inline: auto !important;
}

body.site-huipil .visit-flow__head {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  justify-content: center !important;
  gap: 0.3rem 0.5rem !important;
  text-align: center !important;
}

body.site-huipil .visit-flow__head h2 {
  margin: 0 !important;
  font-size: clamp(1.2rem, 3.2vw, 1.55rem) !important;
}

body.site-huipil .visit-flow__hours {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
}

body.site-huipil .visit-flow__hour {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.15rem !important;
  padding: 0.55rem 0.5rem !important;
  text-align: center !important;
  border-right: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__hour:last-child {
  border-right: none !important;
}

body.site-huipil .visit-flow__hour--closed {
  background: rgba(184, 40, 36, 0.05) !important;
}

body.site-huipil .visit-flow__days {
  font-size: clamp(0.62rem, 1.6vw, 0.72rem) !important;
  font-weight: 700 !important;
  color: var(--tex-ink) !important;
}

body.site-huipil .visit-flow__time {
  font-size: clamp(0.68rem, 1.8vw, 0.8rem) !important;
  font-weight: 800 !important;
  color: var(--tex-navy) !important;
}

body.site-huipil .visit-flow__hour--closed .visit-flow__days,
body.site-huipil .visit-flow__hour--closed .visit-flow__time {
  color: var(--tex-red) !important;
}

body.site-huipil .visit-flow__body {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) !important;
  align-items: stretch !important;
}

body.site-huipil .visit-flow__info {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 0.45rem !important;
  padding: 0.65rem 0.75rem !important;
  border-right: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__contact {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.2rem !important;
  margin: 0 !important;
  font-style: normal !important;
  font-size: clamp(0.72rem, 1.9vw, 0.82rem) !important;
  line-height: 1.4 !important;
  color: var(--tex-ink-soft) !important;
}

body.site-huipil .visit-flow__addr {
  font-weight: 600 !important;
  color: var(--tex-ink) !important;
}

body.site-huipil .visit-flow__phones {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.25rem 0.4rem !important;
}

body.site-huipil .visit-flow__phones a {
  color: var(--tex-navy) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

body.site-huipil .visit-flow__actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.35rem !important;
}

body.site-huipil .visit-flow__map {
  display: flex !important;
  min-height: 0 !important;
}

body.site-huipil .visit-flow__map-frame {
  flex: 1 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.site-huipil .visit-flow__share {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin: 0 !important;
}

body.site-huipil .review-card__name--head {
  color: var(--tex-red-deep) !important;
}

body.site-huipil .review-stars {
  color: var(--tex-gold) !important;
}

body.site-huipil.has-mobile-cta {
  padding-bottom: calc(var(--mobile-cta-h, 72px) + var(--safe-bottom, 0px) + 8px) !important;
}

@media (max-width: 900px) {
  body.site-huipil .story-spin__frame {
    grid-template-columns: 1fr !important;
  }

  body.site-huipil .story-spin__story {
    border-right: none !important;
    border-bottom: 1px solid rgba(61, 38, 24, 0.1) !important;
  }

  body.site-huipil .story-spin__roulette-stage {
    flex-direction: column !important;
    min-height: auto !important;
    padding: 1.1rem 1rem 1.25rem !important;
    gap: 1rem !important;
  }

  body.site-huipil .story-spin__roulette-panel {
    flex: 1 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    text-align: center !important;
  }

  body.site-huipil .story-spin__roulette-teaser,
  body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__result {
    text-align: center !important;
  }

  body.site-huipil .fiesta-card--roulette-hero .fiesta-roulette__wheel-wrap {
    width: clamp(220px, 62vw, 280px) !important;
    height: clamp(220px, 62vw, 280px) !important;
    transform: none !important;
  }
}

@media (max-width: 768px) {
  body.site-huipil.has-topbar {
    --tex-trim-h: 34px;
  }

  body.site-huipil:not(.menu-page) .hero,
  body.site-huipil:not(.menu-page) .hero.hero--vibe {
    min-height: min(58dvh, 520px) !important;
  }

  body.site-huipil:not(.menu-page).has-topbar .hero {
    padding-top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + 0.35rem) !important;
  }

  body.site-huipil .google-review-tab {
    top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + var(--safe-top, 0px) + 0.35rem) !important;
    z-index: 205 !important;
    background: var(--tex-cream-light) !important;
    border-color: rgba(61, 38, 24, 0.14) !important;
  }

  body.site-huipil .section,
  body.site-huipil .favorites-showcase,
  body.site-huipil .reviews-section,
  body.site-huipil .story-spin-section {
    padding-top: clamp(1.25rem, 4vw, 1.75rem) !important;
    padding-bottom: clamp(1.25rem, 4vw, 1.75rem) !important;
  }

  body.site-huipil .fav-card {
    min-height: auto !important;
  }

  body.site-huipil .tex-serape-trim__weave {
    height: var(--tex-trim-h);
  }
}

@media (min-width: 1200px) {
  body.site-huipil:not(.menu-page) .hero,
  body.site-huipil:not(.menu-page) .hero.hero--vibe {
    min-height: min(68dvh, 680px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.site-huipil .btn:hover,
  body.site-huipil .fiesta-spin-btn:hover,
  body.site-huipil .mobile-cta a:hover {
    transform: none !important;
  }
}

/* Strip legacy fiesta/coastal gradient bleed — keep selvedge fills */
body.site-huipil .btn-primary,
body.site-huipil .btn-red,
body.site-huipil .btn-outline,
body.site-huipil .fiesta-spin-btn,
body.site-huipil .fiesta-stamp-btn {
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

/* ── v29 · strip legacy theme bleed (coastal / world cup / oax craft) ── */
body.site-huipil .wc-promo,
body.site-huipil .wc-bunting,
body.site-huipil .wc-menu-hint,
body.site-huipil .wc-hero-pill,
body.site-huipil .wc-ribbon-special {
  display: none !important;
}

body.site-huipil.menu-page .menu-online-shell,
body.site-huipil.menu-online-layout .menu-online-shell {
  margin-top: 0 !important;
}

body.site-huipil.menu-page.menu-online-layout {
  background-color: var(--tex-cream) !important;
  background-image:
    linear-gradient(rgba(252, 250, 245, 0.94), rgba(252, 250, 245, 0.94)),
    var(--tex-weave-svg) !important;
}

body.site-huipil.menu-page.has-topbar .cart-drawer {
  top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + var(--safe-top, 0px)) !important;
}

body.site-huipil.menu-page .menu-reviews-strip__line,
body.site-huipil.menu-page .menu-reviews-strip__line strong,
body.site-huipil.menu-page .menu-reviews-strip__link {
  color: var(--tex-ink-soft) !important;
}

body.site-huipil.menu-page .menu-reviews-strip__link {
  color: var(--tex-red) !important;
}

body.site-huipil.menu-page .menu-online__note {
  color: var(--tex-ink-soft) !important;
  font-style: normal !important;
}

body.site-huipil.menu-page .lang-toggle-btn {
  min-height: 36px !important;
  padding: 0.4rem 0.75rem !important;
  font-size: 0.72rem !important;
  border-radius: 100px !important;
}

/* ── v31 · isolate textile theme (no vibe/coastal/fiesta bleed) ── */
body.site-huipil .fiesta-gold-dust {
  display: none !important;
}

/* Hero layout — centered copy, 2 polaroids per side, no overlap */
body.site-huipil:not(.menu-page) .hero-layout {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: minmax(4.75rem, 1fr) minmax(0, 32rem) minmax(4.75rem, 1fr);
  align-items: center;
  justify-items: center;
  gap: clamp(0.45rem, 1.4vw, 1.1rem);
  width: 100%;
  max-width: min(56rem, 94vw);
  margin: 0 auto;
  pointer-events: none;
}

body.site-huipil:not(.menu-page) .hero-layout .hero-content {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  z-index: 5;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding-left: clamp(0.35rem, 1.5vw, 1rem) !important;
  padding-right: clamp(0.35rem, 1.5vw, 1rem) !important;
  text-align: center !important;
}

body.site-huipil .hero-floaters {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  z-index: 4;
  pointer-events: none;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center;
  gap: clamp(0.35rem, 1vh, 0.65rem);
  padding: 0;
  margin: 0;
  width: auto !important;
  height: auto !important;
  transform: none !important;
}

body.site-huipil .hero-floaters--left {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  align-items: flex-end;
}

body.site-huipil .hero-floaters--right {
  grid-column: 3;
  grid-row: 1;
  justify-self: start;
  align-items: flex-start;
}

body.site-huipil .hero-floaters--left .hero-floater:nth-child(2) {
  margin-right: 0.35rem;
}

body.site-huipil .hero-floaters--right .hero-floater:nth-child(1) {
  margin-left: 0.25rem;
}

body.site-huipil .hero-floaters--right .hero-floater:nth-child(2) {
  margin-left: 0.55rem;
}

body.site-huipil .hero-floater {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  bottom: auto !important;
  height: auto !important;
  flex: 0 0 auto;
  pointer-events: none;
}

body.site-huipil .hero-floater--snap {
  --snap-w: clamp(48px, 4.8vw, 68px);
  width: var(--snap-w) !important;
  max-width: var(--snap-w) !important;
}

body.site-huipil .hero-floaters--left .hero-floater--snap:nth-child(1) {
  --snap-tilt: -9deg;
}

body.site-huipil .hero-floaters--left .hero-floater--snap:nth-child(2) {
  --snap-tilt: -5deg;
}

body.site-huipil .hero-floaters--right .hero-floater--snap:nth-child(1) {
  --snap-tilt: 6deg;
}

body.site-huipil .hero-floaters--right .hero-floater--snap:nth-child(2) {
  --snap-tilt: 9deg;
}

body.site-huipil .hero-floaters .hero-snap__paper {
  padding: 5px 5px 16px;
}

body.site-huipil .hero-floaters .hero-floater--snap {
  animation-duration: 6.8s;
}

@keyframes texSnapFloat {
  0%, 100% {
    transform: rotate(var(--snap-tilt)) translateY(0);
  }
  50% {
    transform: rotate(calc(var(--snap-tilt) + 1deg)) translateY(-4px);
  }
}

body.site-huipil .hero-floaters .hero-floater--snap {
  animation-name: texSnapFloat;
}

body.site-huipil .hero--single .hero-rotator__slide {
  opacity: 1 !important;
}

body.site-huipil .hero-scroll {
  position: absolute;
  z-index: 4;
  bottom: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
}

body.site-huipil .reviews-carousel-wrap {
  position: relative;
  margin: 0.65rem 0 1rem;
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

body.site-huipil .reviews-carousel__track {
  display: flex;
  gap: 0.6rem;
  width: max-content;
  animation: texReviewScroll 360s linear infinite;
  padding: 0.2rem 0;
}

body.site-huipil .reviews-carousel__track .review-card {
  flex: 0 0 210px;
  width: 210px;
  max-width: 72vw;
  padding: 0.65rem 0.75rem 0.6rem !important;
  border-radius: var(--tex-radius-sm) !important;
  border-color: rgba(61, 38, 24, 0.12) !important;
  background: var(--tex-cream-light) !important;
}

body.site-huipil .reviews-carousel__track .review-card__top {
  margin-bottom: 0.3rem;
  gap: 0.35rem;
}

body.site-huipil .reviews-carousel__track .review-card__name--head {
  font-size: 0.72rem !important;
  line-height: 1.2 !important;
  max-width: 5.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--tex-red-deep) !important;
}

body.site-huipil .reviews-carousel__track .review-stars {
  font-size: 0.72rem !important;
  letter-spacing: 0.04em;
  color: var(--tex-gold) !important;
}

body.site-huipil .reviews-carousel__track .review-card__quote {
  font-size: 0.78rem !important;
  line-height: 1.38 !important;
  font-weight: 500 !important;
  margin: 0;
  color: var(--tex-ink-soft) !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

body.site-huipil .reviews-carousel__track:hover {
  animation-play-state: paused;
}

@keyframes texReviewScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

body.site-huipil .story-spin__story {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
  border-right-color: rgba(61, 38, 24, 0.1) !important;
}

body.site-huipil .story-spin__img {
  margin: 0 !important;
  border-radius: var(--tex-radius-sm) !important;
  overflow: hidden !important;
  border: 1px solid rgba(61, 38, 24, 0.12) !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil .story-spin__img::before {
  display: none !important;
}

body.site-huipil .story-spin__img img {
  display: block !important;
  width: 100% !important;
  height: clamp(168px, 22vw, 210px) !important;
  object-fit: cover !important;
  object-position: center 40% !important;
}

body.site-huipil .story-spin__lead,
body.site-huipil .story-spin__copy p {
  color: var(--tex-ink-soft) !important;
}

body.site-huipil .visit-flow,
body.site-huipil .reviews-section {
  background: transparent !important;
}

body.site-huipil.menu-page .menu-view-tab.is-active,
body.site-huipil.menu-page .menu-online-tab.is-active {
  background: var(--tex-red) !important;
  border-color: var(--tex-red-deep) !important;
  color: #fff !important;
}

body.site-huipil .reviews-grid[aria-hidden="true"] {
  display: none !important;
}

@media (max-width: 767px) {
  body.site-huipil.menu-page .menu-online__toolbar {
    position: sticky !important;
    top: calc(var(--topbar-stack) + var(--header-h) + var(--tex-trim-h) + var(--safe-top, 0px) - 1px) !important;
  }
}

/* ── v33 · home page rhythm — no overlap ── */
body.site-huipil:not(.menu-page) main#main {
  position: relative;
  z-index: 1;
}

body.site-huipil:not(.menu-page) .section {
  padding-left: clamp(1rem, 3vw, 1.5rem) !important;
  padding-right: clamp(1rem, 3vw, 1.5rem) !important;
}

body.site-huipil .feat-stats {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0.55rem !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
}

body.site-huipil .feat-stat {
  min-width: 0 !important;
}

body.site-huipil .reviews-section__inner {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.site-huipil .reviews-stats {
  margin: 0.75rem auto 1rem !important;
  gap: 0.45rem 0.75rem !important;
}

body.site-huipil .reviews-cta {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  margin-top: 0.75rem !important;
}

body.site-huipil .story-spin-section .section {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 1024px) {
  body.site-huipil:not(.menu-page) .hero-layout {
    grid-template-columns: minmax(4rem, 1fr) minmax(0, 28rem) minmax(4rem, 1fr);
    max-width: min(50rem, 96vw);
    gap: clamp(0.3rem, 1vw, 0.75rem);
  }

  body.site-huipil .hero-floaters {
    gap: clamp(0.25rem, 0.8vh, 0.5rem);
  }

  body.site-huipil .hero-floater--snap {
    --snap-w: clamp(40px, 4.2vw, 56px);
    width: var(--snap-w) !important;
    max-width: var(--snap-w) !important;
  }

  body.site-huipil .hero-floaters .hero-snap__paper {
    padding: 4px 4px 13px;
  }
}

@media (max-width: 900px) {
  body.site-huipil .feat-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.site-huipil .visit-flow__body {
    grid-template-columns: 1fr !important;
  }

  body.site-huipil .visit-flow__info {
    border-right: none !important;
    border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
  }
}

@media (max-width: 768px) {
  body.site-huipil:not(.menu-page) .hero-layout {
    display: block;
    max-width: 100%;
  }

  body.site-huipil .hero-floaters,
  body.site-huipil .hero-floater {
    display: none !important;
  }

  body.site-huipil:not(.menu-page) .hero-layout .hero-content,
  body.site-huipil .hero-content {
    max-width: 100% !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  body.site-huipil .visit-flow__hours {
    grid-template-columns: 1fr !important;
  }

  body.site-huipil .visit-flow__hour {
    border-right: none !important;
    border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
  }

  body.site-huipil .visit-flow__hour:last-child {
    border-bottom: none !important;
  }
}

@media (max-width: 380px) {
  body.site-huipil .feat-stats {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.site-huipil .reviews-carousel__track {
    animation: none !important;
  }

  body.site-huipil .hero-floater--snap,
  body.site-huipil .hero-floaters .hero-floater--snap {
    animation: none !important;
  }
}

/* ── v34 · kill rainbow serape / legacy textile bleed ── */
body.site-huipil .specials-banner,
body.site-huipil .menu-hero__trim,
body.site-huipil .food-wall__banner {
  border-image: none !important;
}

body.site-huipil .specials-banner {
  border-top: 3px solid var(--tex-gold) !important;
  border-bottom: 3px solid var(--tex-gold) !important;
}

body.site-huipil .menu-hero__trim {
  background: var(--tex-accent-line) !important;
}

/* ── v35 · editorial design system polish ── */
body.site-huipil .feat-ribbon {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.09em !important;
  color: rgba(255, 252, 247, 0.94) !important;
}

body.site-huipil .feat-ribbon__inner {
  padding-left: calc(1rem + 6px) !important;
}

body.site-huipil .feat-ribbon__specials {
  font-weight: 600 !important;
  color: var(--tex-gold-pale) !important;
}

body.site-huipil .feat-ribbon__meal,
body.site-huipil .feat-ribbon__clock {
  color: rgba(255, 252, 247, 0.78) !important;
}

body.site-huipil .feat-scroll-progress {
  background: linear-gradient(90deg, var(--tex-red-deep), var(--tex-gold)) !important;
  height: 2px !important;
}

body.site-huipil .favorites-showcase__head h2,
body.site-huipil .reviews-section h2,
body.site-huipil .visit-flow__head h2 {
  font-family: var(--tex-font-display) !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
}

body.site-huipil .favorites-showcase__head p {
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
}

body.site-huipil .feat-stat {
  padding: 0.75rem 0.55rem 0.7rem !important;
}

body.site-huipil .feat-stat__num {
  font-family: var(--tex-font-display) !important;
  font-size: clamp(1.5rem, 3vw, 1.85rem) !important;
  font-weight: 700 !important;
}

body.site-huipil .hero-floater--snap {
  --snap-paper: var(--tex-cream-light);
  --snap-paper-edge: rgba(196, 160, 85, 0.35);
  filter: drop-shadow(0 8px 16px rgba(16, 28, 48, 0.28)) drop-shadow(0 2px 4px rgba(38, 28, 22, 0.12));
}

body.site-huipil .hero-snap__paper {
  border-color: rgba(196, 160, 85, 0.32) !important;
}

body.site-huipil .hero-scroll {
  color: rgba(255, 252, 247, 0.72) !important;
  font-family: var(--tex-font-ui) !important;
  font-size: 0.62rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}

body.site-huipil .hero-scroll-line {
  background: linear-gradient(180deg, var(--tex-gold-pale), transparent) !important;
}

body.site-huipil .review-card {
  border-top-width: 2px !important;
  border-top-color: rgba(196, 160, 85, 0.65) !important;
}

body.site-huipil .google-review-tab {
  font-family: var(--tex-font-ui) !important;
  border-color: rgba(61, 38, 24, 0.1) !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil.menu-page .order-strip::before,
body.site-huipil .menu-card::before {
  display: none !important;
}

body.site-huipil.menu-page .order-strip {
  border-left: 3px solid var(--tex-gold) !important;
  border-image: none !important;
}

body.site-huipil.menu-page .menu-card {
  border-top: 2px solid rgba(196, 160, 85, 0.28) !important;
}

body.site-huipil .footer .logo__title {
  font-family: var(--tex-font-display) !important;
}

/* ── v36 · selvedge buttons — final sweep ── */
body.site-huipil .header .nav a:not(.nav-menu-cta):hover,
body.site-huipil .header .nav a:not(.nav-menu-cta).active {
  background: rgba(196, 160, 85, 0.1) !important;
}

body.site-huipil .header .nav a.nav-menu-cta,
body.site-huipil .header .nav a.nav-menu-cta:hover,
body.site-huipil .header .nav a.nav-menu-cta.active {
  background: var(--tex-red) !important;
  color: #fffefb !important;
  box-shadow: var(--btn-shadow), var(--btn-thread) !important;
}

body.site-huipil .story-spin__copy .btn,
body.site-huipil .reviews-cta .btn,
body.site-huipil .contact-actions .btn,
body.site-huipil .hero-btns .btn,
body.site-huipil .page-hero-actions .btn {
  min-height: var(--btn-h) !important;
}

body.site-huipil .reviews-cta .btn {
  flex: 1 1 auto !important;
  min-width: min(100%, 11rem) !important;
}

body.site-huipil .visit-flow__share .btn[data-share],
body.site-huipil .visit-flow__share .btn[data-sms] {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

body.site-huipil .social-btn {
  min-height: var(--btn-h-sm) !important;
  padding: 0.55rem 1rem !important;
  font-size: 0.78rem !important;
  border-radius: var(--btn-radius-pill) !important;
  gap: 0.45rem !important;
}

body.site-huipil .social-btn svg {
  width: 1rem !important;
  height: 1rem !important;
  flex-shrink: 0 !important;
}

body.site-huipil .order-cart-panel .btn,
body.site-huipil .item-modal__actions .btn {
  width: 100% !important;
}

body.site-huipil .item-modal__actions {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
}

body.site-huipil .btn-social.btn-social--facebook {
  background: #1877f2 !important;
  border-color: #1256b8 !important;
  color: #fff !important;
}

body.site-huipil .menu-page .order-strip__actions .btn-order.is-live {
  background: var(--tex-red) !important;
  color: #fffefb !important;
  box-shadow: var(--btn-shadow), var(--btn-thread) !important;
}

/* ── v37 · header ends: logo left, Home | Menu right ── */
body.site-huipil .header {
  justify-content: space-between !important;
  gap: 0.75rem !important;
  padding-left: clamp(0.85rem, 3vw, 2rem) !important;
  padding-right: clamp(0.85rem, 3vw, 2rem) !important;
}

body.site-huipil .header .logo {
  margin-right: auto !important;
  flex: 0 0 auto !important;
}

body.site-huipil .header .nav {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  justify-content: flex-end !important;
  gap: 0.5rem !important;
}

body.site-huipil .header .nav a:not(.nav-menu-cta) {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  padding: 0.45rem 0.75rem !important;
  min-height: var(--btn-h-sm) !important;
}

body.site-huipil:not(.menu-page) main#main {
  width: 100% !important;
  max-width: var(--tex-content-max) !important;
  margin-inline: auto !important;
}

body.site-huipil .feat-ribbon__inner {
  justify-content: center !important;
  text-align: center !important;
  flex-wrap: wrap !important;
  gap: 0.35rem 0.85rem !important;
  padding: 0.6rem 1rem 0.6rem calc(1rem + 6px) !important;
}

body.site-huipil .feat-ribbon__right {
  justify-content: center !important;
  margin-left: 0 !important;
  flex-wrap: wrap !important;
}

body.site-huipil .feat-stats {
  padding: 0.75rem clamp(0.65rem, 2vw, 1rem) !important;
}

body.site-huipil .feat-stat {
  text-align: center !important;
  padding: 0.65rem 0.45rem 0.6rem !important;
}

body.site-huipil .feat-stat__label,
body.site-huipil .feat-stat__hint {
  text-align: center !important;
}

body.site-huipil .feat-stat__num--text {
  font-family: var(--tex-font-display) !important;
}

body.site-huipil .story-spin-section {
  padding-left: clamp(1rem, 3vw, 1.5rem) !important;
  padding-right: clamp(1rem, 3vw, 1.5rem) !important;
}

body.site-huipil .story-spin__story-head {
  text-align: center !important;
}

body.site-huipil .story-spin__lead {
  margin-inline: auto !important;
  max-width: 38ch !important;
  text-align: center !important;
  font-size: 0.9375rem !important;
  line-height: 1.6 !important;
}

body.site-huipil .story-spin__copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

body.site-huipil .story-spin__copy p {
  max-width: 38ch !important;
  margin-inline: auto !important;
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
}

body.site-huipil .story-spin__copy .btn {
  width: auto !important;
  min-width: min(100%, 14rem) !important;
  margin-top: 0.15rem !important;
}

body.site-huipil .reviews-section__inner {
  text-align: center !important;
  padding-inline: clamp(0.5rem, 2vw, 1rem) !important;
}

body.site-huipil .reviews-stats {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.5rem 1rem !important;
}

body.site-huipil .reviews-cta {
  justify-content: center !important;
  align-items: stretch !important;
  max-width: 28rem !important;
  margin-inline: auto !important;
}

body.site-huipil .reviews-cta .btn {
  flex: 1 1 calc(50% - 0.25rem) !important;
  min-width: min(100%, 10.5rem) !important;
  max-width: 100% !important;
}

body.site-huipil .visit-flow__info {
  text-align: center !important;
  align-items: center !important;
}

body.site-huipil .visit-flow__contact {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.35rem !important;
  text-align: center !important;
}

body.site-huipil .visit-flow__phones {
  justify-content: center !important;
  flex-wrap: wrap !important;
}

body.site-huipil .visit-flow__actions {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.45rem !important;
}

body.site-huipil .visit-flow__share,
body.site-huipil .feat-share-row {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.45rem !important;
}

body.site-huipil .visit-flow__share .btn,
body.site-huipil .feat-share-row .btn {
  flex: 0 1 auto !important;
  min-width: min(100%, 7.5rem) !important;
}

body.site-huipil .footer-bottom {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.35rem 0.85rem !important;
  text-align: center !important;
  font-size: 0.8125rem !important;
}

body.site-huipil .mobile-cta {
  display: flex !important;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  padding: 0.5rem clamp(0.5rem, 2vw, 0.85rem) calc(0.5rem + var(--safe-bottom, 0px)) !important;
}

body.site-huipil .mobile-cta a {
  flex: 1 1 0 !important;
  max-width: 11rem !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
}

/* Menu page — centered headings, balanced toolbar */
body.site-huipil.menu-page .menu-online__heading {
  text-align: center !important;
}

body.site-huipil.menu-page .menu-online__heading h2 {
  text-align: center !important;
}

body.site-huipil.menu-page .menu-online__note,
body.site-huipil.menu-page .menu-online__fine {
  text-align: center !important;
  margin-inline: auto !important;
  max-width: var(--tex-prose-max) !important;
}

body.site-huipil.menu-page .order-strip {
  text-align: center !important;
}

body.site-huipil.menu-page .order-strip__actions {
  display: flex !important;
  justify-content: center !important;
}

body.site-huipil.menu-page .order-strip__actions .btn-order {
  max-width: 16rem !important;
}

body.site-huipil.menu-page .menu-view-tabs,
body.site-huipil.menu-page .menu-online__tabs {
  justify-content: center !important;
}

body.site-huipil.menu-page .menu-online__toolbar {
  justify-content: center !important;
}

body.site-huipil.menu-page .menu-online__lang {
  margin-inline: auto 0 !important;
}

@media (max-width: 768px) {
  body.site-huipil .header {
    flex-wrap: nowrap !important;
  }

  body.site-huipil .header .logo {
    max-width: min(48vw, 200px) !important;
  }

  body.site-huipil .header .logo__title {
    font-size: 1.2rem !important;
  }

  body.site-huipil .header .nav a:not(.nav-menu-cta) {
    font-size: 0.75rem !important;
    padding: 0.4rem 0.55rem !important;
  }

  body.site-huipil .reviews-cta .btn {
    flex: 1 1 100% !important;
  }

  body.site-huipil .visit-flow__share .btn,
  body.site-huipil .feat-share-row .btn {
    flex: 1 1 calc(50% - 0.25rem) !important;
  }
}

/* ── v38 · visit section — useful, on-theme, stacked flow ── */
body.site-huipil .visit-section--flow {
  padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 3vw, 1.5rem) !important;
}

body.site-huipil .visit-flow {
  max-width: var(--tex-content-max) !important;
  margin-inline: auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-radius: var(--tex-radius-lg) !important;
  background: var(--tex-cream-light) !important;
  box-shadow: var(--tex-shadow-lift) !important;
  overflow: hidden !important;
}

body.site-huipil .visit-flow::before {
  display: none !important;
}

body.site-huipil .visit-flow__head {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.35rem !important;
  padding: clamp(1.25rem, 3vw, 1.75rem) clamp(1rem, 3vw, 1.5rem) 0.85rem !important;
  border-bottom: none !important;
  background: transparent !important;
}

body.site-huipil .visit-flow__head .section-tag {
  margin-bottom: 0.15rem !important;
}

body.site-huipil .visit-flow__head h2 {
  font-size: clamp(1.45rem, 3.5vw, 2rem) !important;
  margin: 0 !important;
}

body.site-huipil .visit-flow__lead {
  margin: 0.35rem auto 0 !important;
  max-width: 36rem !important;
  font-size: 0.9375rem !important;
  line-height: 1.6 !important;
  color: var(--tex-ink-soft) !important;
  text-align: center !important;
}

body.site-huipil .visit-flow__status {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  margin: 0 clamp(1rem, 3vw, 1.5rem) 0.85rem !important;
  padding: 0.65rem 0.85rem !important;
  background: var(--tex-linen) !important;
  background-image: var(--tex-weave-svg) !important;
  background-size: 48px 48px !important;
  border: 1px solid rgba(61, 38, 24, 0.08) !important;
  border-radius: var(--tex-radius-sm) !important;
  text-align: left !important;
}

body.site-huipil .visit-flow__status-dot {
  flex-shrink: 0 !important;
  width: 9px !important;
  height: 9px !important;
  border-radius: 50% !important;
  background: #4ade80 !important;
  box-shadow: 0 0 10px rgba(74, 222, 128, 0.55) !important;
}

body.site-huipil .visit-flow__status-dot.is-closed {
  background: var(--tex-red) !important;
  box-shadow: 0 0 8px rgba(200, 50, 46, 0.45) !important;
}

body.site-huipil .visit-flow__status-copy {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.1rem !important;
  min-width: 0 !important;
}

body.site-huipil .visit-flow__status-label {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: var(--tex-ink) !important;
}

body.site-huipil .visit-flow__status-sub {
  font-size: 0.75rem !important;
  color: var(--tex-ink-soft) !important;
  line-height: 1.35 !important;
}

body.site-huipil .visit-flow__hours {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin: 0 !important;
  border-top: 1px solid rgba(61, 38, 24, 0.08) !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
  background: var(--tex-cream) !important;
}

body.site-huipil .visit-flow__hour {
  padding: 0.85rem 0.65rem !important;
  gap: 0.25rem !important;
  border-right: 1px solid rgba(61, 38, 24, 0.07) !important;
}

body.site-huipil .visit-flow__days {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  line-height: 1.3 !important;
}

body.site-huipil .visit-flow__time {
  font-family: var(--tex-font-display) !important;
  font-size: clamp(0.95rem, 2.2vw, 1.15rem) !important;
  font-weight: 600 !important;
  color: var(--tex-red-deep) !important;
  line-height: 1.1 !important;
}

body.site-huipil .visit-flow__hour--closed {
  background: rgba(200, 50, 46, 0.06) !important;
}

body.site-huipil .visit-flow__hour--closed .visit-flow__time {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
}

body.site-huipil .visit-flow__map {
  display: block !important;
  width: 100% !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__map-frame {
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: var(--tex-linen) !important;
}

body.site-huipil .visit-flow__map-frame .map-wrap__toolbar {
  justify-content: center !important;
  gap: 0.4rem !important;
  padding: 0.5rem 0.75rem !important;
  background: var(--tex-cream-light) !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .map-wrap__type {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  text-transform: none !important;
  padding: 0.38rem 0.85rem !important;
  border-radius: var(--tex-radius-pill) !important;
  border: 1.5px solid rgba(61, 38, 24, 0.18) !important;
  background: var(--tex-cream-light) !important;
  color: var(--tex-ink-soft) !important;
}

body.site-huipil .map-wrap__type.is-active {
  background: var(--tex-navy) !important;
  border-color: var(--tex-navy-deep) !important;
  color: #fffefb !important;
}

body.site-huipil .map-wrap__type:hover {
  border-color: var(--tex-gold) !important;
  color: var(--tex-red-deep) !important;
}

body.site-huipil .visit-flow__map-frame .map-wrap__frame,
body.site-huipil .map-wrap__frame {
  min-height: 240px !important;
  height: clamp(240px, 42vw, 340px) !important;
  background: var(--tex-linen) !important;
}

body.site-huipil .visit-flow__card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.85rem !important;
  padding: clamp(1.1rem, 3vw, 1.5rem) !important;
  text-align: center !important;
  background: var(--tex-cream-light) !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__contact {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.3rem !important;
  margin: 0 !important;
  font-style: normal !important;
}

body.site-huipil .visit-flow__addr {
  font-family: var(--tex-font-display) !important;
  font-size: clamp(1.15rem, 2.8vw, 1.35rem) !important;
  font-weight: 600 !important;
  color: var(--tex-red-deep) !important;
  line-height: 1.15 !important;
}

body.site-huipil .visit-flow__city {
  font-size: 0.9375rem !important;
  color: var(--tex-ink-soft) !important;
  font-weight: 500 !important;
}

body.site-huipil .visit-flow__phones {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.5rem 0.85rem !important;
  margin-top: 0.25rem !important;
}

body.site-huipil .visit-flow__phone {
  display: inline-flex !important;
  align-items: center !important;
  min-height: var(--btn-h-sm) !important;
  padding: 0.45rem 0.9rem !important;
  font-family: var(--tex-font-ui) !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  color: var(--tex-navy) !important;
  text-decoration: none !important;
  background: #fffefb !important;
  border: 1.5px solid rgba(61, 38, 24, 0.14) !important;
  border-radius: var(--tex-radius-pill) !important;
  box-shadow: var(--btn-shadow) !important;
  transition: border-color 0.18s var(--tex-ease), color 0.18s var(--tex-ease) !important;
}

body.site-huipil .visit-flow__phone:hover {
  border-color: var(--tex-gold) !important;
  color: var(--tex-red-deep) !important;
}

body.site-huipil .visit-flow__actions--primary {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0.5rem !important;
  width: 100% !important;
  max-width: 28rem !important;
}

body.site-huipil .visit-flow__actions--primary .btn {
  width: 100% !important;
  min-height: var(--btn-h) !important;
}

body.site-huipil .visit-flow__actions--secondary {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.45rem !important;
  width: 100% !important;
  max-width: 32rem !important;
}

body.site-huipil .visit-flow__actions--secondary .btn {
  flex: 1 1 calc(50% - 0.25rem) !important;
  min-width: min(100%, 9.5rem) !important;
  min-height: var(--btn-h-sm) !important;
  font-size: 0.78rem !important;
}

body.site-huipil .visit-flow__social-ig {
  color: var(--tex-red-deep) !important;
  border-color: rgba(154, 50, 116, 0.35) !important;
}

body.site-huipil .visit-flow__social-ig:hover {
  background: linear-gradient(135deg, rgba(240, 148, 51, 0.12), rgba(188, 24, 136, 0.1)) !important;
  border-color: var(--tex-magenta) !important;
  color: var(--tex-magenta) !important;
}

body.site-huipil .visit-flow__share {
  padding: 0.85rem clamp(0.85rem, 3vw, 1.25rem) 1rem !important;
  background: var(--tex-linen) !important;
  border-top: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__share .btn {
  min-height: var(--btn-h-sm) !important;
  font-size: 0.78rem !important;
  flex: 1 1 auto !important;
  min-width: min(100%, 8.5rem) !important;
  max-width: 11rem !important;
}

@media (max-width: 640px) {
  body.site-huipil .visit-flow__hours {
    grid-template-columns: 1fr !important;
  }

  body.site-huipil .visit-flow__hour {
    border-right: none !important;
    border-bottom: 1px solid rgba(61, 38, 24, 0.07) !important;
    padding: 0.75rem 1rem !important;
  }

  body.site-huipil .visit-flow__hour:last-child {
    border-bottom: none !important;
  }

  body.site-huipil .visit-flow__actions--primary {
    grid-template-columns: 1fr !important;
    max-width: 18rem !important;
  }

  body.site-huipil .visit-flow__actions--secondary .btn {
    flex: 1 1 100% !important;
    max-width: 18rem !important;
  }

  body.site-huipil .visit-flow__share .btn {
    flex: 1 1 100% !important;
    max-width: 18rem !important;
  }
}

/* ── v39 · visit section calm — essentials only ── */
body.site-huipil .visit-flow__head {
  padding-bottom: 0.65rem !important;
}

body.site-huipil .visit-flow__lead,
body.site-huipil .visit-flow__status,
body.site-huipil .visit-flow__share,
body.site-huipil .visit-flow__actions--secondary,
body.site-huipil .visit-flow__city,
body.site-huipil .visit-flow__phones,
body.site-huipil .visit-flow .map-wrap__toolbar {
  display: none !important;
}

body.site-huipil .visit-flow__card {
  gap: 0.75rem !important;
  padding: 1.1rem clamp(1rem, 3vw, 1.35rem) 1.25rem !important;
  border-bottom: none !important;
}

body.site-huipil .visit-flow__contact {
  gap: 0.45rem !important;
}

body.site-huipil .visit-flow__addr {
  font-family: var(--tex-font-body) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--tex-ink) !important;
  line-height: 1.45 !important;
}

body.site-huipil .visit-flow__phone {
  min-height: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--tex-navy) !important;
}

body.site-huipil .visit-flow__phone:hover {
  color: var(--tex-red-deep) !important;
}

body.site-huipil .visit-flow__actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0.5rem !important;
  width: 100% !important;
  max-width: 22rem !important;
  margin: 0 auto !important;
}

body.site-huipil .visit-flow__actions .btn {
  width: 100% !important;
  min-height: var(--btn-h-sm) !important;
}

body.site-huipil .visit-flow__map-frame .map-wrap__frame {
  height: clamp(220px, 38vw, 300px) !important;
  min-height: 220px !important;
}

@media (max-width: 640px) {
  body.site-huipil .visit-flow__actions {
    grid-template-columns: 1fr !important;
    max-width: 16rem !important;
  }
}

/* ── v40 · no duplicate bottom chrome ── */
body.site-huipil .mobile-cta {
  display: none !important;
}

body.site-huipil.has-mobile-cta {
  padding-bottom: var(--safe-bottom, 0px) !important;
}

/* ── v41 · visit layout — info + map split ── */
body.site-huipil .visit-flow__hours,
body.site-huipil .visit-flow__card {
  display: none !important;
}

body.site-huipil .visit-flow__head {
  padding: clamp(1.1rem, 3vw, 1.5rem) clamp(1.25rem, 3vw, 1.75rem) 0.75rem !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.07) !important;
}

body.site-huipil .visit-flow__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr) !important;
  align-items: stretch !important;
  min-height: 0 !important;
}

body.site-huipil .visit-flow__aside {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 1.25rem !important;
  padding: clamp(1.15rem, 2.5vw, 1.65rem) clamp(1.1rem, 2.5vw, 1.5rem) !important;
  background: var(--tex-linen) !important;
  background-image: var(--tex-weave-svg) !important;
  background-size: 56px 56px !important;
  border-right: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__block {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.55rem !important;
  width: 100% !important;
}

body.site-huipil .visit-flow__label {
  margin: 0 !important;
  font-family: var(--tex-font-ui) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--tex-wood-mid) !important;
  text-align: left !important;
}

body.site-huipil .visit-flow__schedule {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-radius: var(--tex-radius-sm) !important;
  overflow: hidden !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil .visit-flow__slot {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.75rem !important;
  padding: 0.7rem 0.85rem !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.07) !important;
}

body.site-huipil .visit-flow__slot:last-child {
  border-bottom: none !important;
}

body.site-huipil .visit-flow__slot--closed {
  background: rgba(200, 50, 46, 0.05) !important;
}

body.site-huipil .visit-flow__slot-days {
  font-family: var(--tex-font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--tex-ink) !important;
  line-height: 1.35 !important;
  text-align: left !important;
}

body.site-huipil .visit-flow__slot-time {
  flex-shrink: 0 !important;
  font-family: var(--tex-font-display) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--tex-red-deep) !important;
  white-space: nowrap !important;
}

body.site-huipil .visit-flow__slot--closed .visit-flow__slot-time {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  color: var(--tex-red) !important;
}

body.site-huipil .visit-flow__contact {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.2rem !important;
  margin: 0 !important;
  font-style: normal !important;
  text-align: left !important;
}

body.site-huipil .visit-flow__addr {
  font-family: var(--tex-font-display) !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: var(--tex-red-deep) !important;
  line-height: 1.2 !important;
}

body.site-huipil .visit-flow__city {
  display: block !important;
  font-size: 0.875rem !important;
  color: var(--tex-ink-soft) !important;
  font-weight: 500 !important;
}

body.site-huipil .visit-flow__phone {
  margin-top: 0.35rem !important;
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  color: var(--tex-navy) !important;
  text-decoration: none !important;
}

body.site-huipil .visit-flow__phone:hover {
  color: var(--tex-red-deep) !important;
}

body.site-huipil .visit-flow__actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0.45rem !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0.15rem 0 0 !important;
}

body.site-huipil .visit-flow__map-col {
  display: flex !important;
  min-height: 100% !important;
  background: var(--tex-cream) !important;
}

body.site-huipil .visit-flow__map-col .visit-flow__map-frame {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

body.site-huipil .visit-flow__map-col .map-wrap__frame {
  flex: 1 !important;
  min-height: 280px !important;
  height: 100% !important;
}

@media (max-width: 820px) {
  body.site-huipil .visit-flow__grid {
    grid-template-columns: 1fr !important;
  }

  body.site-huipil .visit-flow__aside {
    border-right: none !important;
    border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
  }

  body.site-huipil .visit-flow__map-col .map-wrap__frame {
    min-height: 240px !important;
    height: clamp(240px, 52vw, 320px) !important;
  }
}

@media (max-width: 480px) {
  body.site-huipil .visit-flow__slot {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.2rem !important;
  }

  body.site-huipil .visit-flow__actions {
    grid-template-columns: 1fr !important;
  }
}

/* ── v42 · visit layout — map band + dual panels ── */
body.site-huipil .visit-flow__grid,
body.site-huipil .visit-flow__aside,
body.site-huipil .visit-flow__map-col,
body.site-huipil .visit-flow__block,
body.site-huipil .visit-flow__schedule,
body.site-huipil .visit-flow__slot {
  display: none !important;
}

body.site-huipil .visit-flow__head {
  padding: clamp(1.1rem, 3vw, 1.5rem) clamp(1.25rem, 3vw, 1.75rem) 0.85rem !important;
  border-bottom: none !important;
}

body.site-huipil .visit-flow__city {
  display: block !important;
}

body.site-huipil .visit-flow__stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

body.site-huipil .visit-flow__map-band {
  padding: 0 clamp(1rem, 2.5vw, 1.5rem) !important;
  background: var(--tex-linen) !important;
  background-image: var(--tex-weave-svg) !important;
  background-size: 56px 56px !important;
}

body.site-huipil .visit-flow__map-band .visit-flow__map-frame {
  margin: 0 !important;
  border: 1px solid rgba(61, 38, 24, 0.12) !important;
  border-radius: var(--tex-radius-md) !important;
  overflow: hidden !important;
  box-shadow: var(--tex-shadow-soft) !important;
  background: var(--tex-cream) !important;
}

body.site-huipil .visit-flow__map-band .map-wrap__frame {
  height: clamp(200px, 34vw, 300px) !important;
  min-height: 200px !important;
}

body.site-huipil .visit-flow__details {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 !important;
  border-top: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__panel {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.65rem !important;
  padding: clamp(1.1rem, 2.5vw, 1.5rem) clamp(1.1rem, 2.5vw, 1.45rem) clamp(1.2rem, 2.5vw, 1.55rem) !important;
  background: var(--tex-cream-light) !important;
}

body.site-huipil .visit-flow__panel--hours {
  border-right: 1px solid rgba(61, 38, 24, 0.08) !important;
  background: var(--tex-linen) !important;
  background-image: var(--tex-weave-svg) !important;
  background-size: 56px 56px !important;
}

body.site-huipil .visit-flow__panel--location {
  align-items: flex-start !important;
  justify-content: center !important;
}

body.site-huipil .visit-flow__label {
  margin: 0 !important;
  font-family: var(--tex-font-ui) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--tex-wood-mid) !important;
  text-align: left !important;
}

body.site-huipil .visit-flow__tiles {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0.5rem !important;
  width: 100% !important;
}

body.site-huipil .visit-flow__tile {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 0.35rem !important;
  min-height: 4.5rem !important;
  padding: 0.65rem 0.7rem !important;
  background: var(--tex-cream-light) !important;
  border: 1px solid rgba(61, 38, 24, 0.1) !important;
  border-radius: var(--tex-radius-sm) !important;
  box-shadow: var(--tex-shadow-soft) !important;
}

body.site-huipil .visit-flow__tile--closed {
  background: rgba(200, 50, 46, 0.05) !important;
  border-color: rgba(200, 50, 46, 0.14) !important;
}

body.site-huipil .visit-flow__tile-days {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.625rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--tex-wood-mid) !important;
  line-height: 1.3 !important;
}

body.site-huipil .visit-flow__tile-time {
  font-family: var(--tex-font-display) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--tex-red-deep) !important;
  line-height: 1.2 !important;
}

body.site-huipil .visit-flow__tile--closed .visit-flow__tile-time {
  font-family: var(--tex-font-ui) !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  color: var(--tex-red) !important;
}

body.site-huipil .visit-flow__panel--location .visit-flow__contact {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.2rem !important;
  margin: 0 !important;
  font-style: normal !important;
  text-align: left !important;
}

body.site-huipil .visit-flow__panel--location .visit-flow__addr {
  font-family: var(--tex-font-display) !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: var(--tex-red-deep) !important;
  line-height: 1.2 !important;
}

body.site-huipil .visit-flow__panel--location .visit-flow__city {
  font-size: 0.875rem !important;
  color: var(--tex-ink-soft) !important;
  font-weight: 500 !important;
}

body.site-huipil .visit-flow__panel--location .visit-flow__phone {
  margin-top: 0.35rem !important;
  min-height: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  color: var(--tex-navy) !important;
  text-decoration: none !important;
}

body.site-huipil .visit-flow__panel--location .visit-flow__phone:hover {
  color: var(--tex-red-deep) !important;
}

body.site-huipil .visit-flow__panel--location .visit-flow__actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0.45rem !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0.25rem 0 0 !important;
}

body.site-huipil .visit-flow__panel--location .visit-flow__actions .btn {
  width: 100% !important;
  min-height: var(--btn-h-sm) !important;
}

@media (max-width: 820px) {
  body.site-huipil .visit-flow__details {
    grid-template-columns: 1fr !important;
  }

  body.site-huipil .visit-flow__panel--hours {
    border-right: none !important;
    border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
  }

  body.site-huipil .visit-flow__map-band .map-wrap__frame {
    height: clamp(200px, 48vw, 280px) !important;
  }
}

@media (max-width: 600px) {
  body.site-huipil .visit-flow__tiles {
    grid-template-columns: 1fr !important;
  }

  body.site-huipil .visit-flow__tile {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 0 !important;
    padding: 0.7rem 0.85rem !important;
  }

  body.site-huipil .visit-flow__panel--location .visit-flow__actions {
    grid-template-columns: 1fr !important;
  }
}

/* ── v43 · map band at bottom ── */
body.site-huipil .visit-flow__details {
  border-top: none !important;
  border-bottom: 1px solid rgba(61, 38, 24, 0.08) !important;
}

body.site-huipil .visit-flow__map-band {
  padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 2.5vw, 1.5rem) clamp(1.15rem, 2.5vw, 1.55rem) !important;
}

/* ── v44 · red Oaxacan textile accents ── */
body.site-huipil .header::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 6px !important;
  background: var(--tex-oax-zigzag-h) repeat-x center !important;
  background-size: 72px 9px !important;
  opacity: 0.72 !important;
  pointer-events: none !important;
}

body.site-huipil.pattern::before,
body.site-huipil.menu-page.pattern::before,
body.site-huipil.pay-page.pattern::before {
  display: block !important;
  content: '' !important;
  position: fixed !important;
  top: -28px !important;
  right: -32px !important;
  width: 130px !important;
  height: 130px !important;
  background: var(--tex-oax-star) no-repeat center / contain !important;
  opacity: 0.38 !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

body.site-huipil.pattern::after,
body.site-huipil.menu-page.pattern::after,
body.site-huipil.pay-page.pattern::after {
  display: block !important;
  content: '' !important;
  position: fixed !important;
  bottom: -36px !important;
  left: -36px !important;
  width: 110px !important;
  height: 110px !important;
  background: var(--tex-oax-star) no-repeat center / contain !important;
  transform: rotate(16deg) !important;
  opacity: 0.28 !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

body.site-huipil .feat-ribbon::before {
  background-image:
    var(--tex-oax-flores),
    var(--tex-weave-svg) !important;
  background-size: 88px 32px, 48px 48px !important;
  opacity: 0.14 !important;
}

body.site-huipil .visit-section.visit-section--flow::before {
  content: '' !important;
  display: block !important;
  width: min(var(--tex-content-max), 100%) !important;
  max-width: calc(100% - 2rem) !important;
  height: 4px !important;
  margin: 0 auto 0.65rem !important;
  background: var(--tex-oax-serape) !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 0 rgba(255, 252, 247, 0.45) inset !important;
}

body.site-huipil .visit-flow__head {
  background:
    var(--tex-oax-flores),
    var(--tex-cream-light) !important;
  background-size: 88px 32px, 100% 100% !important;
  border-bottom: 1px solid rgba(200, 50, 46, 0.1) !important;
}

body.site-huipil .visit-flow__panel--hours {
  background-image:
    var(--tex-oax-greca),
    var(--tex-oax-flores),
    var(--tex-weave-svg) !important;
  background-size: 48px 48px, 88px 32px, 56px 56px !important;
}

body.site-huipil .visit-flow__tile {
  position: relative !important;
  overflow: hidden !important;
}

body.site-huipil .visit-flow__tile::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 2px !important;
  background: var(--tex-oax-serape) !important;
}

body.site-huipil .visit-flow__tile--closed::before {
  background: linear-gradient(90deg, var(--tex-red-deep), var(--tex-red)) !important;
}

body.site-huipil .visit-flow__map-band {
  background:
    var(--tex-oax-flores),
    var(--tex-linen) !important;
  background-size: 88px 32px, 100% 100% !important;
}

body.site-huipil .visit-flow__map-band::before {
  content: '' !important;
  display: block !important;
  width: 100% !important;
  height: 6px !important;
  margin-bottom: 0.65rem !important;
  background: var(--tex-oax-zigzag-h) repeat-x center !important;
  background-size: 72px 9px !important;
  opacity: 0.7 !important;
}

body.site-huipil .visit-flow::before {
  width: 4px !important;
  background: var(--tex-oax-serape) !important;
}

/* ── v61 · roof at top · grid-centered hero copy ── */
@media (min-width: 901px) {
  body.site-huipil:not(.menu-page) .hero-layout {
    grid-template-columns: minmax(5.5rem, 1fr) minmax(0, 34rem) minmax(5.5rem, 1fr);
    max-width: min(58rem, 92vw);
  }

  body.site-huipil:not(.menu-page) .hero-floater--snap {
    --snap-w: clamp(50px, 4.6vw, 68px);
    width: var(--snap-w) !important;
    max-width: var(--snap-w) !important;
  }

  body.site-huipil .hero-floaters .hero-snap__paper {
    padding: 5px 5px 16px;
  }
}

/* ── v46 · full-theme Oaxacan textiles · brighter · sharper lines ── */
body.site-huipil.pattern,
body.site-huipil.menu-page.pattern,
body.site-huipil.pay-page.pattern {
  background-color: var(--tex-cream-light) !important;
  background-image:
    radial-gradient(ellipse 120% 80% at 50% -15%, rgba(255, 254, 249, 0.98) 0%, transparent 58%),
    radial-gradient(ellipse 80% 50% at 100% 0%, rgba(200, 50, 46, 0.04) 0%, transparent 52%),
    linear-gradient(180deg, #fffffe 0%, var(--tex-cream-light) 42%, var(--tex-cream) 100%),
    var(--tex-oax-stack) !important;
  background-size: 100% 100%, 100% 100%, 100% 100%, 88px 32px, 48px 48px, 64px 64px !important;
}

body.site-huipil > main,
body.site-huipil #main {
  position: relative;
  z-index: 1;
}

body.site-huipil > main::before,
body.site-huipil > main::after,
body.site-huipil #main::before,
body.site-huipil #main::after {
  content: '' !important;
  display: block !important;
  position: fixed !important;
  top: calc(var(--topbar-stack, 36px) + var(--header-h, 64px) + var(--tex-trim-h, 15px)) !important;
  bottom: 1.25rem !important;
  width: 5px !important;
  background: var(--tex-oax-zigzag-v) repeat-y center !important;
  background-size: 9px 72px !important;
  opacity: 0.55 !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

body.site-huipil > main::before,
body.site-huipil #main::before {
  left: max(4px, env(safe-area-inset-left, 0px)) !important;
}

body.site-huipil > main::after,
body.site-huipil #main::after {
  right: max(4px, env(safe-area-inset-right, 0px)) !important;
}

body.site-huipil.pattern::before,
body.site-huipil.menu-page.pattern::before,
body.site-huipil.pay-page.pattern::before {
  opacity: 0.55 !important;
}

body.site-huipil.pattern::after,
body.site-huipil.menu-page.pattern::after,
body.site-huipil.pay-page.pattern::after {
  opacity: 0.42 !important;
}

body.site-huipil .header {
  background-image:
    var(--tex-oax-flores),
    linear-gradient(180deg, #ffffff 0%, var(--tex-cream-light) 100%) !important;
  background-size: 88px 32px, 100% 100% !important;
  border-bottom: 2px solid rgba(200, 50, 46, 0.12) !important;
}

body.site-huipil .header::after {
  opacity: 0.92 !important;
}

body.site-huipil .tex-serape-trim__line {
  height: 4px !important;
}

body.site-huipil .tex-serape-trim__weave {
  height: 10px !important;
  opacity: 1 !important;
  border-top: 1px solid rgba(200, 50, 46, 0.16) !important;
  border-bottom: 1px solid rgba(200, 50, 46, 0.1) !important;
}

body.site-huipil {
  --tex-trim-h: 18px;
}

body.site-huipil .feat-ribbon::before {
  opacity: 0.22 !important;
}

body.site-huipil .feat-stats {
  background-image: var(--tex-oax-stack) !important;
  background-size: 88px 32px, 48px 48px, 48px 48px !important;
  border-top: 3px solid transparent !important;
  border-bottom: none !important;
}

body.site-huipil .feat-stats::before {
  display: block !important;
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 3px !important;
  background: var(--tex-oax-serape) !important;
  z-index: 1 !important;
}

body.site-huipil .feat-stats::after {
  display: block !important;
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 7px !important;
  background: var(--tex-oax-zigzag-h) repeat-x center !important;
  background-size: 72px 9px !important;
  opacity: 0.88 !important;
  z-index: 1 !important;
}

body.site-huipil .feat-stat::before {
  height: 3px !important;
  background: var(--tex-oax-serape) !important;
}

body.site-huipil .favorites-showcase::before,
body.site-huipil .story-spin-section::before,
body.site-huipil .reviews-section::before {
  width: min(72%, 520px) !important;
  height: 3px !important;
  margin-bottom: 1.35rem !important;
  background: var(--tex-oax-serape) !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset !important;
}

body.site-huipil .favorites-showcase {
  background-image: var(--tex-oax-flores), var(--tex-oax-greca) !important;
  background-size: 88px 32px, 48px 48px !important;
}

body.site-huipil .fav-card {
  border: 1px solid rgba(200, 50, 46, 0.16) !important;
}

body.site-huipil .fav-card::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 3px !important;
  background: var(--tex-oax-serape) !important;
  z-index: 3 !important;
}

body.site-huipil .story-spin__frame {
  background-image: var(--tex-oax-flores), var(--tex-cream-light) !important;
  background-size: 88px 32px, 100% 100% !important;
  border: 1px solid rgba(200, 50, 46, 0.14) !important;
}

body.site-huipil .story-spin__frame::before {
  width: 4px !important;
  background: var(--tex-oax-serape) !important;
}

body.site-huipil .story-spin__story {
  background-image: var(--tex-oax-greca), var(--tex-weave-svg) !important;
  background-size: 48px 48px, 56px 56px !important;
}

body.site-huipil .story-spin__roulette-label {
  background-image: var(--tex-oax-flores), var(--tex-cream-light) !important;
  background-size: 88px 32px, 100% 100% !important;
  border-left: 1px solid rgba(200, 50, 46, 0.12) !important;
}

body.site-huipil .reviews-section {
  background-image:
    var(--tex-oax-flores),
    var(--tex-oax-greca),
    linear-gradient(180deg, var(--tex-cream-light) 0%, var(--tex-cream) 100%) !important;
  background-size: 88px 32px, 48px 48px, 100% 100% !important;
}

body.site-huipil .review-card,
body.site-huipil .reviews-carousel__track .review-card {
  border-top: none !important;
  border: 1px solid rgba(200, 50, 46, 0.14) !important;
  background-image: var(--tex-oax-greca), var(--tex-cream-light) !important;
  background-size: 48px 48px, 100% 100% !important;
}

body.site-huipil .review-card::before,
body.site-huipil .reviews-carousel__track .review-card::before {
  content: '' !important;
  display: block !important;
  height: 3px !important;
  margin: -1px -1px 0 !important;
  background: var(--tex-oax-serape) !important;
  border-radius: var(--tex-radius-sm) var(--tex-radius-sm) 0 0 !important;
}

body.site-huipil .visit-flow {
  border: 1px solid rgba(200, 50, 46, 0.15) !important;
  background-image: var(--tex-oax-flores), var(--tex-cream-light) !important;
  background-size: 88px 32px, 100% 100% !important;
}

body.site-huipil .footer::before,
body.site-huipil footer.footer--slim::before {
  height: 4px !important;
  background: var(--tex-oax-serape) !important;
}

body.site-huipil .footer::after,
body.site-huipil footer.footer--slim::after {
  content: '' !important;
  display: block !important;
  height: 6px !important;
  background: var(--tex-oax-zigzag-h) repeat-x center !important;
  background-size: 72px 9px !important;
  opacity: 0.9 !important;
}

body.site-huipil.menu-page .order-strip::before {
  height: 4px !important;
  background: var(--tex-oax-serape) !important;
}

body.site-huipil.menu-page .order-strip::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 6px !important;
  background: var(--tex-oax-zigzag-h) repeat-x center !important;
  background-size: 72px 9px !important;
  opacity: 0.85 !important;
}

body.site-huipil .menu-card::before {
  height: 4px !important;
  background: var(--tex-oax-serape) !important;
}

body.site-huipil .menu-card,
body.site-huipil .order-cart-panel,
body.site-huipil.pay-page .pay-head,
body.site-huipil.pay-page .pay-summary,
body.site-huipil.pay-page .pay-card,
body.site-huipil .item-modal__dialog,
body.site-huipil .feat-stat,
body.site-huipil .visit-flow__tile {
  border-color: rgba(200, 50, 46, 0.14) !important;
}

body.site-huipil.welcome-page .popup {
  background-image: var(--tex-oax-flores), var(--tex-oax-greca), var(--tex-cream-light) !important;
  background-size: 88px 32px, 48px 48px, 100% 100% !important;
  border: 1px solid rgba(200, 50, 46, 0.16) !important;
}

@media (max-width: 768px) {
  body.site-huipil > main::before,
  body.site-huipil > main::after,
  body.site-huipil #main::before,
  body.site-huipil #main::after {
    display: none !important;
  }
}

/* ── v47 · acclaim — scrolling carousel visible; grid hidden (JS populates both) ── */
body.site-huipil .reviews-section {
  position: relative !important;
  z-index: 2 !important;
  overflow: visible !important;
}

body.site-huipil .reviews-grid {
  display: none !important;
}

body.site-huipil .reviews-carousel-wrap {
  display: block !important;
  visibility: visible !important;
  min-height: 7.5rem !important;
  margin: 0.75rem 0 1.15rem !important;
  overflow: hidden !important;
}

body.site-huipil .reviews-cta {
  margin-top: 1rem !important;
}

body.site-huipil .visit-section.visit-section--flow {
  position: relative !important;
  z-index: 1 !important;
  margin-top: 0 !important;
}

