/*
Theme Name: Hello Elementor Trend Mexico
Theme URI: https://www.trendmexico.com
Description: Child theme con identidad visual Trend Mexico (paleta dark + gold + serif editorial). Aplica sobre Hello Elementor sin reemplazarlo. Reversible: cambiar de tema en wp-admin -> Apariencia -> Temas.
Author: Trend Mexico
Author URI: https://www.trendmexico.com
Template: hello-elementor
Version: 2.9.69
Text Domain: hello-elementor-trend
Tags: dark, editorial, magazine, elementor
*/

/* =========================================================
   TREND MEXICO DESIGN TOKENS — v1.4 paleta editorial
   Azul royal #2563EB (primary) + Rojo crimson #DC2626 (accent)
   Inspirado en revistas digitales tipo The New York Times Mag,
   Monocle, Wallpaper* — minimal pero con golpes de color decisivos.
   ========================================================= */
:root {
  /* Backgrounds */
  --tm-bg:        #0A0A0A;
  --tm-surface:   #131313;
  --tm-surface-2: #1A1A1A;

  /* PRIMARY — Royal Blue eléctrico (CTA, links, highlights) */
  /* Notamos que las variables se siguen llamando "gold/burgundy"
     por compatibilidad con todo el CSS escrito. Solo cambiamos VALORES. */
  --tm-gold:        #2563EB;  /* royal blue */
  --tm-gold-100:    #DBEAFE;  /* tint claro */
  --tm-gold-400:    #3B82F6;  /* hover */
  --tm-gold-700:    #1D4ED8;  /* active */

  /* ACCENT — Crimson red (eventos, urgencia, "leer más") */
  --tm-burgundy:    #DC2626;  /* crimson */
  --tm-burgundy-400:#EF4444;  /* lighter */

  /* Text — slate más editorial */
  --tm-ink:      #F5F5F0;
  --tm-ink-dim:  #94A3B8;     /* slate-400 — neutral, no calido */
  --tm-ink-mute: #64748B;     /* slate-500 */

  /* Lines */
  --tm-line:  #1E293B;        /* slate-800 sutil */
  --tm-line-2:#334155;        /* slate-700 — el equivalente al "gold-tinted" antes */

  /* Type */
  --tm-font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --tm-font-body:    'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;

  /* Spacing scale (4pt grid) */
  --tm-space-1: 4px; --tm-space-2: 8px; --tm-space-3: 12px;
  --tm-space-4: 16px; --tm-space-5: 20px; --tm-space-6: 24px;
  --tm-space-8: 32px; --tm-space-10: 40px; --tm-space-12: 48px;
  --tm-space-16: 64px; --tm-space-20: 80px;

  /* Radius */
  --tm-radius-sm: 6px;
  --tm-radius:    10px;
  --tm-radius-lg: 16px;

  /* Shadows */
  --tm-shadow-card: 0 12px 30px rgba(201, 169, 97, 0.08);
  --tm-shadow-card-hover: 0 16px 40px rgba(201, 169, 97, 0.16);
}

/* =========================================================
   BASE — html, body, typography defaults
   ========================================================= */
html { scroll-behavior: smooth; }

body,
body.elementor-page {
  background-color: var(--tm-bg) !important;
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-body) !important;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Headings — Playfair Display serif editorial */
h1, h2, h3, h4, h5, h6,
.entry-title,
.elementor-heading-title {
  font-family: var(--tm-font-display) !important;
  color: var(--tm-ink) !important;
  letter-spacing: -0.01em;
  font-weight: 700;
  line-height: 1.15;
  margin-top: 0;
}

h1, .entry-title { font-size: clamp(2rem, 4.5vw, 3.5rem); margin-bottom: var(--tm-space-6); }
h2 { font-size: clamp(1.625rem, 3vw, 2.25rem); margin-bottom: var(--tm-space-5); }
h3 { font-size: 1.5rem; margin-bottom: var(--tm-space-4); }
h4 { font-size: 1.25rem; margin-bottom: var(--tm-space-3); font-weight: 600; }
h5 { font-size: 1.125rem; margin-bottom: var(--tm-space-3); font-weight: 600; }
h6 { font-size: 1rem; margin-bottom: var(--tm-space-2); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

/* Paragraph + body text */
p, li, dd, dt, td, th, blockquote {
  color: var(--tm-ink-dim);
}
p { margin: 0 0 var(--tm-space-4); }
.entry-content p { color: var(--tm-ink); line-height: 1.7; font-size: 1.0625rem; }

/* Strong / em */
strong, b { color: var(--tm-ink); }
em, i { color: var(--tm-gold); font-style: italic; }

/* Links */
a {
  color: var(--tm-gold);
  text-decoration: none;
  transition: color .25s ease;
}
a:hover, a:focus { color: var(--tm-gold-400); text-decoration: underline; text-underline-offset: 3px; }
.entry-content a { border-bottom: 1px dashed rgba(201, 169, 97, 0.4); }
.entry-content a:hover { border-bottom-color: var(--tm-gold); }

/* Selection */
::selection { background: var(--tm-gold); color: var(--tm-bg); }

/* Focus rings (a11y) */
:focus-visible { outline: 2px solid var(--tm-gold); outline-offset: 3px; border-radius: var(--tm-radius-sm); }

/* Horizontal rules */
hr {
  border: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--tm-line-2) 30%, var(--tm-gold) 50%, var(--tm-line-2) 70%, transparent);
  opacity: .5;
  margin: var(--tm-space-12) 0;
}

/* Blockquote */
blockquote {
  border-left: 3px solid var(--tm-gold);
  padding-left: var(--tm-space-5);
  margin: var(--tm-space-8) 0;
  color: var(--tm-ink);
  font-family: var(--tm-font-display);
  font-size: 1.25rem;
  line-height: 1.5;
  font-style: italic;
}

/* Code */
code, kbd, pre {
  font-family: 'Courier New', Consolas, monospace;
  background: var(--tm-surface);
  color: var(--tm-gold);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.9em;
}

/* Lists */
ul, ol { padding-left: var(--tm-space-6); }
li { margin-bottom: var(--tm-space-2); color: var(--tm-ink); }
.entry-content ul li, .entry-content ol li { color: var(--tm-ink); line-height: 1.7; }

/* Images */
img { max-width: 100%; height: auto; }
.wp-block-image, figure { border-radius: var(--tm-radius); overflow: hidden; }

/* Tables */
table { width: 100%; border-collapse: collapse; margin: var(--tm-space-6) 0; }
th, td { padding: var(--tm-space-3) var(--tm-space-4); border-bottom: 1px solid var(--tm-line); }
th { background: var(--tm-surface); color: var(--tm-gold); font-family: var(--tm-font-body); font-weight: 600; text-align: left; }
tr:hover td { background: rgba(22, 22, 22, 0.5); }

/* =========================================================
   BUTTONS (WordPress + Elementor)
   ========================================================= */
button,
input[type="submit"],
input[type="button"],
.button,
.wp-block-button__link,
.elementor-button {
  font-family: var(--tm-font-body) !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  background: var(--tm-gold) !important;
  color: var(--tm-bg) !important;
  border: none !important;
  border-radius: var(--tm-radius-sm) !important;
  padding: 12px 24px !important;
  cursor: pointer;
  transition: background .25s ease, transform .15s ease !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  gap: var(--tm-space-2);
  min-height: 44px; /* a11y touch target */
}
button:hover,
input[type="submit"]:hover,
.button:hover,
.wp-block-button__link:hover,
.elementor-button:hover {
  background: var(--tm-gold-400) !important;
  color: var(--tm-bg) !important;
  text-decoration: none !important;
}
button:active,
.elementor-button:active { transform: translateY(1px); }

/* Outline / secondary buttons */
.is-style-outline .wp-block-button__link,
.elementor-button.elementor-button-link,
.elementor-button-outline {
  background: transparent !important;
  color: var(--tm-ink) !important;
  border: 1px solid var(--tm-line-2) !important;
}
.is-style-outline .wp-block-button__link:hover,
.elementor-button.elementor-button-link:hover {
  border-color: var(--tm-gold) !important;
  color: var(--tm-gold) !important;
  background: transparent !important;
}

/* =========================================================
   FORMS (Contact Form 7 + WP nativos)
   ========================================================= */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="search"],
input[type="date"],
input[type="time"],
textarea,
select,
.wpcf7-form-control:not(.wpcf7-submit) {
  background: rgba(10, 10, 10, 0.6) !important;
  color: var(--tm-ink) !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: var(--tm-radius-sm) !important;
  padding: 10px 14px !important;
  font-family: var(--tm-font-body) !important;
  font-size: 1rem !important;
  width: 100%;
  min-height: 44px;
  transition: border-color .25s ease;
}
input:focus, textarea:focus, select:focus,
.wpcf7-form-control:focus {
  border-color: var(--tm-gold) !important;
  outline: none !important;
}
input::placeholder, textarea::placeholder { color: var(--tm-ink-mute); }

label, .wpcf7-form label {
  color: var(--tm-ink-dim);
  font-size: 0.9375rem;
  font-weight: 500;
  display: block;
  margin-bottom: var(--tm-space-1);
}

/* CF7 specific */
.wpcf7-form .wpcf7-submit { background: var(--tm-gold) !important; color: var(--tm-bg) !important; }
.wpcf7-not-valid-tip { color: #ef5350 !important; font-size: 0.875rem; margin-top: 4px; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border-color: #ef5350 !important; color: #ef5350 !important; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #4caf50 !important; color: #4caf50 !important; }

/* =========================================================
   HEADER / NAVIGATION
   ========================================================= */
header, .site-header, .ehf-header {
  background: rgba(10, 10, 10, 0.85) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--tm-line) !important;
}

.site-title, .site-title a {
  font-family: var(--tm-font-display);
  color: var(--tm-ink) !important;
  font-weight: 800;
  font-size: 1.5rem;
}

/* Menu items — BLANCO default + UNDERLINE AZUL animado en hover/active (v1.9) */
.main-navigation a, nav a, .menu-item a {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-body);
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: none;
  transition: color .25s ease;
}
.main-navigation a:hover, nav a:hover, .menu-item a:hover,
.menu-item.current-menu-item a, .current_page_item a {
  color: var(--tm-gold) !important;
  text-decoration: none;
}

/* Underline azul animado en items del menu principal (no sub-menu) */
html body header .menu-item:not(.sub-menu .menu-item) > a,
html body header nav > ul > li > a,
html body .ehf-header .menu-item > a,
html body .elementor-nav-menu > li > a {
  position: relative;
  padding-bottom: 4px !important;
}
html body header .menu-item:not(.sub-menu .menu-item) > a::before,
html body header nav > ul > li > a::before,
html body .ehf-header .menu-item > a::before,
html body .elementor-nav-menu > li > a::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -2px;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--tm-gold);
  border-radius: 1px;
  transition: width .3s cubic-bezier(.2, .8, .2, 1);
  pointer-events: none;
}
html body header .menu-item:not(.sub-menu .menu-item):hover > a::before,
html body header .menu-item.current-menu-item > a::before,
html body header .menu-item.current-menu-ancestor > a::before,
html body .elementor-nav-menu > li:hover > a::before,
html body .elementor-nav-menu > li.current-menu-item > a::before {
  width: 80%;
}

/* Items con children (con chevron) -> ajustar padding-right del underline */
html body .menu-item-has-children > a::before {
  width: 0;
  /* el padding-right 22px del chevron ya esta en otra regla */
}
html body .menu-item-has-children:hover > a::before,
html body .menu-item-has-children.current-menu-item > a::before {
  width: calc(100% - 22px);
  left: 0;
  transform: none;
}

/* =========================================================
   FOOTER
   ========================================================= */
footer, .site-footer {
  background: var(--tm-bg) !important;
  border-top: 1px solid var(--tm-line);
  color: var(--tm-ink-dim);
  padding: var(--tm-space-12) 0;
}
footer a, .site-footer a { color: var(--tm-ink-dim); }
footer a:hover { color: var(--tm-gold); }
footer h4, footer h5 { color: var(--tm-gold) !important; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: 0.05em; }

/* =========================================================
   ELEMENTOR OVERRIDES (sin romper el editor)
   ========================================================= */
.elementor-section,
.elementor-container { background-color: transparent; }

.elementor-widget-text-editor p,
.elementor-widget-text-editor li { color: var(--tm-ink) !important; }

.elementor-widget-divider .elementor-divider-separator {
  background: linear-gradient(90deg, transparent, var(--tm-line-2) 30%, var(--tm-gold) 50%, var(--tm-line-2) 70%, transparent) !important;
  height: 1px !important;
  border: 0 !important;
}

/* Star ratings (kk-star-ratings plugin) — caja destacada centrada */
.kk-star-ratings,
.kksr-wrap {
  display: inline-flex !important;
  align-items: center;
  gap: var(--tm-space-3);
  background: var(--tm-surface);
  border: 1px solid var(--tm-line2);
  border-radius: var(--tm-radius);
  padding: var(--tm-space-3) var(--tm-space-5);
  margin: var(--tm-space-4) auto !important;
}
.kksr-stars { display: inline-flex !important; gap: 2px; }
.kksr-star .kksr-fuse,
.kksr-star.kksr-active,
.kksr-star.kksr-active svg,
.kksr-stars-active .kksr-star { color: var(--tm-gold) !important; fill: var(--tm-gold) !important; }
.kksr-legend {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-body);
  font-size: 0.9375rem;
  font-weight: 500;
}

/* =========================================================
   CARDS / WIDGETS / GENERIC CONTAINERS
   ========================================================= */
.wp-block-group,
.elementor-widget-wrap > .elementor-widget,
article {
  /* Don't force backgrounds on every container — only when explicit */
}

/* Sidebar widgets */
.widget,
.wp-block-group.has-background {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: var(--tm-radius) !important;
  padding: var(--tm-space-5);
  margin-bottom: var(--tm-space-5);
}
.widget-title { color: var(--tm-gold); font-family: var(--tm-font-display); font-size: 1.125rem; margin-bottom: var(--tm-space-4); }

/* =========================================================
   PAGE / POST CONTAINER
   ========================================================= */
.site-content, .site-main, main, #primary {
  padding-top: var(--tm-space-12);
  padding-bottom: var(--tm-space-12);
}

article.page, article.post {
  max-width: 920px;
  margin: 0 auto;
  padding-left: var(--tm-space-5);
  padding-right: var(--tm-space-5);
}

/* Page / post title H1 — central y prominente */
.entry-header,
.page-header {
  text-align: center;
  padding: var(--tm-space-8) 0 var(--tm-space-4);
  border-bottom: 1px solid var(--tm-line);
  margin-bottom: var(--tm-space-10);
}
.entry-title, .page-title {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(2.25rem, 5vw, 3.75rem) !important;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--tm-ink) !important;
}

/* Featured image: cuando es logo pequeno (cuadrada, <500px) -> centrada y limitada.
   Cuando es foto grande (rectangular hero) -> full width.
   No podemos detectar dimensiones desde CSS, asi que hacemos una version segura. */
.wp-post-image, .post-thumbnail img,
.entry-content > p > img:first-child {
  display: block;
  margin: 0 auto var(--tm-space-8);
  border-radius: var(--tm-radius-lg);
  height: auto;
  max-width: 100%;
}
/* Si el featured image es cuadrado (logo), limitar a 240px */
.wp-post-image[width][height][style*="square"],
.attachment-post-thumbnail.size-post-thumbnail {
  max-width: min(240px, 100%);
}

/* Entry content: paragraphs mas legibles */
.entry-content {
  color: var(--tm-ink) !important;
}
.entry-content p {
  color: var(--tm-ink) !important;
  font-size: 1.0625rem;
  line-height: 1.75;
  margin-bottom: var(--tm-space-5);
}
.entry-content > p:first-of-type {
  font-size: 1.1875rem;
  line-height: 1.7;
  color: var(--tm-ink) !important;
}

/* Bold/strong en contenido = blanco full */
.entry-content strong,
.entry-content b {
  color: var(--tm-ink) !important;
  font-weight: 600;
}

/* H2 en contenido — separador editorial */
.entry-content h2 {
  font-family: var(--tm-font-display) !important;
  color: var(--tm-ink) !important;
  font-size: 1.875rem;
  margin-top: var(--tm-space-12);
  margin-bottom: var(--tm-space-5);
  padding-top: var(--tm-space-6);
  border-top: 1px solid var(--tm-line);
}

/* H3 en contenido — accent gold con border left (subheading destacado) */
.entry-content h3 {
  font-family: var(--tm-font-display) !important;
  color: var(--tm-gold) !important;
  font-size: 1.5rem !important;
  font-weight: 600;
  margin-top: var(--tm-space-10);
  margin-bottom: var(--tm-space-3);
  padding-left: var(--tm-space-4);
  border-left: 3px solid var(--tm-gold);
}

/* H4 — ink full, mas pequeno que H3 */
.entry-content h4 {
  font-family: var(--tm-font-display) !important;
  color: var(--tm-ink) !important;
  font-size: 1.25rem !important;
  font-weight: 600;
  margin-top: var(--tm-space-6);
  margin-bottom: var(--tm-space-2);
}

/* H5, H6 — labels uppercase */
.entry-content h5, .entry-content h6 {
  font-family: var(--tm-font-body) !important;
  color: var(--tm-gold-100) !important;
  font-size: 0.875rem !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: var(--tm-space-5);
  margin-bottom: var(--tm-space-2);
}

/* Listas dentro de entry-content */
.entry-content ul, .entry-content ol {
  margin: var(--tm-space-4) 0 var(--tm-space-5);
  padding-left: var(--tm-space-6);
}
.entry-content li {
  color: var(--tm-ink) !important;
  margin-bottom: var(--tm-space-2);
  line-height: 1.7;
}
.entry-content ul li::marker { color: var(--tm-gold); }

/* Iframes (mapa Google embed) — bordeados y responsive */
.entry-content iframe {
  width: 100% !important;
  border-radius: var(--tm-radius);
  border: 1px solid var(--tm-line2) !important;
  margin: var(--tm-space-6) 0;
  aspect-ratio: 16/10;
}

/* =========================================================
   YOAST BREADCRUMBS
   ========================================================= */
#breadcrumbs, .yoast-breadcrumbs {
  font-size: 0.875rem;
  color: var(--tm-ink-dim);
  margin-bottom: var(--tm-space-5);
}
#breadcrumbs a, .yoast-breadcrumbs a { color: var(--tm-ink-dim); }
#breadcrumbs a:hover { color: var(--tm-gold); }
.breadcrumb_last { color: var(--tm-ink); }

/* =========================================================
   SEARCH FORM
   ========================================================= */
.search-form input[type="search"] { background: rgba(10, 10, 10, 0.6) !important; }

/* =========================================================
   ELEMENTOR PRO FORMS (form widget)
   ========================================================= */
.elementor-field-group input,
.elementor-field-group textarea,
.elementor-field-group select {
  background: rgba(10, 10, 10, 0.6) !important;
  color: var(--tm-ink) !important;
  border: 1px solid var(--tm-line-2) !important;
}

/* =========================================================
   IMAGE GALLERIES + WordPress core blocks
   ========================================================= */
.wp-block-gallery .wp-block-image,
.gallery-item img {
  border-radius: var(--tm-radius);
  border: 1px solid var(--tm-line);
  transition: transform .35s ease, border-color .35s ease;
}
.wp-block-gallery .wp-block-image:hover,
.gallery-item:hover img {
  transform: translateY(-3px);
  border-color: var(--tm-line-2);
}

/* =========================================================
   COMMENTS (si están activos)
   ========================================================= */
.comments-area, .comment-list { background: var(--tm-surface); border-radius: var(--tm-radius); padding: var(--tm-space-6); }
.comment-author cite { color: var(--tm-gold); }
.comment-meta a { color: var(--tm-ink-dim); }

/* =========================================================
   PAGINATION
   ========================================================= */
.page-numbers, .nav-links a {
  display: inline-block;
  padding: 8px 14px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius-sm);
  color: var(--tm-ink-dim);
  margin: 0 2px;
  text-decoration: none;
}
.page-numbers.current { background: var(--tm-gold); color: var(--tm-bg); border-color: var(--tm-gold); }
.page-numbers:hover { border-color: var(--tm-gold); color: var(--tm-gold); }

/* =========================================================
   LITESPEED CACHE PLACEHOLDERS (mantener consistencia visual)
   ========================================================= */
.lsi-pl, .litespeed-placeholder { background: var(--tm-surface) !important; }

/* =========================================================
   SCROLLBAR (WebKit)
   ========================================================= */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--tm-bg); }
::-webkit-scrollbar-thumb { background: #2A2520; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: var(--tm-line-2); }

/* =========================================================
   RESPONSIVE TWEAKS
   ========================================================= */
@media (max-width: 768px) {
  body { font-size: 16px; }
  h1, .entry-title { font-size: clamp(1.75rem, 7vw, 2.25rem); }
  h2 { font-size: clamp(1.375rem, 5vw, 1.625rem); }
  h3 { font-size: 1.25rem; }
  article.page, article.post { padding-left: var(--tm-space-4); padding-right: var(--tm-space-4); }
  hr { margin: var(--tm-space-8) 0; }
}

/* Reduce motion if user prefers */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* =========================================================
   AGGRESSIVE DARK MODE OVERRIDES
   Forzar bg dark en sections de Elementor / plugins / templates
   con background hardcoded blanco/claro.
   ========================================================= */

/* Cualquier elementor-section sin background-image -> dark */
.elementor-section:not([class*="elementor-section-bg-image"]):not(.tm-events-section):not(.has-bg-image) {
  background-color: var(--tm-bg) !important;
}

/* Inline style background-color: white|#fff|#ffffff -> override */
[style*="background-color: #fff"],
[style*="background-color:#fff"],
[style*="background-color: rgb(255"],
[style*="background-color: white"],
[style*="background:#fff"],
[style*="background: #fff"],
[style*="background:white"],
[style*="background: white"] {
  background-color: var(--tm-bg) !important;
  background: var(--tm-bg) !important;
}

/* Elementor widget wraps sin background especifico -> transparente */
.elementor-widget-wrap,
.elementor-widget-container {
  background-color: transparent !important;
}

/* Newsletter / subscribe sections (frecuentemente blancas) */
.elementor-section.elementor-newsletter,
[class*="newsletter"],
[id*="newsletter"],
.subscribe-section,
[class*="subscribe"]:not(.elementor-button) {
  background-color: var(--tm-surface) !important;
  color: var(--tm-ink) !important;
}
[class*="newsletter"] h1,
[class*="newsletter"] h2,
[class*="newsletter"] h3,
[class*="newsletter"] p,
[class*="newsletter"] span,
[id*="newsletter"] h1,
[id*="newsletter"] h2,
[id*="newsletter"] h3,
[id*="newsletter"] p {
  color: var(--tm-ink) !important;
}

/* Forzar headings de cualquier widget Elementor a ink */
.elementor-heading-title,
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5 {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display) !important;
}

/* Texto plano de Elementor */
.elementor-widget-text-editor,
.elementor-widget-text-editor *,
.elementor-text-editor,
.elementor-text-editor * {
  color: var(--tm-ink) !important;
}
.elementor-widget-text-editor p { color: var(--tm-ink) !important; }

/* Inputs de Elementor Pro Form (newsletter, contacto) */
.elementor-form input[type="email"],
.elementor-form input[type="text"],
.elementor-form input[type="tel"],
.elementor-form textarea,
.elementor-form select,
.elementor-newsletter-form input {
  background: rgba(10,10,10,0.6) !important;
  color: var(--tm-ink) !important;
  border: 1px solid var(--tm-line2) !important;
}
.elementor-form input::placeholder,
.elementor-newsletter-form input::placeholder { color: var(--tm-ink-mute) !important; }

/* SINGLE POST (entries de blog tipo Fernanfloo) */
body.single-post .elementor-section:not([class*="elementor-section-bg-image"]) {
  background-color: var(--tm-bg) !important;
}
body.single-post .elementor-section,
body.single-post article,
body.single-post .post {
  color: var(--tm-ink);
}
body.single-post h1,
body.single-post .entry-title,
body.single-post .elementor-widget-theme-post-title h1 {
  color: var(--tm-ink) !important;
  background: transparent !important;
}

/* Sidebar widgets (Últimas noticias) — texto perdido */
.widget_recent_entries a,
.widget-recent-posts a,
[class*="recent-posts"] a,
[class*="latest-posts"] a,
.elementor-post-list a,
.elementor-post__title a {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display);
}
.widget_recent_entries a:hover,
.elementor-post__title a:hover { color: var(--tm-gold) !important; }
.widget .post-date,
.elementor-post-date,
.elementor-post__meta-data,
[class*="post-meta"] {
  color: var(--tm-ink-dim) !important;
  font-size: 0.8125rem;
}

/* Listings inline tipo "Etiquetas / Categorías" en posts */
.tag-cloud, .post-categories, [class*="category-list"] a {
  color: var(--tm-gold) !important;
  background: rgba(37, 99, 235, 0.10);
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  margin-right: 6px;
  text-decoration: none !important;
}

/* =========================================================
   PLUGIN OVERRIDES — Sliders / Cards / Posts grids
   Forzar dark mode + tipografia + contraste correcto sobre
   cards de Advanced Post Slider, Content Views Pro, MetaSlider,
   Elementor Posts widget, y otros que renderean con bg propio.
   ========================================================= */

/* Advanced Post Slider (aps) */
.aps-slider, .aps-slider *, .aps-slide, .aps-content,
.aps-title, .aps-excerpt, .aps-meta,
[class*="aps-"], [class^="aps-"] {
  background-color: transparent !important;
  color: var(--tm-ink) !important;
}
.aps-title a, .aps-title { color: var(--tm-ink) !important; font-family: var(--tm-font-display); }
.aps-title a:hover { color: var(--tm-gold) !important; }
.aps-excerpt { color: var(--tm-ink-dim) !important; }
.aps-meta, .aps-date { color: var(--tm-ink-mute) !important; font-size: 0.8125rem; }
.aps-readmore, .aps-readmore a {
  color: var(--tm-burgundy) !important;
  background: transparent !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.75rem;
}
.aps-slide-wrapper, .aps-item {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 10px !important;
}

/* Content Views Pro / Content Views (cv-) */
.pt-cv-wrapper, .pt-cv-wrapper *,
.pt-cv-content-item, .pt-cv-title, .pt-cv-readmore, .pt-cv-meta,
[class*="pt-cv-"], .cv-card, [class*="cv-"] {
  background-color: transparent !important;
  color: var(--tm-ink) !important;
}
.pt-cv-content-item, .cv-card, .pt-cv-overlaygrid .pt-cv-content-item {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 10px !important;
  overflow: hidden;
}
.pt-cv-title-text, .pt-cv-title a, .cv-title, .cv-title a {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display) !important;
  font-weight: 600;
  text-decoration: none !important;
}
.pt-cv-title a:hover, .cv-title a:hover { color: var(--tm-gold) !important; }
.pt-cv-readmore, .cv-readmore {
  color: var(--tm-burgundy) !important;
  background: transparent !important;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.pt-cv-content-item p, .cv-content p, .pt-cv-content { color: var(--tm-ink-dim) !important; }
.pt-cv-meta { color: var(--tm-ink-mute) !important; font-size: 0.75rem; }

/* MetaSlider */
.metaslider, .metaslider *, .ml-slide, .flex-caption,
.flexslider .caption {
  background-color: transparent !important;
}
.metaslider .caption, .flex-caption {
  color: var(--tm-ink) !important;
  background: rgba(10,10,10,0.8) !important;
  backdrop-filter: blur(6px);
}

/* Elementor Posts widget */
.elementor-posts-container, .elementor-posts,
.elementor-post, .elementor-post__card, .elementor-post__text {
  background-color: transparent !important;
}
.elementor-post__card, .elementor-post-list .elementor-post {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 10px !important;
  overflow: hidden;
}
.elementor-post__title, .elementor-post__title a,
.elementor-post-list .elementor-post__title a {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display) !important;
  text-decoration: none !important;
}
.elementor-post__title a:hover { color: var(--tm-gold) !important; }
.elementor-post__excerpt p, .elementor-post__excerpt {
  color: var(--tm-ink-dim) !important;
}
.elementor-post__read-more, .elementor-post__read-more-wrapper a {
  color: var(--tm-burgundy) !important;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  text-decoration: none !important;
}
.elementor-post-date, .elementor-post__date {
  color: var(--tm-ink-mute) !important;
  font-size: 0.75rem;
}

/* Category badges en sliders/cards */
.aps-category, .pt-cv-cats, [class*="category-badge"],
.elementor-post__badge {
  background: var(--tm-burgundy) !important;
  color: var(--tm-ink) !important;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  padding: 4px 10px;
  border-radius: 999px;
}

/* Generic card override — cualquier .card / [class*="card"] sin bg explicito */
.wp-block-group,
.elementor-widget-wrap > .elementor-widget {
  /* dejar por defecto, no forzar bg */
}

/* =========================================================
   TYPOGRAPHIC HIGHLIGHTS — eliminar amarillos parasitos
   ========================================================= */

/* mark element (resaltado de texto) — nunca bg amarillo nativo */
mark, .mark, [class*="highlight"]:not(.tm-no-highlight-fix) {
  background: rgba(37, 99, 235, 0.18) !important;
  color: var(--tm-ink) !important;
  padding: 1px 4px;
  border-radius: 3px;
}

/* Forzar text-decoration: none en headings (evitar strike-through legacy) */
h1, h2, h3, h4, h5, h6,
.entry-title, .elementor-heading-title,
.widget-title, .widgettitle {
  text-decoration: none !important;
}

/* Strike-through solo cuando es intencional (clase explicita) */
.strikethrough, .line-through, s, strike, del {
  text-decoration: line-through;
}

/* Underline solo en links de entry-content (evitar underlines generales) */
.entry-content p a,
.entry-content li a {
  text-decoration: none !important;
  border-bottom: 1px solid rgba(37, 99, 235, 0.4);
  padding-bottom: 1px;
  transition: border-color .2s, color .2s;
}
.entry-content p a:hover, .entry-content li a:hover {
  border-bottom-color: var(--tm-gold);
  color: var(--tm-gold-400) !important;
}

/* Nav menu / nav links — sin underline nunca */
nav a, .menu a, header a {
  text-decoration: none !important;
}

/* Quitar background amarillo de cualquier elemento que lo tenga inline */
[style*="background-color: yellow"],
[style*="background-color: #ff0"],
[style*="background-color: #ffff"],
[style*="background-color: rgb(255, 255"],
[style*="background-color: rgb(255,255"],
[style*="background: yellow"] {
  background: transparent !important;
}

/* Slider overlays / filters tipicos que dan tonos amarillos/sepia */
.aps-overlay, .aps-image-overlay, .pt-cv-overlay,
[class*="overlay-yellow"], [class*="overlay-warm"] {
  background: linear-gradient(180deg, transparent 0%, rgba(10,10,10,0.6) 70%, rgba(10,10,10,0.95) 100%) !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

/* Imagenes en cards de plugin sin filtros */
.aps-slide img, .pt-cv-content-item img, .elementor-post__thumbnail img {
  filter: none !important;
}

/* Caption / overlay de texto sobre imagen en cards de plugins */
.aps-content, .pt-cv-content-item .pt-cv-content,
.elementor-post__text-wrapper {
  background: rgba(10,10,10,0.7) !important;
  backdrop-filter: blur(4px);
}

/* Botones de "Leer mas" / "Read more" / "Ver todo" en sliders y cards
   Diego pidió rojo de contraste para CTAs secundarios tipo "Leer más" */
a.read-more, a.readmore, a[class*="read-more"], a[class*="leer-mas"],
.elementor-button.read-more,
.elementor-post__read-more {
  color: var(--tm-burgundy) !important;
  background: transparent !important;
  border: none !important;
  padding: 8px 0 !important;
  font-weight: 700 !important;
  font-size: 0.8125rem !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none !important;
}
a.read-more:hover, a.readmore:hover { color: var(--tm-burgundy-400) !important; }

/* Boton "Ver todos / Ver todas" — primary blue */
a[class*="ver-todo"], a[class*="ver-todos"], a[class*="ver-todas"],
.btn-ver-todos {
  background: var(--tm-gold) !important;
  color: var(--tm-bg) !important;
  padding: 10px 20px !important;
  border-radius: 6px;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
}
a[class*="ver-todo"]:hover { background: var(--tm-gold-400) !important; color: var(--tm-bg) !important; }

/* =========================================================
   v1.5 — NUCLEAR OVERRIDES con specificidad alta usando body prefix
   Esto gana incluso cuando los plugins inyectan CSS DESPUES.
   Aplica a TODAS las pages: home, posts, pillars, archives.
   ========================================================= */

/* Cards de Content Views Pro — fix titulos invisibles */
body .pt-cv-view .pt-cv-content-item,
body .pt-cv-wrapper .pt-cv-content-item,
body .pt-cv-overlaygrid .pt-cv-content-item,
html body .pt-cv-content-item {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  color: var(--tm-ink) !important;
}

body .pt-cv-content-item .pt-cv-title-text,
body .pt-cv-content-item .pt-cv-title a,
body .pt-cv-title,
body .pt-cv-title a,
html body .pt-cv-content-item h2,
html body .pt-cv-content-item h3,
html body .pt-cv-content-item h4 {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display) !important;
  background: transparent !important;
  text-decoration: none !important;
  font-weight: 700 !important;
}
body .pt-cv-title a:hover,
html body .pt-cv-content-item h2:hover,
html body .pt-cv-content-item h3:hover { color: var(--tm-gold) !important; }

body .pt-cv-content-item p,
body .pt-cv-content-item .pt-cv-content,
body .pt-cv-content-item .pt-cv-excerpt,
html body .pt-cv-content-item .entry-summary,
html body .pt-cv-content-item .pt-cv-content-text {
  color: var(--tm-ink-dim) !important;
  background: transparent !important;
}

body .pt-cv-content-item .pt-cv-meta,
body .pt-cv-content-item .pt-cv-date,
html body .pt-cv-content-item time {
  color: var(--tm-ink-mute) !important;
  font-size: 0.75rem !important;
  background: transparent !important;
}

/* "Leer mas" en cards de Content Views Pro — crimson minimalista (no boton cyan) */
body .pt-cv-readmore,
body .pt-cv-content-item .pt-cv-readmore,
body .pt-cv-content-item a.pt-cv-readmore,
html body .pt-cv-readmore {
  background: transparent !important;
  color: var(--tm-burgundy) !important;
  border: none !important;
  padding: 8px 0 !important;
  font-weight: 700 !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
}
body .pt-cv-readmore::after { content: '→'; }
body .pt-cv-readmore:hover { color: var(--tm-burgundy-400) !important; gap: 10px; }

/* Imagenes circulares en cards CVP — mantener pero con border crimson sutil */
body .pt-cv-content-item img.pt-cv-thumbnail,
body .pt-cv-content-item .pt-cv-thumb-wrapper img,
html body .pt-cv-content-item img {
  border-radius: 50% !important;
  border: 2px solid var(--tm-line-2) !important;
  transition: border-color .3s ease, transform .3s ease !important;
}
body .pt-cv-content-item:hover img {
  border-color: var(--tm-gold) !important;
  transform: scale(1.02);
}

/* Title cards en home (Advanced Post Slider en home noticias) */
body .aps-title,
body .aps-title a,
body .aps-content h3,
body .aps-content .aps-title-text,
html body .aps-slide .aps-title {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display) !important;
  background: transparent !important;
  text-decoration: none !important;
  font-weight: 700 !important;
}
body .aps-content,
body .aps-content p,
body .aps-excerpt,
html body .aps-slide-content {
  color: var(--tm-ink-dim) !important;
  background: rgba(10,10,10,0.78) !important;
}

/* "Leer mas" / "READ MORE" boton tipo cyan / azul cielo — convertir a crimson */
body a.read-more-link,
body a.elementor-button.read-more,
body .read-more a,
body .pt-cv-content-item .read-more,
body .aps-readmore,
body .aps-slide a.aps-readmore,
html body button.read-more,
html body a[class*="read-more"]:not(.tm-btn) {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--tm-burgundy) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 6px 0 !important;
  font-weight: 700 !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

/* Specifically target cyan/light blue backgrounds as last resort */
[style*="background-color: #00bcd4"],
[style*="background-color: #2196f3"],
[style*="background-color: #03a9f4"],
[style*="background-color: cyan"],
[style*="background-color: lightblue"],
[style*="background-color: skyblue"] {
  background-color: transparent !important;
  background: transparent !important;
}

/* =========================================================
   EMAIL INPUT — MINIMALISTA EDITORIAL (newsletter section)
   Solo line bottom, transparente, elegante
   ========================================================= */

body input[type="email"],
body .elementor-form input[type="email"],
body form input[type="email"],
html body input.email-input,
html body input[name="email"] {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--tm-line-2) !important;
  border-radius: 0 !important;
  padding: 12px 4px !important;
  font-family: var(--tm-font-body) !important;
  font-size: 1.0625rem !important;
  color: var(--tm-ink) !important;
  letter-spacing: 0.02em;
  transition: border-color .3s ease;
  box-shadow: none !important;
  min-height: auto !important;
}
body input[type="email"]:focus,
body input[type="email"]:active,
html body input[name="email"]:focus {
  border-bottom-color: var(--tm-gold) !important;
  outline: none !important;
  box-shadow: 0 1px 0 0 var(--tm-gold) !important;
}
body input[type="email"]::placeholder,
html body input[name="email"]::placeholder {
  color: var(--tm-ink-mute) !important;
  font-style: italic;
  opacity: 0.7;
}

/* Newsletter section button — primary royal blue */
body .elementor-newsletter-form button,
body .newsletter-form button,
body form button[type="submit"]:not(.tm-btn):not(.wpcf7-submit),
html body input[type="submit"]:not(.tm-btn):not(.wpcf7-submit) {
  background: var(--tm-gold) !important;
  color: var(--tm-bg) !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 14px 28px !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  cursor: pointer;
  transition: background .25s ease, transform .15s ease;
  min-height: 48px;
}
body .elementor-newsletter-form button:hover,
html body input[type="submit"]:hover { background: var(--tm-gold-400) !important; transform: translateY(-1px); }

/* =========================================================
   v1.5 — CLUSTER CARDS estilo venue (en pillar pages CVP)
   Restaurantes, antros, bares grids con avatars circulares
   ========================================================= */

/* Pillar pages que usan Content Views Pro para listar venues */
body.tm-pillar .pt-cv-grid,
body.tm-pillar .pt-cv-content-item,
body .pt-cv-overlaygrid .pt-cv-content-item {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 12px !important;
  padding: 20px 16px !important;
  text-align: center;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease !important;
}
body.tm-pillar .pt-cv-content-item:hover,
body .pt-cv-content-item:hover {
  transform: translateY(-4px);
  border-color: var(--tm-line-2) !important;
  box-shadow: 0 12px 30px rgba(37, 99, 235, 0.08) !important;
}

/* Title centrado debajo de avatar */
body.tm-pillar .pt-cv-content-item .pt-cv-title,
body .pt-cv-content-item .pt-cv-title {
  text-align: center !important;
  margin: 16px 0 8px !important;
  font-size: 1.125rem !important;
}
body.tm-pillar .pt-cv-content-item .pt-cv-title a {
  display: block;
  border-bottom: none !important;
}

/* Excerpt centrado, max 3 lineas */
body.tm-pillar .pt-cv-content-item .pt-cv-content,
body .pt-cv-content-item .pt-cv-content {
  text-align: center !important;
  font-size: 0.875rem !important;
  line-height: 1.55 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0 !important;
}

/* "Leer Mas" centrado */
body.tm-pillar .pt-cv-readmore,
body .pt-cv-readmore {
  display: inline-flex !important;
  margin: 12px auto 0 !important;
  justify-content: center;
}

/* =========================================================
   v1.8 — FILOSOFIA BLANCO-FIRST: links blancos default,
   azul SOLO en hover/active. El blanco protagoniza, el azul
   acentua. Mas elegante, menos saturado.
   ========================================================= */

/* Links default: BLANCO. Hover: azul royal. */
a:not(.tm-btn):not(.tm-btn-primary):not(.tm-btn-secondary):not(.tm-btn-burgundy):not(.elementor-button):not([class*="elementor-button"]):not(.button):not(.wp-block-button__link):not(.tm-mobile-sticky-btn):not(.tm-pillar-card):not(.tm-nearby-card):not(.tm-contact-link),
a:visited:not(.tm-btn):not(.tm-btn-primary):not(.tm-btn-secondary):not(.tm-btn-burgundy):not(.elementor-button):not([class*="elementor-button"]):not(.button):not(.wp-block-button__link) {
  color: var(--tm-ink) !important;
}
a:not(.tm-btn):not(.elementor-button):not(.button):hover,
a:not(.tm-btn):not(.elementor-button):not(.button):focus {
  color: var(--tm-gold) !important;
}

/* Links dentro de body content (entry-content) — mantienen border-bottom azul para distinguir */
.entry-content p a, .entry-content li a {
  color: var(--tm-ink) !important;
  border-bottom: 1px solid rgba(37, 99, 235, 0.4);
}
.entry-content p a:hover, .entry-content li a:hover {
  color: var(--tm-gold) !important;
  border-bottom-color: var(--tm-gold) !important;
}

/* BUTTONS — texto siempre visible. Specificidad alta para ganar */
html body a.tm-btn,
html body a.tm-btn-primary,
html body button.tm-btn,
html body .tm-btn,
html body .tm-btn:visited,
html body .tm-btn:link,
html body .tm-btn:hover {
  text-decoration: none !important;
}

html body a.tm-btn-primary,
html body button.tm-btn-primary,
html body .tm-btn-primary,
html body .tm-btn-primary:visited,
html body .tm-btn-primary:link {
  background: var(--tm-gold) !important;
  color: #FFFFFF !important; /* blanco puro para texto en azul */
  border: none !important;
}
html body .tm-btn-primary:hover,
html body .tm-btn-primary:focus {
  background: var(--tm-gold-400) !important;
  color: #FFFFFF !important;
}

/* SECONDARY: outline azul (eliminar burgundy/crimson para CTAs) */
html body a.tm-btn-burgundy,
html body button.tm-btn-burgundy,
html body .tm-btn-burgundy,
html body .tm-btn-burgundy:visited,
html body .tm-btn-secondary,
html body .tm-btn-secondary:visited {
  background: transparent !important;
  color: var(--tm-gold) !important;
  border: 1px solid var(--tm-gold) !important;
}
html body .tm-btn-burgundy:hover,
html body .tm-btn-secondary:hover {
  background: rgba(37, 99, 235, 0.10) !important;
  color: var(--tm-gold-400) !important;
  border-color: var(--tm-gold-400) !important;
}

/* Sticky mobile bar buttons */
html body .tm-mobile-sticky-btn.tm-btn-primary {
  background: var(--tm-gold) !important;
  color: #FFFFFF !important;
}
html body .tm-mobile-sticky-btn.tm-btn-burgundy {
  background: transparent !important;
  color: var(--tm-gold) !important;
  border: 1px solid var(--tm-gold) !important;
}

/* Sidebar card eyebrow para "Eventos privados" — sin rojo, slate dim */
html body .tm-sidebar-card-burgundy {
  border-color: var(--tm-line-2) !important;
}
html body .tm-sidebar-card-burgundy .tm-sidebar-eyebrow {
  color: var(--tm-ink-dim) !important;
}

/* Pillar CTA footer secondary ya no rojo */
html body .tm-pillar-cta-buttons .tm-btn-secondary {
  background: transparent !important;
  color: var(--tm-gold) !important;
  border: 1px solid var(--tm-gold) !important;
}

/* Cualquier texto con color negro inline -> ink */
[style*="color: #000"],
[style*="color:#000"],
[style*="color: black"],
[style*="color:black"],
[style*="color: rgb(0, 0, 0)"],
[style*="color: rgb(0,0,0)"],
[style*="color: #1"],
[style*="color: #2"],
[style*="color: #333"],
[style*="color:#333"] {
  color: var(--tm-ink) !important;
}

/* Default body text — ink full por default, no dim */
body, body * {
  /* Solo aplica a textos sin clase especifica */
}

/* Bullet lists / icon lists de Elementor */
.elementor-icon-list-text,
.elementor-icon-list-item .elementor-icon-list-text,
ul.elementor-icon-list-items li {
  color: var(--tm-ink) !important;
}
.elementor-icon-list-icon i,
.elementor-icon-list-icon svg {
  color: var(--tm-gold) !important;
}

/* Cualquier texto con color negro inline -> ink */
[style*="color: #000"],
[style*="color:#000"],
[style*="color: black"],
[style*="color:black"],
[style*="color: rgb(0, 0, 0)"],
[style*="color: rgb(0,0,0)"],
[style*="color: #1"],
[style*="color: #2"],
[style*="color: #333"],
[style*="color:#333"] {
  color: var(--tm-ink) !important;
}

/* Default body text — ink full por default, no dim */
body, body * {
  /* Solo aplica a textos sin clase especifica */
}

/* Bullet lists / icon lists de Elementor */
.elementor-icon-list-text,
.elementor-icon-list-item .elementor-icon-list-text,
ul.elementor-icon-list-items li {
  color: var(--tm-ink) !important;
}
.elementor-icon-list-icon i,
.elementor-icon-list-icon svg {
  color: var(--tm-gold) !important;
}

/* =========================================================
   v1.6 — DROPDOWN MENU EPICO
   Header navigation sub-menu animado, dark, con glow sutil
   ========================================================= */

/* Container del menu principal */
nav#site-navigation, .main-navigation, .ehf-header nav,
.elementor-nav-menu--main, .elementor-nav-menu {
  position: relative;
  z-index: 100;
}

/* Items del menu */
.menu-item, .elementor-nav-menu li {
  position: relative;
}

/* Sub-menus (dropdowns) — DEFAULT HIDDEN */
.menu-item .sub-menu,
.elementor-nav-menu .sub-menu,
ul.menu li ul.sub-menu,
nav .sub-menu {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 0 !important;
  min-width: 240px;
  background: rgba(10, 10, 10, 0.96) !important;
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 12px !important;
  padding: 8px !important;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(37, 99, 235, 0.05),
    inset 0 1px 0 0 rgba(255, 255, 255, 0.04);
  list-style: none !important;

  /* Animation: invisible + ligeramente abajo, fade-in al hover */
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition:
    opacity .3s cubic-bezier(.2, .8, .2, 1),
    visibility .3s,
    transform .35s cubic-bezier(.2, .8, .2, 1);
  pointer-events: none;
}

/* Sub-menu visible en hover/focus del padre */
.menu-item:hover > .sub-menu,
.menu-item:focus-within > .sub-menu,
.elementor-nav-menu li:hover > .sub-menu,
.elementor-nav-menu li:focus-within > .sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* Items dentro del sub-menu — BLANCO default, azul SOLO en hover */
.sub-menu .menu-item,
.sub-menu li,
.elementor-nav-menu .sub-menu li {
  display: block !important;
  margin: 0 !important;
}
html body .sub-menu .menu-item a,
html body .sub-menu li a,
html body .elementor-nav-menu .sub-menu li a {
  display: block !important;
  padding: 10px 14px !important;
  font-size: 0.9375rem !important;
  font-family: var(--tm-font-body) !important;
  color: var(--tm-ink) !important;
  text-decoration: none !important;
  border-radius: 8px;
  border-left: 2px solid transparent;
  transition: background .2s ease, color .2s ease, border-color .25s ease, padding-left .25s ease !important;
}
html body .sub-menu .menu-item a:hover,
html body .sub-menu li a:hover,
html body .elementor-nav-menu .sub-menu li a:hover {
  background: rgba(37, 99, 235, 0.10) !important;
  color: var(--tm-gold) !important;
  border-left-color: var(--tm-gold);
  padding-left: 18px !important;
}

/* Active item en sub-menu — v2.0 fix: AZUL DE MARCA visible, sin bg que confunda */
html body .sub-menu .current-menu-item > a,
html body .sub-menu li.current-menu-item > a,
html body .sub-menu .current_page_item > a,
html body .sub-menu .current-menu-ancestor > a,
html body .sub-menu .current-menu-parent > a,
html body .elementor-nav-menu .sub-menu .current-menu-item > a,
html body .elementor-nav-menu .sub-menu .current-menu-ancestor > a {
  color: var(--tm-gold) !important;       /* AZUL #2563EB visible */
  background: transparent !important;     /* SIN bg para no confundir */
  border-left-color: var(--tm-gold) !important;
  font-weight: 700 !important;
}

/* Indicador del padre cuando dropdown esta abierto */
.menu-item-has-children > a::after,
.elementor-nav-menu li.menu-item-has-children > a::after {
  content: '⌄';
  display: inline-block;
  margin-left: 6px;
  font-size: 0.85em;
  transition: transform .25s ease;
  opacity: 0.7;
}
.menu-item-has-children:hover > a::after {
  transform: rotate(180deg);
  opacity: 1;
  color: var(--tm-gold);
}

/* Mobile dropdown — full width, no float — v2.3 minimalista */
@media (max-width: 768px) {
  .menu-item .sub-menu,
  .elementor-nav-menu .sub-menu {
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: transparent !important;
    border: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    padding-left: 18px !important;
    margin-top: 8px !important;
    border-left: 1px solid var(--tm-line-2) !important;
  }
  .sub-menu .menu-item a,
  .sub-menu li a {
    padding: 10px 12px !important;
    font-size: 0.875rem !important;
    color: var(--tm-ink-dim) !important;
    border-left: none !important;
  }
  .sub-menu .menu-item a:hover {
    color: var(--tm-gold) !important;
    background: transparent !important;
    padding-left: 16px !important;
    border-left: none !important;
  }
}

/* =========================================================
   v2.9.15 — VENUES GRID minimalista editorial (FIX alineacion + h3 reset)
   Cards alineadas en altura, meta row siempre al fondo, titles con
   reset agresivo (el theme aplicaba h3 azul + border-left que rompia
   el card). Concepto a 3 lineas (~25-30 palabras) vs 1 linea v2.9.14.
   ========================================================= */
.tm-venues-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
  margin: 28px 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 1024px) {
  .tm-venues-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}
@media (max-width: 640px) {
  .tm-venues-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 20px 0;
  }
}

.tm-venue-card {
  display: flex;
  flex-direction: column;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
  text-decoration: none !important;
  color: inherit !important;
  transition: transform 0.25s cubic-bezier(.2, .8, .2, 1);
  position: relative;
  isolation: isolate;
  height: 100%; /* iguala altura entre cards de la misma fila del grid */
}
.tm-venue-card:hover,
.tm-venue-card:focus-visible {
  transform: translateY(-2px);
}
.tm-venue-card:focus-visible {
  outline: 2px solid #2563EB;
  outline-offset: 4px;
}
/* Kill cualquier text-decoration heredada de <a>/<h3>/<p> dentro del card */
.tm-venue-card,
.tm-venue-card * {
  text-decoration: none !important;
}

/* Imagen del card: aspect ratio 4/3 con badge overlay */
.tm-venue-card-img {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--tm-surface-2, #1A1A1A);
  position: relative;
  border-radius: 6px;
  margin-bottom: 12px;
}
.tm-venue-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(.2, .8, .2, 1);
}
.tm-venue-card:hover .tm-venue-card-img img {
  transform: scale(1.04);
}
.tm-venue-card-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1A1A1A 0%, #131313 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.tm-venue-card-placeholder::before {
  content: '◆';
  color: rgba(255, 255, 255, 0.12);
  font-size: 40px;
}

/* Badge sobre la imagen (top-left) */
.tm-venue-card-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #FFFFFF;
  background: rgba(10, 10, 10, 0.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 5px 9px;
  border-radius: 3px;
  line-height: 1;
  z-index: 2;
}

/* Body del card: padding minimo, jerarquia condensada, flex column con
   meta-row pegada al fondo (margin-top: auto) para alinear visualmente
   las meta-rows de toda la fila al mismo nivel. */
.tm-venue-card-body {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  min-height: 0;
}

/* Title — RESET AGRESIVO contra h3 styles del theme/Elementor.
   El theme global pintaba h3 con color azul + border-left + line-height
   enorme; estas reglas hyper-especificas matan eso. */
.tm-venues-grid .tm-venue-card .tm-venue-card-title,
.tm-venues-grid h3.tm-venue-card-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.25 !important;
  color: #FFFFFF !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  text-transform: none !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  /* Altura fija para 2 lineas — alinea TODAS las cards: titles cortos
     y largos ocupan exactamente el mismo espacio vertical. */
  min-height: calc(17px * 1.25 * 2);
}
.tm-venues-grid .tm-venue-card .tm-venue-card-title::before,
.tm-venues-grid .tm-venue-card .tm-venue-card-title::after {
  content: none !important;
  display: none !important;
}

.tm-venues-grid .tm-venue-card .tm-venue-card-concepto {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.62) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  /* Altura fija para 3 lineas — venues con menos texto NO encogen
     el card; los excesos quedan truncados con ellipsis del line-clamp. */
  min-height: calc(13px * 1.5 * 3);
}

/* Meta row: horario + precio con iconos SVG. margin-top: auto la pega al
   fondo del card para que TODAS las meta-rows del grid queden alineadas
   horizontalmente sin importar el largo del concepto. min-height fijo
   asegura que cards sin meta NO colapsen su altura. */
.tm-venues-grid .tm-venue-card .tm-venue-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin: 12px 0 0 0 !important;
  padding: 10px 0 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin-top: auto !important;
  min-height: 32px; /* asegura altura aun cuando solo hay 1 item o 0 items */
}
/* Placeholder discreto para meta-row vacia (mantiene alineacion del grid) */
.tm-venues-grid .tm-venue-card .tm-venue-card-meta-empty {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 11px !important;
  color: rgba(255, 255, 255, 0.28) !important;
  font-style: italic;
  letter-spacing: 0.02em;
}
.tm-venues-grid .tm-venue-card .tm-venue-card-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.72) !important;
  letter-spacing: 0.005em;
  line-height: 1;
  white-space: nowrap;
}
.tm-venues-grid .tm-venue-card .tm-venue-card-meta-item svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  stroke: rgba(255, 255, 255, 0.5);
}

/* Override agresivo de cualquier estilo legacy del plugin Content Views
   que pueda quedar interfiriendo */
.pt-cv-wrapper,
.pt-cv-content-item,
.pt-cv-view {
  background: transparent !important;
}

/* =========================================================
   v2.9.18 — VENUE STATUS BADGES (closed / hub / event_space)
   Para venues que mantenemos indexados pero no operan o no son
   venues individuales. Badge visible + sidebar adaptado.
   ========================================================= */
.tm-venue-status-badge {
  display: inline-block;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  padding: 7px 14px;
  border-radius: 4px;
  margin-bottom: 14px;
  line-height: 1;
}
.tm-venue-status-badge.tm-status-closed {
  background: #DC2626;
  color: #FFFFFF;
  box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.3);
}
.tm-venue-status-badge.tm-status-hub {
  background: rgba(37, 99, 235, 0.18);
  color: #93C5FD;
  border: 1px solid rgba(37, 99, 235, 0.4);
}
.tm-venue-status-badge.tm-status-event {
  background: rgba(217, 119, 6, 0.18);
  color: #FCD34D;
  border: 1px solid rgba(217, 119, 6, 0.4);
}
.tm-venue-status-msg {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
  max-width: 640px;
  margin: 14px 0 18px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.04);
  border-left: 3px solid rgba(255, 255, 255, 0.25);
  border-radius: 0 4px 4px 0;
}

/* Lista de venues similares en sidebar */
.tm-sidebar-venue-list {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
}
.tm-sidebar-venue-list li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 10px 0;
}
.tm-sidebar-venue-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.tm-sidebar-venue-list li a {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--tm-ink, #FFFFFF);
  text-decoration: none;
  display: block;
  transition: color 0.18s ease;
}
.tm-sidebar-venue-list li a:hover {
  color: var(--tm-gold, #2563EB);
}

/* =========================================================
   v2.9.10 — HOME SEARCH "¿Qué experiencia buscas?"
   Buscador editorial con autocomplete de venues y pillars.
   Va debajo del rule del masthead.
   ========================================================= */
.tm-home-search {
  margin: 24px 0 40px;
  padding: 0;
}
.tm-home-search-inner {
  max-width: 720px;
  margin: 0 auto;
}
.tm-home-search-label {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--tm-ink);
  margin: 0 0 16px;
  text-align: center;
}
.tm-home-search-box {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--tm-surface);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 14px 18px;
  transition: border-color 0.18s ease, background 0.18s ease;
}
.tm-home-search-box:focus-within {
  border-color: #2563EB;
  background: var(--tm-surface-2);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.08);
}
.tm-home-search-icon {
  color: rgba(255, 255, 255, 0.45);
  flex-shrink: 0;
}
.tm-home-search-box:focus-within .tm-home-search-icon {
  color: #2563EB;
}
.tm-home-search-input {
  flex: 1;
  background: transparent;
  border: 0;
  outline: 0;
  color: var(--tm-ink);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1.4;
  padding: 0;
  min-width: 0;
}
.tm-home-search-input::placeholder {
  color: rgba(255, 255, 255, 0.4);
  font-weight: 300;
}
.tm-home-search-input::-webkit-search-decoration,
.tm-home-search-input::-webkit-search-cancel-button {
  display: none;
}
.tm-home-search-clear {
  background: transparent;
  border: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 22px;
  line-height: 1;
  padding: 0 4px;
  cursor: pointer;
  flex-shrink: 0;
}
.tm-home-search-clear:hover { color: #2563EB; }

/* Results dropdown */
.tm-home-search-results {
  margin-top: 12px;
  background: var(--tm-surface-2, #1A1A1A);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  overflow: hidden;
  max-height: 480px;
  overflow-y: auto;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
}
.tm-home-search-result {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 18px;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  transition: background 0.12s ease;
}
.tm-home-search-result:last-child { border-bottom: 0; }
.tm-home-search-result:hover,
.tm-home-search-result.is-active {
  background: rgba(37, 99, 235, 0.08);
}
.tm-home-search-result-badge {
  background: rgba(37, 99, 235, 0.15);
  color: #2563EB;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 4px 8px;
  border-radius: 4px;
  flex-shrink: 0;
  margin-top: 2px;
}
.tm-home-search-result-text {
  flex: 1;
  min-width: 0;
}
.tm-home-search-result-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.3;
  margin-bottom: 4px;
  color: var(--tm-ink);
  word-wrap: break-word;
}
.tm-home-search-result-title mark {
  background: rgba(37, 99, 235, 0.25);
  color: var(--tm-ink);
  padding: 0 2px;
  border-radius: 2px;
}
.tm-home-search-result-url {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: -0.005em;
}
.tm-home-search-empty {
  padding: 20px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.65);
  text-align: center;
  line-height: 1.5;
}
.tm-home-search-empty strong { color: var(--tm-ink); }

/* Mobile spacing */
@media (max-width: 768px) {
  .tm-home-search {
    margin: 16px 0 32px;
  }
  .tm-home-search-label { font-size: 22px; margin-bottom: 12px; }
  .tm-home-search-box { padding: 12px 14px; border-radius: 12px; }
  .tm-home-search-input { font-size: 15px; }
  .tm-home-search-results { max-height: 400px; }
  .tm-home-search-result { padding: 12px 14px; gap: 10px; }
  .tm-home-search-result-title { font-size: 15px; }
}

/* =========================================================
   v2.9.9 — HEADER MOBILE FIX REAL (estructura Elementor real)
   El logo del header es widget .elementor-widget-theme-site-title
   que renderea <p class="elementor-heading-title"><a>Trend México</a></p>
   (NO <h1>, NO image). El menu tiene class __align-center que
   centraba el burger. Targeting preciso de las clases reales.
   ========================================================= */
@media (max-width: 1024px) {

  /* Header wrapper: padding mínimo, sin altura forzada */
  body header.elementor-location-header,
  body .ehf-header header.elementor-location-header {
    padding: 0 !important;
    min-height: auto !important;
  }

  /* Outer section (1 column 100%) — solo padding */
  body header.elementor-location-header > section.elementor-top-section,
  body header.elementor-location-header > .elementor-section.elementor-top-section {
    padding: 0 !important;
    min-height: auto !important;
  }
  body header.elementor-location-header > section.elementor-top-section > .elementor-container,
  body header.elementor-location-header > section.elementor-top-section > .elementor-container > .elementor-column {
    padding: 0 !important;
    min-height: auto !important;
  }
  body header.elementor-location-header > section.elementor-top-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding: 0 !important;
  }

  /* INNER section (2 columns: logo + menu) — esto es lo que necesita flex-row */
  body header.elementor-location-header section.elementor-inner-section {
    padding: 10px 16px !important;
    min-height: 56px !important;
  }
  body header.elementor-location-header section.elementor-inner-section > .elementor-container {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  /* Las 2 columnas del inner section: width auto, no col-50 */
  body header.elementor-location-header section.elementor-inner-section > .elementor-container > .elementor-inner-column {
    width: auto !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  body header.elementor-location-header section.elementor-inner-section > .elementor-container > .elementor-inner-column .elementor-widget-wrap {
    padding: 0 !important;
  }

  /* LOGO column: flexible, alineada izquierda */
  body header.elementor-location-header section.elementor-inner-section > .elementor-container > .elementor-inner-column:first-child {
    flex: 1 1 auto !important;
    text-align: left !important;
  }

  /* LOGO widget (theme-site-title) y su contenido */
  body header .elementor-widget-theme-site-title,
  body header .elementor-widget-heading {
    margin: 0 !important;
    padding: 0 !important;
  }
  body header .elementor-widget-theme-site-title .elementor-widget-container,
  body header .elementor-widget-heading .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
  }
  body header .elementor-widget-theme-site-title .elementor-heading-title,
  body header .elementor-widget-theme-site-title p.elementor-heading-title,
  body header .elementor-widget-theme-site-title h1,
  body header .elementor-widget-theme-site-title h2 {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.1 !important;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    text-align: left !important;
    white-space: nowrap !important;
    display: block !important;
    color: var(--tm-ink) !important;
  }
  body header .elementor-widget-theme-site-title a,
  body header .elementor-widget-theme-site-title .elementor-heading-title a {
    color: var(--tm-ink) !important;
    text-decoration: none !important;
    background: none !important;
  }

  /* MENU column: flexible, alineada derecha */
  body header.elementor-location-header section.elementor-inner-section > .elementor-container > .elementor-inner-column:last-child {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    text-align: right !important;
  }

  /* Override del __align-center del nav-menu (centraba el burger) */
  body header .elementor-widget-nav-menu.elementor-nav-menu__align-center,
  body header .elementor-widget-nav-menu .elementor-nav-menu__container,
  body header .elementor-widget-nav-menu nav,
  body header .elementor-widget-nav-menu .elementor-menu-toggle {
    text-align: right !important;
    justify-content: flex-end !important;
    margin-left: auto !important;
    margin-right: 0 !important;
  }

  /* Hamburger button: alineado derecha, color azul accent */
  body header .elementor-menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 0 0 auto !important;
    padding: 8px !important;
    width: 40px !important;
    height: 40px !important;
    background: transparent !important;
    border: none !important;
    color: #2563EB !important;
  }
  body header .elementor-menu-toggle svg,
  body header .elementor-menu-toggle i {
    width: 22px !important;
    height: 22px !important;
    fill: #2563EB !important;
    color: #2563EB !important;
  }
}

/* =========================================================
   v2.9.7 — SPACING editorial mobile: eliminar huecos verticales
   Algunos parrafos / links del editorial tenian margin-bottom
   excesivo que en mobile creaba huecos negros entre bloques.
   Tambien bullets y &nbsp; legacy crean espacios fantasma.
   ========================================================= */
@media (max-width: 768px) {

  /* Eliminar espacios fantasma de &nbsp; y <br> sueltos del editor */
  body main p:empty,
  body main br + br,
  body article.page p:empty,
  body article.post p:empty,
  body .tm-venue-content p:empty {
    display: none !important;
  }

  /* Reducir margins entre parrafos del editorial */
  body main p,
  body article.page > p,
  body article.post > p,
  body .tm-venue-content > p,
  body .entry-content > p {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
  }

  /* Headings del editorial: spacing controlado */
  body main h2, body main h3, body main h4,
  body article.page h2, body article.page h3,
  body .tm-venue-content h2, body .tm-venue-content h3,
  body .entry-content h2, body .entry-content h3 {
    margin-top: 24px !important;
    margin-bottom: 8px !important;
    padding: 0 !important;
  }

  /* Primer heading del articulo: margin-top 0 */
  body main h2:first-child,
  body main h3:first-child,
  body article.page > *:first-child,
  body .tm-venue-content > *:first-child,
  body .entry-content > *:first-child {
    margin-top: 0 !important;
  }

  /* Imagenes inline: sin margins enormes */
  body main img,
  body .entry-content img,
  body .tm-venue-content img {
    margin: 12px 0 !important;
  }

  /* Listas: spacing compacto */
  body main ul, body main ol,
  body .entry-content ul, body .entry-content ol {
    margin: 0 0 16px 0 !important;
    padding-left: 20px !important;
  }
  body main li,
  body .entry-content li {
    margin-bottom: 4px !important;
  }
}

/* =========================================================
   v2.9.6 — ELIMINAR HUECO entre header y contenido
   En home y en venue/page templates habia un hueco enorme
   negro entre el header y el primer bloque de contenido.
   Causa: padding-top excesivo del masthead + wrappers Elementor
   que inyectan padding entre header y main. Aplica para mobile
   y desktop.
   ========================================================= */

/* Cero margin entre header y el siguiente elemento */
body header + *,
body .ehf-header + *,
body .site-header + * {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Wrapper de Elementor que envuelve el contenido (ehf-template-*) */
body .ehf-template-hello-elementor,
body .ehf-template-hello-elementor > .elementor,
body .ehf-template-hello-elementor > .elementor > .elementor-section:first-child,
body.elementor-page main {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* La primera section de cualquier home/venue/page tiene padding-top minimo */
body.home main > .elementor-section:first-child,
body.tm-venue main > .elementor-section:first-child,
body.tm-pillar main > .elementor-section:first-child,
body main > article:first-child > .elementor-section:first-child {
  padding-top: 0 !important;
}

/* Mobile: reducir padding-top del primer hero/masthead aun mas */
@media (max-width: 768px) {
  body.home .tm-home-hero,
  body.home .tm-home-masthead,
  body.tm-venue .tm-venue-hero,
  body.tm-pillar .tm-pillar-hero {
    padding-top: 16px !important;
  }
}

/* =========================================================
   v2.9.5 — HOME HEADER MOBILE: forzar consistencia con resto
   En home el header se fusionaba con el masthead dark (mismo bg,
   sin contraste). Forzamos misma estructura + separador visible.
   Aplica solo a mobile (<=1024px) y solo en home.
   ========================================================= */
@media (max-width: 1024px) {

  /* Header en HOME debe verse identico al de otras pages */
  body.home header,
  body.home .site-header,
  body.home .ehf-header,
  body.tm-home header,
  body.tm-home .site-header,
  body.tm-home .ehf-header {
    padding: 14px 20px !important;
    background: #0A0A0A !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    /* Separador inferior un poco mas visible que en otras pages, porque
       el masthead que sigue tambien es dark (caso unico del home) */
    border-bottom: 1px solid rgba(255, 255, 255, 0.10) !important;
    min-height: auto !important;
    margin-bottom: 0 !important;
  }

  /* Que el masthead del home tenga aire respiro entre header y contenido */
  body.home .tm-home,
  body.home main.tm-home {
    padding-top: 8px !important;
  }

  /* Sin negative margin del header que algunos themes/plugins inyectan */
  body.home > header,
  body.home .ehf-template-hello-elementor header,
  body.home main {
    margin-top: 0 !important;
  }
}

/* =========================================================
   v2.9.4 — MOBILE HEADER & MENU EDITORIAL FINO
   Rediseno para criterio editorial: tipografia limpia,
   colores alineados al theme (royal blue, no gold legacy),
   sin saltos horizontales en hover, sin saturate exagerado,
   distribucion respirada. Touch-friendly sin verse infantil.
   ========================================================= */

@media (max-width: 1024px) {

  /* ---------- HEADER BAR (fija arriba) ---------- */
  body header,
  body .site-header,
  body .ehf-header {
    padding: 14px 20px !important;
    background: #0A0A0A !important;        /* dark solido, sin rgba+blur (mejor performance, sin artefactos) */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    min-height: auto !important;
  }

  /* Logo / brand: altura controlada */
  body header .elementor-widget-image img,
  body header .site-logo img,
  body header .custom-logo {
    max-height: 32px !important;
    width: auto !important;
  }

  /* Si el logo es texto */
  body header .site-title,
  body header .site-title a {
    font-family: var(--tm-font-body) !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    line-height: 1.2 !important;
    color: var(--tm-ink) !important;
  }

  /* ---------- MENU ITEMS (lista vertical desplegada) ---------- */
  body header .menu-item > a,
  body .elementor-nav-menu li > a,
  body nav ul.menu li > a {
    display: block !important;
    padding: 18px 24px !important;
    font-family: var(--tm-font-body) !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    color: rgba(255, 255, 255, 0.92) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
    text-align: left !important;
    text-transform: none !important;
    letter-spacing: -0.005em !important;
    background: transparent !important;
    transition: color .18s ease !important;
    /* SIN padding-left transition (causa saltos horizontales feos en touch) */
  }

  body header .menu-item:last-child > a,
  body .elementor-nav-menu li:last-child > a,
  body nav ul.menu li:last-child > a {
    border-bottom: none !important;
  }

  /* Hover / focus / current: SOLO cambio de color, sin slide ni bg */
  body header .menu-item > a:hover,
  body header .menu-item > a:focus,
  body header .menu-item > a:active,
  body .elementor-nav-menu li > a:hover,
  body .elementor-nav-menu li > a:focus,
  body .elementor-nav-menu li > a:active {
    color: #2563EB !important;             /* royal blue de la paleta */
    background: transparent !important;
    padding-left: 24px !important;          /* mismo padding base, sin slide */
  }

  body header .menu-item.current-menu-item > a,
  body header .menu-item.current_page_item > a,
  body .elementor-nav-menu li.current-menu-item > a,
  body .elementor-nav-menu li.current_page_item > a {
    color: #2563EB !important;
    font-weight: 500 !important;             /* leve refuerzo de peso para distinguir */
    background: transparent !important;
    padding-left: 24px !important;
  }

  /* Underline animado del desktop NO aplica en mobile */
  body header .menu-item > a::before,
  body .elementor-nav-menu > li > a::before {
    display: none !important;
  }

  /* ---------- CONTAINER DEL MENU EXPANDIDO ---------- */
  body .elementor-nav-menu--dropdown,
  body nav.menu-mobile,
  body .main-navigation.toggled ul,
  body .ehf-header .elementor-nav-menu__container,
  body .menu-toggle.toggled + ul {
    background: #0A0A0A !important;        /* solido, sin blur (rendering limpio en mobile) */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
    padding: 4px 0 !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25) !important;  /* sombra sutil, no agresiva */
  }

  /* ---------- BURGER / TOGGLE BUTTON ---------- */
  .menu-toggle,
  .elementor-menu-toggle {
    background: transparent !important;
    border: none !important;                /* sin border feo */
    border-radius: 0 !important;
    padding: 8px !important;
    color: var(--tm-ink) !important;
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: opacity .18s ease !important;
  }
  .menu-toggle:hover,
  .elementor-menu-toggle:hover {
    border: none !important;
    background: transparent !important;
    opacity: 0.7 !important;
  }
  .menu-toggle:active, .menu-toggle.toggled,
  .elementor-menu-toggle.elementor-active {
    color: #2563EB !important;              /* solo color cambia, sin border */
    border: none !important;
    background: transparent !important;
  }
  .menu-toggle svg,
  .elementor-menu-toggle svg,
  .elementor-menu-toggle i {
    width: 22px !important;
    height: 22px !important;
    stroke-width: 1.5 !important;            /* lineas finas no gruesas */
  }

  /* ---------- SUB-MENU EN MOBILE (items hijos) ---------- */
  .menu-item .sub-menu,
  .elementor-nav-menu .sub-menu {
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: rgba(255, 255, 255, 0.02) !important;  /* sutilisima diferenciacion */
    border: none !important;
    border-left: 2px solid rgba(37, 99, 235, 0.25) !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 0 0 24px !important;
  }
  .sub-menu .menu-item > a,
  .sub-menu li > a,
  .elementor-nav-menu .sub-menu li > a {
    padding: 12px 20px !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    color: rgba(255, 255, 255, 0.65) !important;
    border: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03) !important;
    border-left: none !important;
    background: transparent !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
  }
  .sub-menu .menu-item:last-child > a,
  .sub-menu li:last-child > a {
    border-bottom: none !important;
  }
  .sub-menu .menu-item > a:hover,
  .sub-menu .menu-item > a:focus,
  .sub-menu li > a:hover,
  .sub-menu li > a:focus {
    color: #2563EB !important;
    background: transparent !important;
    padding-left: 20px !important;          /* sin slide */
  }
  .sub-menu .current-menu-item > a,
  .sub-menu li.current-menu-item > a,
  .elementor-nav-menu .sub-menu .current-menu-item > a {
    color: #2563EB !important;
    font-weight: 500 !important;
    background: transparent !important;
  }

  /* ---------- CHEVRON parent items ---------- */
  html body .menu-item-has-children > a::after {
    transform: translateY(-50%) rotate(0) !important;
    right: 24px !important;
    color: rgba(255, 255, 255, 0.4) !important;
    font-size: 12px !important;
  }
  html body .menu-item-has-children:hover > a::after,
  html body .menu-item-has-children.menu-item-active > a::after {
    color: #2563EB !important;
  }
}

/* =========================================================
   v2.3 — FOOTER HOME ARMONIOSO Y DISTRIBUIDO
   Diseno editorial minimalista: brand a la izquierda,
   columnas de links centradas, redes sociales y copyright.
   ========================================================= */

body.home footer,
body.home .site-footer {
  background: var(--tm-bg) !important;
  border-top: 1px solid var(--tm-line) !important;
  padding: 64px 24px 32px !important;
  margin: 0 !important;
}

body.home footer > div,
body.home footer .footer-inner,
body.home footer .elementor-section,
body.home footer > .elementor-container {
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* v2.5 — Revertir el forced 4-col del footer. Diego prefiere el simple. */
body.home footer .elementor-row,
body.home footer .footer-columns {
  display: revert;
  grid-template-columns: revert;
  gap: revert;
}

/* Columnas / widgets dentro del footer */
body.home footer .elementor-column,
body.home footer .footer-column,
body.home footer aside.widget {
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}

/* Headings de cada columna footer */
body.home footer h2, body.home footer h3, body.home footer h4,
body.home footer .widget-title, body.home footer .widgettitle,
body.home footer .elementor-heading-title {
  font-family: var(--tm-font-body) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  color: var(--tm-gold) !important;
  margin: 0 0 16px !important;
  border: none !important;
  padding: 0 !important;
}

/* Brand text (primera columna del footer) */
body.home footer .footer-brand,
body.home footer .elementor-column:first-child .elementor-widget-text-editor p:first-child {
  font-family: var(--tm-font-display);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--tm-ink);
  margin: 0 0 12px;
}

/* Texto del footer */
body.home footer p,
body.home footer .elementor-text-editor,
body.home footer .elementor-widget-text-editor p {
  font-family: var(--tm-font-body) !important;
  font-size: 0.875rem !important;
  color: var(--tm-ink-dim) !important;
  line-height: 1.6 !important;
  margin: 0 0 12px !important;
}

/* Links en lista del footer */
body.home footer ul,
body.home footer .elementor-icon-list-items {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.home footer ul li,
body.home footer .elementor-icon-list-item {
  margin-bottom: 8px !important;
}
body.home footer ul li a,
body.home footer .elementor-icon-list-text {
  font-family: var(--tm-font-body) !important;
  font-size: 0.875rem !important;
  color: var(--tm-ink-dim) !important;
  text-decoration: none !important;
  transition: color .2s ease, padding-left .2s ease !important;
  display: inline-block;
  padding: 4px 0 !important;
}
body.home footer ul li a:hover,
body.home footer .elementor-icon-list-item:hover .elementor-icon-list-text {
  color: var(--tm-gold) !important;
  padding-left: 6px !important;
}

/* Iconos sociales en footer */
body.home footer [class*="social"],
body.home footer .elementor-social-icons-wrapper {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}
body.home footer [class*="social"] a,
body.home footer .elementor-social-icon {
  width: 36px !important;
  height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(22, 22, 22, 0.6) !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 50% !important;
  color: var(--tm-ink) !important;
  font-size: 0.9375rem !important;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
body.home footer .elementor-social-icon:hover,
body.home footer [class*="social"] a:hover {
  border-color: var(--tm-gold) !important;
  background: rgba(37, 99, 235, 0.1) !important;
  color: var(--tm-gold) !important;
}

/* Copyright bar — bottom strip */
body.home footer .footer-copyright,
body.home footer [class*="copyright"],
body.home footer .copyright-text,
body.home footer > .elementor-section:last-child {
  border-top: 1px solid var(--tm-line) !important;
  padding-top: 24px !important;
  margin-top: 40px !important;
  text-align: center !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.75rem !important;
  color: var(--tm-ink-mute) !important;
  letter-spacing: 0.04em;
}

/* Asegurar que el footer ocupe full width sin overflow */
body.home {
  overflow-x: hidden;
}
body.home > footer,
body.home > .site-footer {
  width: 100vw !important;
  max-width: 100% !important;
}

/* v2.5 — Credit line "Diseño por Creative Branding Solutions" */
.tm-footer-credit {
  text-align: center;
  font-family: var(--tm-font-body);
  font-size: 0.75rem;
  color: var(--tm-ink-mute);
  padding: 14px 16px 18px;
  margin-top: 4px;
  letter-spacing: 0.04em;
  border-top: 1px solid var(--tm-line);
}
.tm-footer-credit a {
  color: var(--tm-ink-dim) !important;
  text-decoration: none !important;
  border-bottom: none !important;
  font-weight: 500;
  transition: color .2s ease;
}
.tm-footer-credit a:hover {
  color: var(--tm-gold) !important;
}

/* =========================================================
   v1.6 — SECCION HOME "DONDE IR EN CDMX" REIMAGINADA
   Editorial minimalista que sorprenda: cards con hover scale,
   linea acento crimson en title, bg surface, typography fuerte
   ========================================================= */

/* Detector heuristico: section que contiene "DONDE IR" o
   tiene clase con esos terminos. Aplicar via wrapper especifico */
.elementor-section[data-element_type*="section"]:has(h2:is([class*="donde-ir"], [class*="que-hacer"])),
[class*="donde-ir-cdmx"],
[class*="lugares-en-tendencia"],
[id*="que-hacer-en-cdmx"] {
  background: linear-gradient(180deg, var(--tm-bg) 0%, #0E0F14 50%, var(--tm-bg) 100%) !important;
  padding: 80px 20px !important;
  border-top: 1px solid var(--tm-line);
  border-bottom: 1px solid var(--tm-line);
}

/* Eyebrow "Lugares en Tendencia" */
.elementor-widget-heading h2:contains("Lugares en Tendencia"),
[class*="lugares-en-tendencia"] h6,
[class*="eyebrow-rojo"] {
  color: var(--tm-burgundy) !important;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.75rem;
  font-family: var(--tm-font-body) !important;
}

/* Search box "Que plan buscas" — minimalista editorial */
.elementor-widget-search-form input,
.search-form input[type="search"],
input[type="search"][name="s"] {
  background: rgba(22, 22, 22, 0.6) !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 12px !important;
  padding: 16px 24px !important;
  font-family: var(--tm-font-body) !important;
  font-size: 1rem !important;
  color: var(--tm-ink) !important;
  width: 100%;
  transition: border-color .25s ease, background .25s ease;
}
.elementor-widget-search-form input:focus,
input[type="search"]:focus {
  border-color: var(--tm-gold) !important;
  background: rgba(22, 22, 22, 0.85) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12) !important;
}
.elementor-widget-search-form input::placeholder,
input[type="search"]::placeholder {
  color: var(--tm-ink-mute) !important;
  font-style: italic;
}

/* Cards en seccion home (cualquier .elementor-widget-image-box o .elementor-widget-call-to-action) */
.elementor-widget-image-box .elementor-image-box-wrapper,
.elementor-widget-call-to-action,
.elementor-widget-cta {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 14px !important;
  overflow: hidden;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1), border-color .35s ease, box-shadow .35s ease;
}
.elementor-widget-image-box:hover .elementor-image-box-wrapper {
  transform: translateY(-4px);
  border-color: var(--tm-line-2) !important;
  box-shadow: 0 20px 40px rgba(37, 99, 235, 0.10);
}

/* Image-box title styling */
.elementor-image-box-title,
.elementor-image-box-content h3 {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display) !important;
  font-weight: 700 !important;
  font-size: 1.375rem !important;
  margin: 12px 0 6px !important;
}

.elementor-image-box-description {
  color: var(--tm-ink-dim) !important;
  font-size: 0.9375rem !important;
  line-height: 1.55;
}

/* =========================================================
   FORZAR contraste en TODA card de Elementor
   ========================================================= */
.elementor-widget-image-box,
.elementor-widget-call-to-action,
.elementor-widget-icon-box,
.elementor-widget-cta {
  background-color: transparent !important;
}

.elementor-widget-image-box *,
.elementor-widget-call-to-action *,
.elementor-widget-icon-box * {
  color: inherit;
}

/* Force any heading widget to ink */
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6,
.elementor-heading-title {
  color: var(--tm-ink) !important;
  text-decoration: none !important;
}

/* Asegurar que cualquier <p> en widgets tenga color visible */
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-text-editor span,
.elementor-widget-text-editor div {
  color: var(--tm-ink) !important;
}

/* =========================================================
   v1.7 — LOGO MINIMALISTA
   "TREND MEXICO" en sans-serif light + tracking ancho
   ========================================================= */

/* v1.9 — Logo wordmark FINAL: Inter weight 600, una sola linea, limpio */
.site-title, .site-title a,
.elementor-widget-site-logo h1,
.elementor-widget-site-logo a,
[class*="site-branding"] h1,
[class*="site-branding"] a,
.logo, .site-logo,
header .elementor-heading-title:first-of-type,
.ehf-header .site-title {
  font-family: var(--tm-font-body) !important;       /* Inter */
  font-style: normal !important;
  font-weight: 600 !important;
  font-size: 1.0625rem !important;                   /* 17px */
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  color: var(--tm-ink) !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  display: inline-block !important;
  padding: 0 !important;
}

/* Quitar el ::before y ::after del logo (limpio sin tricks) */
.site-title::before, .site-title::after,
.elementor-widget-site-logo a::before, .elementor-widget-site-logo a::after,
header .site-branding a::before, header .site-branding a::after {
  content: none !important;
  display: none !important;
}

.site-title:hover, .site-title a:hover,
header .site-branding a:hover { color: var(--tm-gold) !important; }

/* En mobile, logo aun mas chico */
@media (max-width: 768px) {
  .site-title, .site-title a {
    font-size: 0.9375rem !important;
  }
}

/* =========================================================
   v1.7 — DROPDOWN FIXES: z-index 9999 + chevron SVG mejor
   ========================================================= */

/* Z-index alto para que dropdown SIEMPRE este encima del hero */
header, .site-header, .ehf-header,
nav#site-navigation, .main-navigation,
.elementor-nav-menu--main,
.elementor-section.elementor-section-stretched.tm-header,
[data-element_type*="nav-menu"] {
  position: relative !important;
  z-index: 999 !important;
}

/* El sub-menu mismo: z-index nuclear */
.menu-item .sub-menu,
.elementor-nav-menu .sub-menu,
ul.menu li ul.sub-menu,
nav .sub-menu {
  z-index: 9999 !important;
}

/* Hero / cualquier seccion debajo del header: z-index bajo */
.tm-venue-hero,
.tm-pillar-hero,
.elementor-section:not(.tm-header):not([class*="header"]) {
  z-index: 1;
}

/* Chevron — POSITION ABSOLUTE al final del item para NO superponerse al texto */
html body .menu-item-has-children > a,
html body .elementor-nav-menu li.menu-item-has-children > a {
  position: relative !important;
  padding-right: 22px !important;
}
html body .menu-item-has-children > a::after,
html body .elementor-nav-menu li.menu-item-has-children > a::after {
  content: '' !important;
  position: absolute !important;
  right: 4px !important;
  top: 50% !important;
  width: 10px !important;
  height: 10px !important;
  margin: 0 !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23F5F5F0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='4,6 8,10 12,6'/%3e%3c/svg%3e");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transform: translateY(-50%);
  transition: transform .25s cubic-bezier(.2, .8, .2, 1);
  pointer-events: none;
}
html body .menu-item-has-children:hover > a::after,
html body .elementor-nav-menu li.menu-item-has-children:hover > a::after {
  transform: translateY(-50%) rotate(180deg) !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%232563EB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='4,6 8,10 12,6'/%3e%3c/svg%3e");
}

/* Quitar el `::after` en menu items que NO tengan children */
html body .menu-item:not(.menu-item-has-children) > a::after,
html body .elementor-nav-menu li:not(.menu-item-has-children) > a::after {
  display: none !important;
  content: none !important;
}

/* =========================================================
   v1.8 — REDISENO seccion "DONDE IR EN CDMX" en home
   Quitamos el styling actual y aplicamos editorial limpio:
   - Sin eyebrow rojo strike-through
   - Titulo serif sobrio (no shadows ni mayusculas excesivas)
   - Sin search box (lo ocultamos, los cards bastan)
   - Cards editorial: foto + categoria + titulo + fecha + excerpt
   - Hover sutil
   ========================================================= */

/* Detector heuristico amplio: home sections con grid de cards */
.home .elementor-section.has-experiences,
.home .elementor-section[id*="donde-ir"],
.home .elementor-section[class*="donde-ir"],
.home .elementor-section[class*="lugares-tendencia"],
body.home .elementor-section:has(> .elementor-container > .elementor-column h2),
.elementor-section.tm-experiences-section {
  background: var(--tm-bg) !important;
  padding: 80px 20px !important;
  border-top: 1px solid var(--tm-line);
  position: relative;
}

/* Eyebrow "Lugares en Tendencia" — eliminar strike-through y rojo, dejar minimal */
.home h6:not(:empty),
.elementor-widget-heading h6.elementor-heading-title,
[class*="lugares-tendencia"] h6,
[class*="eyebrow"]:not(.tm-events-eyebrow):not(.tm-pillar-eyebrow):not(.tm-sidebar-eyebrow):not(.tm-reserve-eyebrow) {
  text-decoration: none !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  font-size: 0.6875rem !important;
  font-weight: 600 !important;
  color: var(--tm-ink-mute) !important;
  font-family: var(--tm-font-body) !important;
  margin-bottom: var(--tm-space-3) !important;
}

/* Titulo H2 "DONDE IR EN CDMX" — editorial sobrio, no mayusculas con dropshadow */
body.home .elementor-section .elementor-heading-title,
body.home .elementor-widget-heading h2 {
  font-family: var(--tm-font-display) !important;
  font-weight: 700 !important;
  font-size: clamp(1.75rem, 4vw, 3rem) !important;
  text-transform: none !important;          /* respetar el case original */
  letter-spacing: -0.01em !important;
  text-shadow: none !important;
  color: var(--tm-ink) !important;
  line-height: 1.1;
}

/* Search box "que plan buscas" en home — minimalista o ocultable.
   Si Diego decide que se quede, mantener este styling minimalista */
body.home .elementor-widget-search-form input[type="search"],
body.home input[type="search"][name="s"] {
  background: rgba(22, 22, 22, 0.6) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 999px !important;
  padding: 14px 24px !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.9375rem !important;
  color: var(--tm-ink) !important;
}
body.home .elementor-widget-search-form input[type="search"]:focus {
  border-color: var(--tm-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.10) !important;
}

/* Cards editorial — bg surface + border slate + foto big + meta + title sobrio */
body.home .elementor-widget-image-box,
body.home .elementor-image-box-wrapper {
  background: transparent !important;
  border-radius: 0 !important;
  overflow: visible;
}
body.home .elementor-image-box-wrapper {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--tm-space-3);
}
body.home .elementor-image-box-img {
  margin: 0 !important;
  width: 100% !important;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 16/10;
}
body.home .elementor-image-box-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .5s cubic-bezier(.2, .8, .2, 1);
  display: block;
}
body.home .elementor-widget-image-box:hover .elementor-image-box-img img {
  transform: scale(1.04);
}

body.home .elementor-image-box-content { padding: 0 !important; }
body.home .elementor-image-box-title,
body.home .elementor-image-box-content h3 {
  font-family: var(--tm-font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  color: var(--tm-ink) !important;
  margin: var(--tm-space-3) 0 var(--tm-space-2) !important;
  letter-spacing: -0.01em;
}
body.home .elementor-image-box-description {
  color: var(--tm-ink-dim) !important;
  font-size: 0.9375rem !important;
  line-height: 1.55 !important;
  font-family: var(--tm-font-body) !important;
}

/* Linea fina en el primer card / encabezado de cada card como detalle editorial */
body.home .elementor-image-box-wrapper::before {
  content: '';
  display: block;
  width: 30px;
  height: 1px;
  background: var(--tm-gold);
  margin-bottom: var(--tm-space-2);
  opacity: 0;
  transition: opacity .3s ease, width .3s ease;
}
body.home .elementor-widget-image-box:hover .elementor-image-box-wrapper::before {
  opacity: 1;
  width: 50px;
}

/* =========================================================
   v1.8 — HERO HOME (titulo "LO MAS TREND..." sobre imagen)
   Reducir tamano excesivo, color blanco con sombra sutil,
   no azul gigante encima de la foto
   ========================================================= */

body.home .elementor-section[class*="elementor-section-bg-image"] h1,
body.home .elementor-section[class*="elementor-section-stretched"] h1.elementor-heading-title,
body.home > article > .elementor-section:first-child h1,
body.home .elementor-section.elementor-section-content-stretched h1,
body.home .page-content > .elementor-section:first-child h1 {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(2rem, 5vw, 3.75rem) !important;
  font-weight: 700 !important;
  color: var(--tm-ink) !important;
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.6);
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  line-height: 1.05;
}

/* Cualquier H1/H2 super grande encima de imagen -> max sensato */
body .elementor-section h1.elementor-heading-title {
  font-size: clamp(2rem, 5vw, 3.75rem) !important;
}

/* Background overlay en heroes: gradient para legibilidad */
body.home .elementor-section .elementor-background-overlay {
  background: linear-gradient(180deg, rgba(10,10,10,0.2) 0%, rgba(10,10,10,0.6) 70%, rgba(10,10,10,0.95) 100%) !important;
}

/* =========================================================
   v1.9 — HOME CENTRADO + DETALLES AZULES SUTILES
   Refina balance: blanco protagonista pero con acentos azules
   en lugares estrategicos para que NO se sienta plano.
   ========================================================= */

/* Container home: max-width consistente */
body.home .elementor-section > .elementor-container {
  max-width: 1200px !important;
  margin: 0 auto !important;
}

/* Home: titulos H2 de seccion centrados con linea acento azul */
body.home .elementor-widget-heading h2.elementor-heading-title {
  text-align: center !important;
  position: relative;
  padding-bottom: var(--tm-space-3);
  margin-bottom: var(--tm-space-6) !important;
}
body.home .elementor-widget-heading h2.elementor-heading-title::after {
  content: '';
  display: block;
  width: 48px;
  height: 2px;
  background: var(--tm-gold);
  margin: var(--tm-space-3) auto 0;
  border-radius: 1px;
}

/* Cards en home: borde sutil con esquina superior azul en hover */
body.home .elementor-widget-image-box .elementor-image-box-wrapper {
  position: relative;
  padding-top: var(--tm-space-2);
}

/* Linea horizontal azul thin en hover de cards */
body.home .elementor-widget-image-box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--tm-gold) 0%, transparent 100%);
  transition: width .4s cubic-bezier(.2, .8, .2, 1);
  z-index: 2;
}
body.home .elementor-widget-image-box:hover::before {
  width: 100%;
}

/* Section de noticias en home: cards centradas con gap consistente */
body.home .elementor-section .elementor-row,
body.home .elementor-section .elementor-container {
  align-items: stretch;
}

/* Categorias en cards de home: badge sobre la imagen tipo NYT magazine */
body.home .post-categories,
body.home [class*="category-badge"],
body.home .elementor-post__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--tm-bg) !important;
  color: var(--tm-gold) !important;
  font-family: var(--tm-font-body);
  font-size: 0.625rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  padding: 5px 10px !important;
  border: 1px solid rgba(37, 99, 235, 0.4);
  border-radius: 999px !important;
  z-index: 3;
}

/* Newsletter section: centrado + acento azul sutil */
body.home [class*="newsletter"],
body.home [id*="newsletter"] {
  text-align: center;
  padding: var(--tm-space-16) var(--tm-space-5);
  border-top: 1px solid var(--tm-line);
}
body.home [class*="newsletter"] h2,
body.home [id*="newsletter"] h2 {
  font-family: var(--tm-font-display) !important;
  position: relative;
  display: inline-block;
}
body.home [class*="newsletter"] h2::before {
  content: '·';
  color: var(--tm-gold);
  font-weight: 700;
  margin-right: 8px;
  font-size: 1em;
}

/* Date badges en cards (fechas tipo "agosto 8, 2024") */
body.home .elementor-post-date,
body.home .post-date,
body.home time,
body.home [class*="post-meta"] {
  color: var(--tm-ink-mute) !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
body.home .elementor-post-date::before,
body.home time::before {
  content: '';
  display: inline-block;
  width: 12px;
  height: 1px;
  background: var(--tm-gold);
}

/* Hero home: centrado mejor con acento line abajo del titulo */
body.home .elementor-section:first-of-type h1.elementor-heading-title,
body.home > .site-content .elementor-section:first-child h1 {
  text-align: center !important;
  position: relative;
}
body.home .elementor-section:first-of-type h1.elementor-heading-title::after {
  content: '';
  display: block;
  width: 60px;
  height: 2px;
  background: var(--tm-gold);
  margin: var(--tm-space-4) auto 0;
  border-radius: 1px;
}

/* Buttons en home: confirmar styling consistente con venue/pillar (que Diego aprobo) */
body.home .elementor-button,
body.home .wp-block-button__link,
body.home button:not(.tm-btn):not([class*="search"]) {
  background: var(--tm-gold) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 12px 24px !important;
  font-weight: 600 !important;
  font-size: 0.9375rem !important;
  text-transform: none !important;
  letter-spacing: 0.02em;
  font-family: var(--tm-font-body) !important;
  transition: background .25s ease, transform .15s ease !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}
body.home .elementor-button:hover,
body.home .wp-block-button__link:hover {
  background: var(--tm-gold-400) !important;
  transform: translateY(-1px);
  color: #FFFFFF !important;
}

/* Section spacing consistente en home */
body.home .elementor-section {
  padding-top: var(--tm-space-12) !important;
  padding-bottom: var(--tm-space-12) !important;
}
body.home .elementor-section:first-of-type {
  padding-top: 0 !important;
}

/* Suscribe section: input email + button alineados */
body.home form input[type="email"] + button,
body.home form input[type="email"] + input[type="submit"] {
  margin-left: var(--tm-space-3);
}

/* =========================================================
   v2.0 — FIX HEADER HOME CONSISTENT
   Si en home hay un widget de "Trend Mexico" duplicando el
   site title, lo reducimos. Title H1 hero SIEMPRE centrado.
   ========================================================= */

/* Reducir cualquier widget heading que diga "Trend Mexico" gigante en home
   (no podemos detectar texto desde CSS, asi que aplicamos a todos los H1/H2
   del primer section que no sean explicitamente hero) */

/* Si hay un site title duplicado tipo "Trend Mexico" en una H1 grande del body */
body.home .elementor-widget-heading h1.elementor-heading-title:not(.tm-pillar-title):not(.tm-venue-title) {
  font-size: clamp(1.75rem, 4.5vw, 3.25rem) !important;
  text-align: center !important;
  font-family: var(--tm-font-display) !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  color: var(--tm-ink) !important;
  margin: 0 auto !important;
  max-width: 1100px;
}

/* Y todos los headings del home centrados por default */
body.home .elementor-section .elementor-heading-title {
  text-align: center !important;
}

/* Si hay un widget que muestra "Trend Mexico" como heading antes del hero, ocultarlo */
body.home .elementor-widget-heading:has(h1.elementor-heading-title:only-child) + .elementor-widget-heading h1 {
  /* El H1 heading que sigue a otro heading tipo title -> mas pequeno (es subtitle) */
}

/* Hero con bg image + heading centrado: posicion absolute al centro */
body.home .elementor-section.elementor-section-content-stretched > .elementor-container,
body.home .elementor-section > .elementor-container {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

/* =========================================================
   v2.0 — LEER MAS boton bien renderizado (no cortado)
   ========================================================= */

html body a.elementor-post__read-more,
html body .elementor-post__read-more,
html body .pt-cv-readmore,
html body a.pt-cv-readmore,
html body .aps-readmore,
html body a.aps-readmore,
html body a[class*="leer-mas"],
html body .read-more,
html body a.read-more {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: auto !important;
  max-width: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  padding: 8px 16px !important;
  background: transparent !important;
  color: var(--tm-gold) !important;
  border: 1px solid var(--tm-gold) !important;
  border-radius: 999px !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  line-height: 1 !important;
  min-height: 32px !important;
  margin: 8px 0 !important;
  transition: background .2s ease, color .2s ease, transform .15s ease !important;
}
html body a.elementor-post__read-more:hover,
html body .pt-cv-readmore:hover,
html body .aps-readmore:hover,
html body a[class*="leer-mas"]:hover,
html body .read-more:hover {
  background: var(--tm-gold) !important;
  color: #FFFFFF !important;
  transform: translateY(-1px);
}

/* En cards de pillar venues -> leer mas centrado */
body.tm-pillar .pt-cv-readmore,
body.tm-pillar a.pt-cv-readmore {
  margin: 12px auto 0 !important;
  display: inline-flex !important;
}

/* =========================================================
   v2.0 — CLUSTER CARDS CVP NUCLEAR
   Forzar contenido visible en TODOS los descendientes
   ========================================================= */

html body .pt-cv-content-item,
html body .pt-cv-content-item *,
html body .pt-cv-grid > div,
html body .pt-cv-overlaygrid .pt-cv-content-item *,
html body article.pt-cv-content-item,
html body article.pt-cv-content-item * {
  color: var(--tm-ink) !important;
}

/* Excerpt / descripcion mas dim para jerarquia */
html body .pt-cv-content-item p,
html body .pt-cv-content-item .pt-cv-content,
html body .pt-cv-content-item .pt-cv-content-text,
html body .pt-cv-content-item .pt-cv-excerpt,
html body article.pt-cv-content-item p,
html body article.pt-cv-content-item .post-content {
  color: var(--tm-ink-dim) !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.875rem !important;
  line-height: 1.55 !important;
}

/* Title — fuerte, blanco, serif */
html body .pt-cv-content-item .pt-cv-title-text,
html body .pt-cv-content-item .pt-cv-title a,
html body .pt-cv-content-item .pt-cv-title,
html body article.pt-cv-content-item h2,
html body article.pt-cv-content-item h3,
html body article.pt-cv-content-item h4,
html body article.pt-cv-content-item .entry-title a {
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-display) !important;
  font-weight: 700 !important;
  font-size: 1.125rem !important;
  text-decoration: none !important;
  background: transparent !important;
  display: block;
  text-align: center;
}
html body .pt-cv-content-item .pt-cv-title a:hover,
html body article.pt-cv-content-item .entry-title a:hover {
  color: var(--tm-gold) !important;
}

/* Card container con bg surface visible */
html body .pt-cv-content-item,
html body article.pt-cv-content-item,
html body .pt-cv-overlaygrid .pt-cv-content-item {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 14px !important;
  padding: 24px 20px !important;
  text-align: center !important;
}

/* Imagen dentro del card */
html body .pt-cv-content-item .pt-cv-thumb-wrapper,
html body .pt-cv-content-item .pt-cv-thumbnail,
html body article.pt-cv-content-item .post-thumbnail,
html body .pt-cv-content-item .pt-cv-feed-thumbnail-link {
  display: block !important;
  width: 160px !important;
  height: 160px !important;
  margin: 0 auto 16px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  border: 2px solid var(--tm-line-2) !important;
}
html body .pt-cv-content-item img,
html body article.pt-cv-content-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  border: none !important;
}

/* Hover lift */
html body .pt-cv-content-item:hover {
  transform: translateY(-3px);
  border-color: var(--tm-line-2) !important;
  box-shadow: 0 12px 30px rgba(37, 99, 235, 0.10);
}
html body .pt-cv-content-item:hover .pt-cv-thumb-wrapper {
  border-color: var(--tm-gold) !important;
}

/* =========================================================
   v2.0 — Active state en menu PRINCIPAL: azul con peso
   ========================================================= */

html body header .menu-item.current-menu-item > a,
html body header .menu-item.current-menu-ancestor > a,
html body header .menu-item.current_page_item > a,
html body header .menu-item.current_page_ancestor > a,
html body .elementor-nav-menu > li.current-menu-item > a,
html body .elementor-nav-menu > li.current-menu-ancestor > a,
html body nav .current-menu-item > a,
html body nav .current_page_item > a {
  color: var(--tm-gold) !important;
  font-weight: 600 !important;
}

/* =========================================================
   v1.7 — FIX seccion CTA pillar footer (los 2 botones)
   El primary azul + secondary outline azul (no rojo)
   ========================================================= */

html body .tm-pillar-cta-footer .tm-btn-primary {
  background: var(--tm-gold) !important;
  color: #FFFFFF !important;
}
html body .tm-pillar-cta-footer .tm-btn-secondary,
html body .tm-pillar-cta-footer a.tm-btn-secondary {
  background: transparent !important;
  color: var(--tm-gold) !important;
  border: 1px solid var(--tm-gold) !important;
}

/* =========================================================
   v1.7 — FIX badge categoria en venue hero
   Antes: bg crimson + texto gold-100. Ahora: bg azul transparente + texto azul claro.
   ========================================================= */

.tm-venue-badge {
  background: rgba(37, 99, 235, 0.15) !important;
  color: var(--tm-gold-100) !important;
  border: 1px solid rgba(37, 99, 235, 0.45) !important;
}

/* =========================================================
   ===========================================================
   VENUE PAGE TEMPLATE (.tm-venue-*) — Fase 2
   Aplicado solo en pages que matchean URL pattern de venues.
   ===========================================================
   ========================================================= */

/* Hide default site main padding when venue template active */
body.tm-venue .site-main,
body.tm-venue main,
body.tm-venue #primary,
body.tm-venue .site-content {
  padding: 0 !important;
  max-width: none !important;
}
body.tm-venue article.page,
body.tm-venue article.post {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Hide default entry-header (we render our own) */
body.tm-venue .entry-header,
body.tm-venue .page-header { display: none !important; }

/* Container for our venue layout */
.tm-venue-page {
  display: block;
  background: var(--tm-bg);
  color: var(--tm-ink);
  padding-bottom: 90px; /* room for mobile sticky bar */
}

/* ============== HERO ============== */
.tm-venue-hero {
  position: relative;
  overflow: hidden;
  min-height: 540px;
  display: flex;
  align-items: flex-end;
  padding: 64px 0 48px;
}
.tm-venue-hero.tm-hero-logo {
  min-height: 380px;
  background: linear-gradient(180deg, #110A0F 0%, var(--tm-bg) 100%);
}
.tm-venue-hero-bg {
  position: absolute; inset: 0; z-index: 0;
}
.tm-venue-hero-bg img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.tm-venue-hero-gradient {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,0.3) 0%, rgba(10,10,10,0.6) 50%, rgba(10,10,10,1) 100%);
}
.tm-venue-hero-grain {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.5; mix-blend-mode: overlay;
}
.tm-venue-hero-inner {
  position: relative; z-index: 2;
  max-width: 1100px; margin: 0 auto;
  padding: 0 var(--tm-space-5);
  width: 100%;
}

.tm-breadcrumb {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 6px;
  font-size: 0.875rem; color: var(--tm-ink-dim);
  margin-bottom: var(--tm-space-5);
}
.tm-breadcrumb a { color: var(--tm-ink-dim); text-decoration: none; }
.tm-breadcrumb a:hover { color: var(--tm-gold); }
.tm-breadcrumb-sep { opacity: 0.6; }
.tm-breadcrumb span:not(.tm-breadcrumb-sep):last-child { color: var(--tm-ink); }

.tm-venue-badge {
  display: inline-flex; align-items: center; gap: var(--tm-space-2);
  padding: 4px 12px;
  background: rgba(123, 31, 44, 0.3);
  color: var(--tm-gold-100);
  border: 1px solid rgba(123, 31, 44, 0.6);
  border-radius: 999px;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--tm-space-4);
}

.tm-venue-logo {
  margin-bottom: var(--tm-space-5);
}
.tm-venue-logo img {
  max-width: 200px; max-height: 200px;
  border-radius: var(--tm-radius);
  background: var(--tm-surface);
  padding: var(--tm-space-3);
  border: 1px solid var(--tm-line2);
}

.tm-venue-title {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(2.25rem, 6vw, 4.25rem) !important;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--tm-ink) !important;
  margin: 0 0 var(--tm-space-6) !important;
  max-width: 780px;
  text-shadow: 0 2px 30px rgba(0,0,0,0.5);
}

.tm-venue-cta-row {
  display: flex; flex-wrap: wrap; gap: var(--tm-space-3);
  margin-top: var(--tm-space-2);
}

/* ============== BUTTONS ============== */
.tm-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  gap: var(--tm-space-2) !important;
  padding: 13px 22px !important;
  border-radius: var(--tm-radius-sm) !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border: none !important;
  cursor: pointer;
  transition: background .25s ease, transform .15s ease, box-shadow .25s ease !important;
  min-height: 44px;
  line-height: 1;
}
.tm-btn-primary {
  background: var(--tm-gold) !important;
  color: var(--tm-bg) !important;
  animation: tm-pulse-soft 2.4s infinite;
}
.tm-btn-primary:hover { background: var(--tm-gold-400) !important; color: var(--tm-bg) !important; transform: translateY(-1px); text-decoration: none !important; }
.tm-btn-secondary, .tm-btn-burgundy {
  background: var(--tm-burgundy) !important;
  color: var(--tm-ink) !important;
}
.tm-btn-secondary:hover, .tm-btn-burgundy:hover { background: var(--tm-burgundy-400) !important; color: var(--tm-ink) !important; text-decoration: none !important; transform: translateY(-1px); }
.tm-btn-block { width: 100%; }
@keyframes tm-pulse-soft {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201, 169, 97, 0.4); }
  50% { box-shadow: 0 0 0 14px rgba(201, 169, 97, 0); }
}

/* ============== BODY GRID + SIDEBAR ============== */
.tm-venue-body {
  background: var(--tm-bg);
  padding: var(--tm-space-12) 0;
}
.tm-venue-grid {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--tm-space-5);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-10);
}
@media (min-width: 1024px) {
  .tm-venue-grid { grid-template-columns: 2fr 1fr; gap: var(--tm-space-12); }
}

.tm-venue-content { /* legacy content wrapper — uses entry-content rules */ }
.tm-venue-content > * { max-width: 100%; }

.tm-venue-sidebar { display: block; }
.tm-sidebar-sticky { display: flex; flex-direction: column; gap: var(--tm-space-4); }
@media (min-width: 1024px) {
  .tm-sidebar-sticky { position: sticky; top: 90px; }
}

.tm-sidebar-card {
  background: rgba(22,22,22,0.72);
  backdrop-filter: blur(8px);
  border: 1px solid var(--tm-line2);
  border-radius: var(--tm-radius);
  padding: var(--tm-space-5);
}
.tm-sidebar-card h3 {
  font-family: var(--tm-font-display) !important;
  font-size: 1.25rem !important;
  color: var(--tm-ink) !important;
  margin: 0 0 var(--tm-space-2) !important;
  border: none !important; padding: 0 !important;
}
.tm-sidebar-card h4 {
  color: var(--tm-ink) !important;
  font-size: 0.9375rem;
  margin: 0 0 var(--tm-space-3);
  display: flex; align-items: center; gap: 6px;
}
.tm-sidebar-card p {
  color: var(--tm-ink-dim) !important;
  font-size: 0.875rem;
  margin: 0 0 var(--tm-space-4);
  line-height: 1.55;
}
.tm-sidebar-eyebrow {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.75rem;
  color: var(--tm-gold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--tm-space-2);
}
.tm-sidebar-card-burgundy { border-color: rgba(123, 31, 44, 0.5); }
.tm-sidebar-card-burgundy .tm-sidebar-eyebrow { color: var(--tm-burgundy-400); }
.tm-sidebar-card-muted { background: rgba(22, 22, 22, 0.4); }
.tm-contact-link {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 0;
  color: var(--tm-ink) !important;
  font-size: 0.875rem;
  text-decoration: none !important;
  transition: color .2s;
}
.tm-contact-link:hover { color: var(--tm-gold) !important; }

/* ============== EVENTOS SECTION ============== */
.tm-events-section {
  background:
    radial-gradient(ellipse at top right, rgba(123, 31, 44, 0.35) 0%, transparent 60%),
    radial-gradient(ellipse at bottom left, rgba(201, 169, 97, 0.18) 0%, transparent 55%),
    linear-gradient(180deg, #0F0A0B 0%, var(--tm-bg) 100%);
  border-top: 1px solid var(--tm-line2);
  border-bottom: 1px solid var(--tm-line2);
  padding: var(--tm-space-16) 0;
}
.tm-events-inner {
  max-width: 1100px; margin: 0 auto;
  padding: 0 var(--tm-space-5);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-10);
}
@media (min-width: 1024px) {
  .tm-events-inner { grid-template-columns: 1fr 1fr; align-items: start; gap: var(--tm-space-12); }
}
.tm-events-eyebrow {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px;
  background: rgba(123, 31, 44, 0.15);
  border: 1px solid rgba(123, 31, 44, 0.4);
  border-radius: 999px;
  font-size: 0.75rem;
  color: var(--tm-burgundy-400);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--tm-space-4);
}
.tm-events-title {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
  color: var(--tm-ink) !important;
  margin: 0 0 var(--tm-space-5) !important;
  line-height: 1.15;
  border: none !important; padding: 0 !important;
}
.tm-events-lead {
  color: var(--tm-ink-dim) !important;
  font-size: 1.0625rem;
  line-height: 1.65;
  margin-bottom: var(--tm-space-6);
}
.tm-events-types {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--tm-space-3);
  margin-bottom: var(--tm-space-6);
}
.tm-events-type {
  display: flex; align-items: center; gap: var(--tm-space-3);
  padding: 12px;
  background: rgba(22,22,22,0.6);
  border: 1px solid var(--tm-line2);
  border-radius: 8px;
  font-size: 0.875rem;
  color: var(--tm-ink);
}
.tm-events-type span { font-size: 1.25rem; }
.tm-events-includes {
  background: rgba(22,22,22,0.4);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  padding: var(--tm-space-5);
}
.tm-events-includes h4 {
  font-family: var(--tm-font-body) !important;
  color: var(--tm-gold) !important;
  font-size: 0.9375rem;
  margin: 0 0 var(--tm-space-3) !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.tm-events-includes ul {
  list-style: none; padding: 0; margin: 0;
}
.tm-events-includes li {
  position: relative;
  padding-left: 22px;
  color: var(--tm-ink-dim) !important;
  font-size: 0.875rem;
  line-height: 1.7;
  margin-bottom: 6px;
}
.tm-events-includes li::before {
  content: "✓";
  position: absolute; left: 0; top: 0;
  color: var(--tm-gold);
  font-weight: bold;
}

/* Forms — events + reserve */
.tm-events-form,
.tm-reserve-form {
  background: rgba(22,22,22,0.72);
  backdrop-filter: blur(8px);
  border: 1px solid var(--tm-line2);
  border-radius: var(--tm-radius-lg);
  padding: var(--tm-space-6);
}
.tm-events-form h3,
.tm-reserve-form h3,
.tm-reserve-section h2 {
  font-family: var(--tm-font-display) !important;
  font-size: 1.5rem !important;
  color: var(--tm-ink) !important;
  margin: 0 0 var(--tm-space-2) !important;
  border: none !important; padding: 0 !important;
}
.tm-events-form-sub,
.tm-reserve-section p:first-of-type {
  color: var(--tm-ink-dim) !important;
  font-size: 0.875rem;
  margin: 0 0 var(--tm-space-5);
}
.tm-events-form label,
.tm-reserve-form label {
  display: block;
  font-size: 0.875rem;
  color: var(--tm-ink-dim);
  margin-bottom: var(--tm-space-3);
}
.tm-events-form input, .tm-events-form select, .tm-events-form textarea,
.tm-reserve-form input, .tm-reserve-form select, .tm-reserve-form textarea {
  display: block;
  margin-top: 4px;
  background: rgba(10,10,10,0.6) !important;
  border: 1px solid var(--tm-line2) !important;
  color: var(--tm-ink) !important;
  border-radius: var(--tm-radius-sm) !important;
  padding: 10px 14px !important;
  width: 100%;
  min-height: 44px;
  font-family: var(--tm-font-body);
  font-size: 0.9375rem;
}
.tm-form-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: var(--tm-space-3);
}
.tm-events-form-foot,
.tm-reserve-form-foot {
  text-align: center;
  font-size: 0.75rem;
  color: var(--tm-ink-mute) !important;
  margin: var(--tm-space-3) 0 0 !important;
}

/* ============== RESERVE SECTION ============== */
.tm-reserve-section {
  padding: var(--tm-space-16) 0;
  background: var(--tm-bg);
}
.tm-reserve-inner {
  max-width: 1100px; margin: 0 auto;
  padding: 0 var(--tm-space-5);
  background: rgba(22,22,22,0.72);
  backdrop-filter: blur(8px);
  border: 1px solid var(--tm-line2);
  border-radius: var(--tm-radius-lg);
  padding: var(--tm-space-8);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-8);
}
@media (min-width: 1024px) {
  .tm-reserve-inner { grid-template-columns: 1fr 1fr; }
}
.tm-reserve-eyebrow {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.75rem;
  color: var(--tm-gold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--tm-space-3);
}
.tm-reserve-perks {
  list-style: none; padding: 0; margin: var(--tm-space-4) 0 0;
}
.tm-reserve-perks li {
  position: relative;
  padding-left: 22px;
  color: var(--tm-ink-dim) !important;
  font-size: 0.875rem;
  margin-bottom: 8px;
}
.tm-reserve-perks li::before {
  content: "✓";
  position: absolute; left: 0;
  color: var(--tm-gold);
  font-weight: bold;
}

/* ============== MAP ============== */
.tm-venue-map-section {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--tm-space-12) var(--tm-space-5);
}
.tm-venue-map-section h2 {
  font-family: var(--tm-font-display) !important;
  font-size: 2rem !important;
  margin: 0 0 var(--tm-space-6) !important;
  border: none !important; padding: 0 !important;
}
.tm-venue-map-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-5);
}
@media (min-width: 1024px) {
  .tm-venue-map-grid { grid-template-columns: 2fr 1fr; }
}
.tm-venue-map-iframe {
  aspect-ratio: 16/10;
  border-radius: var(--tm-radius);
  overflow: hidden;
  border: 1px solid var(--tm-line2);
}
.tm-venue-map-iframe iframe { width: 100%; height: 100%; border: 0; }
.tm-venue-map-card {
  background: rgba(22,22,22,0.6);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  padding: var(--tm-space-5);
  margin-bottom: var(--tm-space-3);
}
.tm-venue-map-card h4 {
  color: var(--tm-gold) !important;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 var(--tm-space-2) !important;
  font-family: var(--tm-font-body) !important;
}
.tm-venue-map-card p { color: var(--tm-ink) !important; font-size: 0.9375rem; line-height: 1.5; margin: 0; }

/* ============== NEARBY ============== */
.tm-nearby-section {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--tm-space-12) var(--tm-space-5);
  border-top: 1px solid var(--tm-line);
}
.tm-nearby-section h2 {
  font-family: var(--tm-font-display) !important;
  font-size: 2rem !important;
  margin: 0 0 var(--tm-space-2) !important;
  border: none !important; padding: 0 !important;
}
.tm-nearby-sub {
  color: var(--tm-ink-dim) !important;
  margin: 0 0 var(--tm-space-8) !important;
}
.tm-nearby-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-5);
}
@media (min-width: 768px)  { .tm-nearby-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tm-nearby-grid { grid-template-columns: repeat(3, 1fr); } }

.tm-nearby-card {
  display: block;
  background: rgba(22,22,22,0.6);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  overflow: hidden;
  text-decoration: none !important;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s, box-shadow .35s;
}
.tm-nearby-card:hover {
  transform: translateY(-3px);
  border-color: var(--tm-line2);
  box-shadow: 0 12px 30px rgba(201, 169, 97, 0.08);
}
.tm-nearby-card-img {
  aspect-ratio: 4/3; overflow: hidden;
  background: var(--tm-surface);
}
.tm-nearby-card-img img {
  width: 100%; height: 100%; object-fit: cover;
}
.tm-nearby-card-placeholder {
  background: linear-gradient(135deg, var(--tm-surface), var(--tm-surface-2));
}
.tm-nearby-card-body { padding: var(--tm-space-4); }
.tm-nearby-card-meta {
  display: block;
  font-size: 0.75rem;
  color: var(--tm-ink-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.tm-nearby-card-body h3 {
  font-family: var(--tm-font-display) !important;
  font-size: 1.0625rem !important;
  color: var(--tm-ink) !important;
  margin: 0 !important;
  border: none !important; padding: 0 !important;
}

/* ============== MOBILE STICKY BAR ============== */
.tm-mobile-sticky {
  display: none;
}
@media (max-width: 768px) {
  .tm-mobile-sticky {
    display: flex;
    gap: 8px;
    position: fixed; left: 0; right: 0; bottom: 0;
    padding: 12px 16px calc(env(safe-area-inset-bottom, 0) + 12px);
    background: rgba(10, 10, 10, 0.92);
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--tm-line2);
    z-index: 50;
  }
  .tm-mobile-sticky-btn {
    flex: 1;
    text-align: center;
    padding: 12px !important;
    font-size: 0.875rem !important;
  }
  .tm-events-types { grid-template-columns: 1fr; }
  .tm-form-row { grid-template-columns: 1fr; }
  .tm-venue-cta-row { flex-direction: column; }
  .tm-venue-cta-row .tm-btn { width: 100%; }
  .tm-venue-hero { min-height: 460px; padding: 40px 0 32px; }
  .tm-venue-logo img { max-width: 140px; max-height: 140px; }
}

/* =========================================================
   ===========================================================
   PILLAR PAGE TEMPLATE (.tm-pillar-*) — Categorias / guias
   ===========================================================
   ========================================================= */

body.tm-pillar .site-main,
body.tm-pillar main,
body.tm-pillar #primary,
body.tm-pillar .site-content {
  padding: 0 !important;
  max-width: none !important;
}
body.tm-pillar article.page,
body.tm-pillar article.post {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.tm-pillar .entry-header,
body.tm-pillar .page-header { display: none !important; }

.tm-pillar-page {
  background: var(--tm-bg);
  color: var(--tm-ink);
}

/* HERO pillar */
.tm-pillar-hero {
  position: relative;
  overflow: hidden;
  min-height: 480px;
  display: flex;
  align-items: center;
  padding: 80px 0 60px;
}
.tm-pillar-hero-gradient {
  background:
    radial-gradient(ellipse at top right, rgba(123, 31, 44, 0.4) 0%, transparent 55%),
    radial-gradient(ellipse at bottom left, rgba(201, 169, 97, 0.18) 0%, transparent 50%),
    linear-gradient(135deg, #110A0F 0%, var(--tm-bg) 60%);
}
.tm-pillar-hero-bg {
  position: absolute; inset: 0; z-index: 0;
}
.tm-pillar-hero-bg img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: saturate(85%);
}
.tm-pillar-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0.85) 100%);
}
.tm-pillar-hero-grain {
  position: absolute; inset: 0; z-index: 1;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.55; mix-blend-mode: overlay; pointer-events: none;
}
.tm-pillar-hero-inner {
  position: relative; z-index: 2;
  max-width: 1100px; margin: 0 auto;
  padding: 0 var(--tm-space-5);
  width: 100%;
  text-align: center;
}
.tm-pillar-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px;
  background: rgba(201, 169, 97, 0.12);
  border: 1px solid rgba(201, 169, 97, 0.4);
  border-radius: 999px;
  font-size: 0.75rem;
  color: var(--tm-gold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--tm-space-5);
  font-family: var(--tm-font-body);
}
.tm-pillar-title {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(2.25rem, 6vw, 4.5rem) !important;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--tm-ink) !important;
  margin: 0 auto var(--tm-space-5) !important;
  max-width: 900px;
  text-shadow: 0 2px 30px rgba(0,0,0,0.6);
  border: none !important; padding: 0 !important;
}
.tm-pillar-stat {
  color: var(--tm-ink-dim) !important;
  font-size: 1rem;
  margin: 0 !important;
  font-style: italic;
  font-family: var(--tm-font-body);
}

/* INTRO content */
.tm-pillar-content {
  background: var(--tm-bg);
  padding: var(--tm-space-12) 0;
}
.tm-pillar-content-inner {
  max-width: 780px;
  margin: 0 auto;
  padding: 0 var(--tm-space-5);
}
.tm-pillar-content-inner > p:first-of-type {
  font-size: 1.25rem !important;
  line-height: 1.7;
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-body);
}

/* GRID DE VENUES */
.tm-pillar-venues {
  background: linear-gradient(180deg, var(--tm-bg) 0%, #0D0A07 50%, var(--tm-bg) 100%);
  padding: var(--tm-space-16) 0;
  border-top: 1px solid var(--tm-line);
  border-bottom: 1px solid var(--tm-line);
}
.tm-pillar-venues-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--tm-space-5);
}
.tm-pillar-venues-header {
  text-align: center;
  margin-bottom: var(--tm-space-10);
}
.tm-pillar-venues-header h2 {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
  color: var(--tm-ink) !important;
  margin: 0 0 var(--tm-space-2) !important;
  border: none !important; padding: 0 !important;
}
.tm-pillar-venues-header p {
  color: var(--tm-ink-dim) !important;
  font-size: 0.9375rem;
  font-family: var(--tm-font-body);
}

.tm-pillar-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-5);
}
@media (min-width: 640px)  { .tm-pillar-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tm-pillar-grid { grid-template-columns: repeat(3, 1fr); } }

.tm-pillar-card {
  display: flex;
  flex-direction: column;
  background: rgba(22,22,22,0.7);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  overflow: hidden;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s, box-shadow .35s;
}
.tm-pillar-card:hover {
  transform: translateY(-4px);
  border-color: var(--tm-line2);
  box-shadow: 0 20px 40px rgba(201, 169, 97, 0.1);
  text-decoration: none !important;
}

.tm-pillar-card-img {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--tm-surface);
}
.tm-pillar-card-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s ease;
}
.tm-pillar-card:hover .tm-pillar-card-img img { transform: scale(1.04); }
.tm-pillar-card-placeholder {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--tm-surface), var(--tm-surface-2));
  display: grid; place-items: center;
  color: var(--tm-line2);
}
.tm-pillar-card-num {
  position: absolute;
  top: 12px; left: 12px;
  background: var(--tm-bg);
  color: var(--tm-gold);
  font-family: var(--tm-font-display);
  font-size: 0.875rem;
  font-weight: 700;
  width: 32px; height: 32px;
  border-radius: 50%;
  display: grid; place-items: center;
  border: 1px solid var(--tm-line2);
}

.tm-pillar-card-body {
  padding: var(--tm-space-5);
  display: flex;
  flex-direction: column;
  flex: 1;
}
.tm-pillar-card-meta {
  display: block;
  font-size: 0.6875rem;
  color: var(--tm-gold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}
.tm-pillar-card-body h3 {
  font-family: var(--tm-font-display) !important;
  font-size: 1.1875rem !important;
  color: var(--tm-ink) !important;
  margin: 0 0 8px !important;
  line-height: 1.3;
  border: none !important; padding: 0 !important;
}
.tm-pillar-card-body p {
  color: var(--tm-ink-dim) !important;
  font-size: 0.875rem;
  line-height: 1.55;
  margin: 0 0 var(--tm-space-3) !important;
  flex: 1;
}
.tm-pillar-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--tm-gold);
  font-size: 0.8125rem;
  font-weight: 600;
  font-family: var(--tm-font-body);
  margin-top: auto;
}
.tm-pillar-card:hover .tm-pillar-card-cta { gap: 10px; }

/* CTA FOOTER */
.tm-pillar-cta-footer {
  background:
    radial-gradient(ellipse at center, rgba(201, 169, 97, 0.08) 0%, transparent 70%),
    var(--tm-bg);
  padding: var(--tm-space-16) 0;
  text-align: center;
}
.tm-pillar-cta-inner {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--tm-space-5);
}
.tm-pillar-cta-footer h2 {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
  color: var(--tm-ink) !important;
  margin: 0 0 var(--tm-space-3) !important;
  border: none !important; padding: 0 !important;
}
.tm-pillar-cta-footer p {
  color: var(--tm-ink-dim) !important;
  margin: 0 0 var(--tm-space-6) !important;
  font-family: var(--tm-font-body);
}
.tm-pillar-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tm-space-3);
  justify-content: center;
}

/* =========================================================
   ===========================================================
   v2.1 — HOME APPLE-GRADE
   Reescrito desde cero: minimalismo extremo, whitespace
   generoso, jerarquia tipografica precisa, animaciones suaves
   con intencion. Inspirado en apple.com / nytimes magazine.
   Aplica al template front-page.php.
   ===========================================================
   ========================================================= */

/* Container del home — sin estilos legacy del Elementor */
body.home main.tm-home,
body.home .tm-home {
  background: var(--tm-bg);
  color: var(--tm-ink);
  margin: 0;
  padding: 0;
}

/* Hide entry-header, page-header, etc del template default que aun aparezca */
body.home .entry-header,
body.home .page-header,
body.home article.page > header,
body.home > article > .elementor-section:first-child:not(.tm-home-hero) {
  display: none !important;
}

/* v2.2 — Hero apple-grade ya no se usa (reemplazado por masthead NYT).
   Mantenemos las reglas por compatibilidad pero el HTML ya no las invoca. */
.tm-home-hero {
  display: none;
}

/* =========================================================
   v2.2 — MASTHEAD NYT-STYLE
   Lead story (2/3) + sidebar de sub-stories (1/3).
   Tipografia editorial, jerarquia clara, asimetrico.
   ========================================================= */

.tm-home-masthead {
  background: var(--tm-bg);
  padding: 24px 24px 56px;
}
@media (max-width: 768px) {
  .tm-home-masthead { padding: 16px 16px 40px; }
}
.tm-home-masthead-inner {
  max-width: 1280px;
  margin: 0 auto;
}

/* Meta bar superior (issue + fecha) */
.tm-home-masthead-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--tm-ink-mute);
  margin-bottom: 14px;
}
.tm-home-masthead-issue { color: var(--tm-gold); }
.tm-home-masthead-divider { color: var(--tm-ink-mute); opacity: 0.4; }
.tm-home-masthead-date { color: var(--tm-ink-mute); }

/* Linea horizontal divisoria */
.tm-home-masthead-rule {
  border: 0;
  height: 1px;
  background: var(--tm-line-2);
  margin: 0 0 40px;
  opacity: 0.6;
}

/* Grid principal */
.tm-home-masthead-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 56px;
}
@media (min-width: 1024px) {
  .tm-home-masthead-grid {
    grid-template-columns: 2fr 1fr;
    gap: 72px;
  }
}

/* ============== LEAD STORY ============== */
.tm-home-lead { margin: 0; }
.tm-home-lead-link {
  display: block;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  border: none !important;
}
.tm-home-lead-img {
  aspect-ratio: 16/10;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 28px;
  background: var(--tm-surface);
}
.tm-home-lead-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-lead-link:hover .tm-home-lead-img img { transform: scale(1.02); }

.tm-home-lead-cat {
  display: inline-block;
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--tm-gold) !important;
  margin-bottom: 14px;
}

.tm-home-lead-headline {
  font-family: var(--tm-font-display) !important;
  font-weight: 700;
  font-size: clamp(2rem, 4.2vw, 3.75rem);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--tm-ink) !important;
  margin: 0 0 18px;
  border: none !important;
  padding: 0 !important;
}
.tm-home-lead-link:hover .tm-home-lead-headline { color: var(--tm-gold) !important; transition: color .25s ease; }

.tm-home-lead-lede {
  font-family: var(--tm-font-body);
  font-size: 1.1875rem;
  line-height: 1.55;
  color: var(--tm-ink-dim) !important;
  margin: 0 0 20px;
  font-weight: 400;
}

.tm-home-lead-byline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--tm-font-body);
  font-size: 0.8125rem;
  font-style: italic;
  color: var(--tm-ink-mute);
}
.tm-home-lead-divider { opacity: 0.5; }

/* ============== SIDEBAR / SUB-STORIES ============== */
.tm-home-side {
  border-top: 1px solid var(--tm-line);
  padding-top: 0;
}
@media (min-width: 1024px) {
  .tm-home-side {
    border-top: none;
    border-left: 1px solid var(--tm-line);
    padding-left: 32px;
  }
}

.tm-home-side-head {
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--tm-gold);
  padding-bottom: 14px;
  margin-bottom: 0;
  margin-top: 16px;
  border-bottom: 2px solid var(--tm-gold);
  display: inline-block;
}
@media (min-width: 1024px) {
  .tm-home-side-head { margin-top: 0; }
}

.tm-home-side-story {
  display: grid !important;
  grid-template-columns: 1fr 80px;
  gap: 16px;
  align-items: flex-start;
  padding: 22px 0;
  border-bottom: 1px solid var(--tm-line);
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: padding .25s ease;
}
.tm-home-side-story:last-child { border-bottom: none; }
.tm-home-side-story:hover { padding-left: 4px; }
.tm-home-side-story:hover .tm-home-side-title { color: var(--tm-gold) !important; }

.tm-home-side-content { min-width: 0; }

.tm-home-side-cat {
  display: block;
  font-family: var(--tm-font-body);
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--tm-gold) !important;
  margin-bottom: 6px;
}
.tm-home-side-title {
  font-family: var(--tm-font-display) !important;
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--tm-ink) !important;
  margin: 0 0 6px !important;
  border: none !important;
  padding: 0 !important;
  transition: color .2s ease;
}
.tm-home-side-byline {
  display: block;
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-style: italic;
  color: var(--tm-ink-mute);
}

.tm-home-side-thumb {
  width: 80px;
  height: 80px;
  border-radius: 4px;
  overflow: hidden;
  background: var(--tm-surface);
  flex-shrink: 0;
}
.tm-home-side-thumb img {
  width: 100%; height: 100%; object-fit: cover;
}

/* =========================================================
   v2.2 — JOINCHAT WhatsApp button — quitar circulo azul
   Joinchat plugin renderea boton flotante con wrapper que
   puede tener bg propio. Limpiamos para mostrar solo el icono.
   ========================================================= */

.joinchat,
.joinchat *,
.joinchat__button,
.joinchat__button:before,
.joinchat__button:after {
  background-color: transparent !important;
  box-shadow: none !important;
}

.joinchat .joinchat__button {
  background-color: #25D366 !important;  /* WhatsApp green oficial */
  border-radius: 50% !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35), 0 2px 6px rgba(0, 0, 0, 0.2) !important;
  width: 56px !important;
  height: 56px !important;
}
.joinchat .joinchat__button:hover {
  background-color: #20BA5A !important;
  transform: scale(1.05);
}

/* Quitar bubble / notice / powered-by que pueden tener fondo extra */
.joinchat .joinchat__bubble,
.joinchat .joinchat__notice,
.joinchat .joinchat__powered,
.joinchat .joinchat__chat__powered,
.joinchat .joinchat__close,
.joinchat__rrss {
  background: transparent !important;
}

/* El icono dentro del boton: blanco */
.joinchat .joinchat__button__sendtext,
.joinchat svg path,
.joinchat .joinchat__button svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}

/* Si hay un wrapper externo con bg */
[id*="joinchat"]:not(.joinchat__button),
[class^="joinchat"]:not(.joinchat__button):not(.joinchat__button__open):not(.joinchat__button__sendtext) {
  background-color: transparent !important;
}

/* =========================================================
   v2.2 — FOOTER FIX EN HOME
   El home termina en .tm-home-newsletter. Asegurar que el
   footer (que viene despues por get_footer()) NO se rompa.
   ========================================================= */

body.home footer,
body.home .site-footer,
body.home > footer {
  background: var(--tm-bg) !important;
  width: 100%;
  margin: 0 !important;
  padding: var(--tm-space-12) var(--tm-space-5) !important;
  border-top: 1px solid var(--tm-line);
  display: block !important;
  clear: both;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  overflow: visible;
}

/* Si el newsletter section tiene margin-bottom raro -> resetear */
body.home .tm-home-newsletter {
  margin-bottom: 0 !important;
  padding-bottom: var(--tm-space-16) !important;
}

/* Cualquier widget de Elementor en footer del home: bg dark + text visible */
body.home footer .elementor-section,
body.home footer .elementor-widget-container,
body.home footer .elementor-text-editor {
  background-color: transparent !important;
  color: var(--tm-ink) !important;
}
body.home footer .elementor-widget-text-editor *,
body.home footer h1, body.home footer h2, body.home footer h3,
body.home footer h4, body.home footer h5, body.home footer h6,
body.home footer p, body.home footer a, body.home footer span {
  color: var(--tm-ink) !important;
}
body.home footer a:hover { color: var(--tm-gold) !important; }
body.home footer .elementor-icon-list-text { color: var(--tm-ink) !important; }

/* Footer copyright / bottom strip */
body.home footer .copyright,
body.home footer [class*="copyright"] {
  color: var(--tm-ink-mute) !important;
  font-size: 0.8125rem;
  text-align: center;
  padding-top: var(--tm-space-6);
  border-top: 1px solid var(--tm-line);
  margin-top: var(--tm-space-6);
}

/* Redes sociales en footer (si hay icon list) */
body.home footer .elementor-icon-list-icon i,
body.home footer .elementor-icon-list-icon svg,
body.home footer [class*="social"] a {
  color: var(--tm-ink) !important;
  transition: color .2s ease;
}
body.home footer [class*="social"] a:hover { color: var(--tm-gold) !important; }
.tm-home-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.7;
  mix-blend-mode: overlay;
  pointer-events: none;
}

.tm-home-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  width: 100%;
  text-align: center;
  margin: 0 auto;
}

.tm-home-eyebrow {
  display: inline-block;
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--tm-gold);
  margin-bottom: var(--tm-space-6);
  padding: 6px 14px;
  border: 1px solid rgba(37, 99, 235, 0.4);
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.06);
}

.tm-home-headline {
  font-family: var(--tm-font-display);
  font-weight: 700;
  font-size: clamp(2.5rem, 7vw, 5.5rem);
  line-height: 0.98;
  letter-spacing: -0.03em;
  color: var(--tm-ink);
  margin: 0 auto var(--tm-space-6);
  max-width: 900px;
}
.tm-home-headline-accent {
  display: block;
  font-style: italic;
  color: var(--tm-gold);
  font-weight: 700;
}

.tm-home-subhead {
  font-family: var(--tm-font-body);
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  line-height: 1.5;
  color: var(--tm-ink-dim);
  max-width: 620px;
  margin: 0 auto var(--tm-space-10);
  font-weight: 400;
}

.tm-home-hero-cta {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--tm-space-5);
  margin-bottom: var(--tm-space-16);
}

.tm-btn-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px;
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  padding: 8px 4px;
  border: none !important;
  background: transparent !important;
  transition: color .2s ease, gap .25s ease !important;
}
.tm-btn-link:hover { color: var(--tm-gold) !important; gap: 10px; }
.tm-btn-link svg { transition: transform .25s ease; }
.tm-btn-link:hover svg { transform: translateX(2px); }

.tm-home-scroll-hint {
  position: absolute;
  bottom: var(--tm-space-8);
  left: 50%;
  transform: translateX(-50%);
  color: var(--tm-ink-mute);
  animation: tm-scroll-bounce 2s ease-in-out infinite;
  z-index: 3;
}
@keyframes tm-scroll-bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.5; }
  50% { transform: translateX(-50%) translateY(8px); opacity: 1; }
}

/* ============== SECTION HEAD COMPARTIDO ============== */
.tm-home-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--tm-space-12);
  padding: 0 var(--tm-space-5);
}
.tm-home-section-eyebrow {
  display: inline-block;
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--tm-gold);
  margin-bottom: var(--tm-space-3);
}
.tm-home-section-title {
  font-family: var(--tm-font-display);
  font-weight: 700;
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--tm-ink);
  margin: 0 0 var(--tm-space-4);
}
.tm-home-section-sub {
  font-family: var(--tm-font-body);
  font-size: 1.0625rem;
  color: var(--tm-ink-dim);
  margin: 0;
  line-height: 1.55;
}

/* =========================================================
   v2.4 — ZONES (Por colonia) y TYPES (Por experiencia)
   Grids editorial limpios para distribuir las pillars/categorias
   en el home.
   ========================================================= */

/* Section head left-aligned variant */
.tm-home-section-head--left {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 720px;
}

/* ============== ZONES GRID ============== */
.tm-home-zones {
  padding: var(--tm-space-20) var(--tm-space-5);
  background: var(--tm-bg);
  border-top: 1px solid var(--tm-line);
}
.tm-home-zones-inner {
  max-width: 1280px;
  margin: 0 auto;
}
.tm-home-zones .tm-home-section-head--left {
  max-width: 1280px;
  margin: 0 auto var(--tm-space-12);
}

.tm-home-zones-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (min-width: 640px) {
  .tm-home-zones-grid { grid-template-columns: repeat(4, 1fr); gap: 16px; }
}
@media (min-width: 1024px) {
  .tm-home-zones-grid { grid-template-columns: repeat(8, 1fr); gap: 16px; }
}

.tm-home-zone-card {
  position: relative;
  display: block;
  aspect-ratio: 1;
  border-radius: 14px;
  overflow: hidden;
  background: var(--tm-surface);
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-zone-card:hover {
  transform: translateY(-4px);
  text-decoration: none !important;
}

.tm-home-zone-img {
  position: absolute; inset: 0;
}
.tm-home-zone-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-zone-card:hover .tm-home-zone-img img { transform: scale(1.08); }

.tm-home-zone-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,10,0.2) 0%, rgba(10,10,10,0.85) 100%);
  transition: background .3s ease;
}
.tm-home-zone-card:hover .tm-home-zone-overlay {
  background: linear-gradient(180deg, rgba(10,10,10,0.3) 0%, rgba(10,10,10,0.95) 100%);
}

.tm-home-zone-img--empty {
  background: linear-gradient(135deg, var(--tm-surface), var(--tm-surface-2));
}

.tm-home-zone-content {
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  z-index: 2;
}
.tm-home-zone-name {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(0.9375rem, 1.4vw, 1.0625rem) !important;
  font-weight: 700 !important;
  line-height: 1.15;
  color: var(--tm-ink) !important;
  margin: 0 0 4px !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.6);
  letter-spacing: -0.01em;
}
.tm-home-zone-count {
  display: inline-block;
  font-family: var(--tm-font-body);
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tm-gold);
}

/* ============== TYPES GRID ============== */
.tm-home-types {
  padding: var(--tm-space-20) var(--tm-space-5);
  background:
    linear-gradient(180deg, var(--tm-bg) 0%, #0E0F14 50%, var(--tm-bg) 100%);
  border-top: 1px solid var(--tm-line);
  border-bottom: 1px solid var(--tm-line);
}
.tm-home-types .tm-home-section-head--left {
  max-width: 1280px;
  margin: 0 auto var(--tm-space-12);
}
.tm-home-types-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 640px)  { .tm-home-types-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tm-home-types-grid { grid-template-columns: repeat(3, 1fr); } }

.tm-home-type-card {
  display: flex;
  flex-direction: row;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1), border-color .25s ease;
  min-height: 120px;
}
.tm-home-type-card:hover {
  transform: translateY(-3px);
  border-color: var(--tm-line-2) !important;
  text-decoration: none !important;
  box-shadow: 0 14px 30px rgba(37, 99, 235, 0.10);
}

.tm-home-type-img {
  width: 120px;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--tm-surface-2);
}
.tm-home-type-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s ease;
}
.tm-home-type-card:hover .tm-home-type-img img { transform: scale(1.05); }

.tm-home-type-content {
  padding: 18px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.tm-home-type-name {
  font-family: var(--tm-font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--tm-ink) !important;
  margin: 0 0 4px !important;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.tm-home-type-desc {
  font-family: var(--tm-font-body) !important;
  font-size: 0.875rem !important;
  color: var(--tm-ink-dim) !important;
  margin: 0 0 8px !important;
  line-height: 1.4;
}
.tm-home-type-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--tm-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tm-gold);
  margin-top: auto;
  transition: gap .25s ease;
}
.tm-home-type-card:hover .tm-home-type-cta { gap: 10px; }

/* =========================================================
   v2.4 — EDITORIAL COPY 1000+ palabras (SEO + brand)
   ========================================================= */

.tm-home-editorial {
  padding: var(--tm-space-20) var(--tm-space-5);
  background: var(--tm-bg);
}
.tm-home-editorial-inner {
  max-width: 720px;
  margin: 0 auto;
}
.tm-home-editorial-rule {
  width: 60px;
  height: 2px;
  background: var(--tm-gold);
  margin-bottom: var(--tm-space-6);
}
.tm-home-editorial-title {
  font-family: var(--tm-font-display) !important;
  font-size: clamp(2rem, 4vw, 3.25rem) !important;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--tm-ink) !important;
  margin: var(--tm-space-3) 0 var(--tm-space-8) !important;
  border: none !important; padding: 0 !important;
}
.tm-home-editorial-prose {
  font-family: var(--tm-font-body);
  color: var(--tm-ink) !important;
}
.tm-home-editorial-lede {
  font-family: var(--tm-font-display) !important;
  font-style: italic;
  font-size: clamp(1.1875rem, 2vw, 1.4375rem);
  line-height: 1.45;
  color: var(--tm-ink) !important;
  margin: 0 0 var(--tm-space-10) !important;
  font-weight: 400;
  border-left: 3px solid var(--tm-gold);
  padding-left: var(--tm-space-5);
}
.tm-home-editorial-prose h3 {
  font-family: var(--tm-font-display) !important;
  font-size: 1.375rem !important;
  font-weight: 700 !important;
  color: var(--tm-ink) !important;
  margin: var(--tm-space-10) 0 var(--tm-space-3) !important;
  letter-spacing: -0.01em;
  border: none !important;
  padding: 0 !important;
}
.tm-home-editorial-prose p {
  font-family: var(--tm-font-body) !important;
  font-size: 1.0625rem !important;
  line-height: 1.7 !important;
  color: var(--tm-ink-dim) !important;
  margin: 0 0 var(--tm-space-4) !important;
}
.tm-home-editorial-prose a {
  color: var(--tm-gold) !important;
  border-bottom: 1px solid rgba(37, 99, 235, 0.4);
  text-decoration: none !important;
  padding-bottom: 1px;
  transition: border-color .2s ease, color .2s ease;
}
.tm-home-editorial-prose a:hover {
  color: var(--tm-gold-400) !important;
  border-bottom-color: var(--tm-gold) !important;
}
.tm-home-editorial-cta-line {
  margin-top: var(--tm-space-8) !important;
  border-top: 1px solid var(--tm-line);
  padding-top: var(--tm-space-6) !important;
}

/* ============== FEATURED — Esta semana ============== */
.tm-home-featured {
  padding: var(--tm-space-20) var(--tm-space-5);
  background: var(--tm-bg);
}
.tm-home-featured-inner {
  max-width: 1280px;
  margin: 0 auto;
}
.tm-home-featured-card {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: var(--tm-space-10);
  background: transparent;
  border-radius: 24px;
  overflow: hidden;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .5s cubic-bezier(.2, .8, .2, 1);
}
@media (min-width: 1024px) {
  .tm-home-featured-card {
    grid-template-columns: 1.4fr 1fr;
    align-items: center;
  }
}
.tm-home-featured-card:hover { transform: translateY(-3px); text-decoration: none !important; }

.tm-home-featured-img {
  aspect-ratio: 4/3;
  border-radius: 24px;
  overflow: hidden;
  background: var(--tm-surface);
  position: relative;
}
.tm-home-featured-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-featured-card:hover .tm-home-featured-img img { transform: scale(1.04); }

.tm-home-featured-content {
  padding: 0 var(--tm-space-2);
}
.tm-home-featured-meta {
  display: block;
  font-family: var(--tm-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tm-gold);
  margin: var(--tm-space-3) 0 var(--tm-space-3);
}
.tm-home-featured-title {
  font-family: var(--tm-font-display);
  font-size: clamp(1.875rem, 3.5vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--tm-ink);
  margin: 0 0 var(--tm-space-4);
}
.tm-home-featured-excerpt {
  font-family: var(--tm-font-body);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--tm-ink-dim);
  margin: 0 0 var(--tm-space-5);
}
.tm-home-featured-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--tm-font-body);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--tm-gold) !important;
  transition: gap .25s ease;
}
.tm-home-featured-card:hover .tm-home-featured-cta { gap: 12px; }

/* ============== PILLARS GRID ============== */
.tm-home-pillars {
  padding: var(--tm-space-20) var(--tm-space-5);
  background:
    linear-gradient(180deg, var(--tm-bg) 0%, #0E0F14 50%, var(--tm-bg) 100%);
  border-top: 1px solid var(--tm-line);
  border-bottom: 1px solid var(--tm-line);
}
.tm-home-pillars-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-5);
}
@media (min-width: 640px)  { .tm-home-pillars-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tm-home-pillars-grid { grid-template-columns: repeat(4, 1fr); } }

.tm-home-pillar-card {
  position: relative;
  display: block;
  aspect-ratio: 3/4;
  border-radius: 20px;
  overflow: hidden;
  background: var(--tm-surface);
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .5s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-pillar-card:hover { transform: translateY(-6px); text-decoration: none !important; }

.tm-home-pillar-img {
  position: absolute; inset: 0;
}
.tm-home-pillar-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-pillar-card:hover .tm-home-pillar-img img { transform: scale(1.08); }

.tm-home-pillar-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10,10,10,0.4) 50%, rgba(10,10,10,0.95) 100%);
  transition: background .4s ease;
}
.tm-home-pillar-card:hover .tm-home-pillar-overlay {
  background: linear-gradient(180deg, transparent 0%, rgba(10,10,10,0.5) 40%, rgba(10,10,10,0.98) 100%);
}

.tm-home-pillar-content {
  position: absolute;
  bottom: var(--tm-space-6);
  left: var(--tm-space-6);
  right: var(--tm-space-6);
  z-index: 2;
}
.tm-home-pillar-count {
  display: inline-block;
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tm-gold);
  margin-bottom: var(--tm-space-2);
  padding: 4px 10px;
  background: rgba(10,10,10,0.6);
  backdrop-filter: blur(8px);
  border-radius: 999px;
  border: 1px solid rgba(37, 99, 235, 0.35);
}
.tm-home-pillar-title {
  font-family: var(--tm-font-display);
  font-size: 1.375rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--tm-ink) !important;
  margin: 0;
  text-shadow: 0 2px 20px rgba(0,0,0,0.7);
}

/* ============== TRENDING — venues recientes ============== */
.tm-home-trending {
  padding: var(--tm-space-20) var(--tm-space-5);
  background: var(--tm-bg);
}
.tm-home-trending-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-6);
}
@media (min-width: 640px)  { .tm-home-trending-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tm-home-trending-grid { grid-template-columns: repeat(3, 1fr); } }

.tm-home-trending-card {
  display: block;
  background: transparent;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-trending-card:hover { transform: translateY(-3px); text-decoration: none !important; }

.tm-home-trending-img {
  aspect-ratio: 4/3;
  border-radius: 16px;
  overflow: hidden;
  background: var(--tm-surface);
  margin-bottom: var(--tm-space-4);
}
.tm-home-trending-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-trending-card:hover .tm-home-trending-img img { transform: scale(1.04); }

.tm-home-trending-meta {
  display: block;
  font-family: var(--tm-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tm-gold);
  margin-bottom: var(--tm-space-2);
}
.tm-home-trending-title {
  font-family: var(--tm-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--tm-ink) !important;
  margin: 0;
}

.tm-home-trending-foot {
  text-align: center;
  margin-top: var(--tm-space-12);
}

/* ============== NEWS / EDITORIAL ============== */
.tm-home-news {
  padding: var(--tm-space-20) var(--tm-space-5);
  background: var(--tm-bg);
  border-top: 1px solid var(--tm-line);
}
.tm-home-news-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tm-space-8);
}
@media (min-width: 768px)  { .tm-home-news-grid { grid-template-columns: repeat(3, 1fr); } }

.tm-home-news-card {
  display: block;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}
.tm-home-news-card:hover { transform: translateY(-3px); text-decoration: none !important; }

.tm-home-news-img {
  aspect-ratio: 16/10;
  border-radius: 12px;
  overflow: hidden;
  background: var(--tm-surface);
  margin-bottom: var(--tm-space-4);
}
.tm-home-news-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s ease;
}
.tm-home-news-card:hover .tm-home-news-img img { transform: scale(1.04); }

.tm-home-news-meta {
  display: flex;
  align-items: center;
  gap: var(--tm-space-3);
  margin-bottom: var(--tm-space-2);
}
.tm-home-news-cat {
  font-family: var(--tm-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tm-gold);
}
.tm-home-news-date {
  font-family: var(--tm-font-body);
  font-size: 0.75rem;
  color: var(--tm-ink-mute);
}
.tm-home-news-title {
  font-family: var(--tm-font-display);
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--tm-ink) !important;
  margin: 0;
}

/* ============== NEWSLETTER ============== */
.tm-home-newsletter {
  padding: var(--tm-space-20) var(--tm-space-5);
  background:
    radial-gradient(ellipse at center, rgba(37, 99, 235, 0.08) 0%, transparent 60%),
    var(--tm-bg);
  text-align: center;
  border-top: 1px solid var(--tm-line);
}
.tm-home-newsletter-inner {
  max-width: 540px;
  margin: 0 auto;
}
.tm-home-newsletter-title {
  font-family: var(--tm-font-display);
  font-size: clamp(1.875rem, 3.5vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--tm-ink);
  margin: var(--tm-space-3) 0 var(--tm-space-3);
}
.tm-home-newsletter-sub {
  font-family: var(--tm-font-body);
  font-size: 1rem;
  color: var(--tm-ink-dim);
  margin: 0 0 var(--tm-space-8);
}

.tm-home-newsletter-form {
  display: flex;
  flex-direction: column;
  gap: var(--tm-space-3);
  max-width: 440px;
  margin: 0 auto;
}
@media (min-width: 640px) {
  .tm-home-newsletter-form {
    flex-direction: row;
    align-items: stretch;
  }
}
.tm-home-newsletter-form input[type="email"] {
  flex: 1;
  background: rgba(22, 22, 22, 0.6) !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 999px !important;
  padding: 14px 22px !important;
  color: var(--tm-ink) !important;
  font-family: var(--tm-font-body) !important;
  font-size: 0.9375rem !important;
  min-height: 48px;
  transition: border-color .25s ease, background .25s ease;
}
.tm-home-newsletter-form input[type="email"]:focus {
  outline: none !important;
  border-color: var(--tm-gold) !important;
  background: rgba(22, 22, 22, 0.9) !important;
}
.tm-home-newsletter-form input[type="email"]::placeholder {
  color: var(--tm-ink-mute);
  font-style: italic;
}
.tm-home-newsletter-form button {
  border-radius: 999px !important;
  padding: 14px 28px !important;
  white-space: nowrap;
}

/* =========================================================
   v2.1 — NUCLEAR FIX TEXTO NEGRO EN CLUSTERS
   Ya no mas texto perdido en cards de plugins.
   ========================================================= */

/* Selectores ULTRA NUCLEAR para cualquier descendiente de cards de plugins */
html body article.pt-cv-content-item,
html body article.pt-cv-content-item *,
html body article.pt-cv-content-item *:not(svg):not(path),
html body .pt-cv-content-item,
html body .pt-cv-content-item *,
html body .pt-cv-grid *,
html body .pt-cv-wrapper *,
html body .aps-slide *,
html body .elementor-post__card *,
html body .elementor-posts .elementor-post * {
  color: var(--tm-ink);
}

/* Override final con specificity maxima */
html body[class] article.pt-cv-content-item h1,
html body[class] article.pt-cv-content-item h2,
html body[class] article.pt-cv-content-item h3,
html body[class] article.pt-cv-content-item h4,
html body[class] article.pt-cv-content-item .pt-cv-title,
html body[class] article.pt-cv-content-item .pt-cv-title-text,
html body[class] article.pt-cv-content-item .entry-title,
html body[class] article.pt-cv-content-item .entry-title a {
  color: var(--tm-ink) !important;
  background: transparent !important;
}

html body[class] article.pt-cv-content-item p,
html body[class] article.pt-cv-content-item .post-content,
html body[class] article.pt-cv-content-item .pt-cv-content,
html body[class] article.pt-cv-content-item .pt-cv-content-text,
html body[class] article.pt-cv-content-item .entry-summary,
html body[class] article.pt-cv-content-item .entry-summary p {
  color: var(--tm-ink-dim) !important;
  background: transparent !important;
}

html body[class] article.pt-cv-content-item span:not(.tm-home-section-eyebrow),
html body[class] article.pt-cv-content-item div:not(.tm-home-section-head):not(.tm-home-pillar-content) {
  color: inherit !important;
}

/* Si el plugin tiene inline style con color black hardcoded */
html body article.pt-cv-content-item [style*="color: #000"],
html body article.pt-cv-content-item [style*="color:#000"],
html body article.pt-cv-content-item [style*="color: black"],
html body article.pt-cv-content-item [style*="color:black"],
html body article.pt-cv-content-item [style*="rgb(0"],
html body article.pt-cv-content-item [style*="rgba(0,0,0"] {
  color: var(--tm-ink) !important;
}

/* =========================================================
   v2.9.7 — JOINCHAT chatbox MINIMAL (clases reales del plugin)
   Plugin: creame-whatsapp-me. Las clases del chatbox son
   __chatbox, __header, __chat, __bubble, __btn, __open
   (NO __box, __chat__bubble, __chat__btn como asumi en v2.9.3).
   Por eso nada se aplicaba antes.
   ========================================================= */

/* Contenedor del chatbox (panel desplegado) */
.joinchat__chatbox {
  width: 280px !important;
  max-width: calc(100vw - 32px) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.2) !important;
  font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  background: #131313 !important;
}
@media (max-width: 480px) {
  .joinchat__chatbox {
    width: calc(100vw - 32px) !important;
    max-width: 320px !important;
    right: 16px !important;
    left: auto !important;
    bottom: 96px !important;
  }
}

/* Header del chatbox: verde sobrio, mas compacto */
.joinchat__header {
  background: #128C45 !important;
  background-image: none !important;
  color: #FFFFFF !important;
  padding: 12px 16px !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  min-height: auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.joinchat__header *,
.joinchat__header__text {
  color: #FFFFFF !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}

/* Body del chat: dark con buen contraste */
.joinchat__chat,
.joinchat__scroll {
  background: #131313 !important;
  background-image: none !important;
  padding: 16px !important;
  color: #E8E8E8 !important;
}
.joinchat__scroll::after {
  display: none !important;  /* el fade-out blanco que tapaba el contenido */
}

/* Burbuja del mensaje: gris oscuro con texto BIEN visible */
.joinchat__bubble {
  background: #1F1F1F !important;
  color: #FFFFFF !important;
  border-radius: 10px !important;
  padding: 12px 14px !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  font-weight: 400 !important;
  box-shadow: none !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  margin: 0 0 12px 0 !important;
}
.joinchat__bubble *,
.joinchat__bubble p,
.joinchat__bubble span {
  color: #FFFFFF !important;
  font-family: inherit !important;
}
.joinchat__bubble--note {
  background: rgba(37, 99, 235, 0.08) !important;
  border-color: rgba(37, 99, 235, 0.2) !important;
  color: #FFFFFF !important;
  font-size: 12px !important;
}

/* Boton "Abrir chat" (.joinchat__btn): VERDE WhatsApp solido + texto blanco */
.joinchat__btn,
.joinchat__open,
a.joinchat__btn,
.joinchat__chatbox a.joinchat__btn {
  background: #25D366 !important;
  color: #FFFFFF !important;
  border-radius: 10px !important;
  padding: 12px 18px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  box-shadow: none !important;
  border: none !important;
  text-transform: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  text-decoration: none !important;
  width: 100% !important;
  transition: background 0.15s ease !important;
}
.joinchat__btn:hover,
.joinchat__open:hover,
a.joinchat__btn:hover {
  background: #128C45 !important;
}
.joinchat__btn *,
.joinchat__open *,
.joinchat__open__text,
.joinchat__open__icon {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
  font-family: inherit !important;
}
.joinchat__btn svg,
.joinchat__open svg {
  width: 18px !important;
  height: 18px !important;
  fill: #FFFFFF !important;
}

/* Boton X cerrar */
.joinchat__close {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.9) !important;
  opacity: 0.9 !important;
  font-size: 18px !important;
  padding: 4px !important;
  margin-left: auto !important;
}
.joinchat__close:hover {
  opacity: 1 !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border-radius: 50% !important;
}

/* Powered by / branding del plugin → ocultar */
.joinchat__pa,
.joinchat__pb,
[class*="powered"] {
  display: none !important;
}

/* Optin (privacy checkbox) — si aparece, estilo coherente */
.joinchat__optin {
  font-size: 11px !important;
  color: rgba(255, 255, 255, 0.55) !important;
  padding: 12px 16px !important;
  background: transparent !important;
  border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* =========================================================
   v2.8 — FORM FEEDBACK STATES (Trend webhook → Make → Odoo)
   Honeypot oculto, mensajes de error inline, success replace.
   ========================================================= */

/* Honeypot: invisible para humanos, visible para bots */
.tm-honeypot {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  height: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
}

/* Mensaje inline de error/info */
.tm-form-msg {
  margin: 0 0 14px 0;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 500;
}
.tm-form-msg-error {
  background: rgba(220, 38, 38, 0.10);
  color: #B91C1C;
  border: 1px solid rgba(220, 38, 38, 0.25);
}
.tm-form-msg-info {
  background: rgba(37, 99, 235, 0.10);
  color: #1D4ED8;
  border: 1px solid rgba(37, 99, 235, 0.25);
}

/* Success: reemplaza todo el form con un bloque limpio */
.tm-form-success {
  padding: 28px 24px;
  text-align: center;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(37, 99, 235, 0.02));
  border: 1px solid rgba(37, 99, 235, 0.25);
  border-radius: 12px;
  color: var(--tm-ink, #111);
  font-size: 16px;
  line-height: 1.55;
  font-weight: 500;
}
.tm-events-form .tm-form-success {
  background: linear-gradient(135deg, rgba(220, 38, 38, 0.08), rgba(220, 38, 38, 0.02));
  border-color: rgba(220, 38, 38, 0.25);
}

/* Disabled state del boton durante submit */
.tm-trend-form button[disabled] {
  opacity: 0.65;
  cursor: progress;
}

/* =========================================================
   v2.9.24 — MEGA MENU multi-columna para dropdowns largos
   El menú principal nuevo (Antros con 15 items, Otras ciudades con 10)
   necesita layout multi-columna en desktop para no cortar la pantalla.
   En mobile se mantiene single-column scroll.
   ========================================================= */

/* Detectamos dropdowns con muchos hijos por cantidad de <li>:
   en CSS no podemos contar elementos, así que usamos column-count
   y dejamos que el browser distribuya. Min-width amplio para 2-3 cols. */

@media (min-width: 1024px) {
  /* Ancho del dropdown: si tiene muchos items, expandir */
  html body .menu-item-has-children > .sub-menu,
  html body .elementor-nav-menu .menu-item-has-children > .sub-menu {
    min-width: 280px;
    max-width: 720px;
  }

  /* Para dropdowns con 8+ hijos: multi-columna automática
     usamos :has() (soportado en todos los browsers modernos 2024+) */
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(8)) > .sub-menu,
  html body .elementor-nav-menu .menu-item-has-children:has(> .sub-menu > li:nth-child(8)) > .sub-menu {
    column-count: 2;
    column-gap: 12px;
    column-rule: 1px solid var(--tm-line);
    min-width: 480px;
    max-width: 560px;
    padding: 12px 14px !important;
  }

  /* Para dropdowns con 13+ hijos: 3 columnas */
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(13)) > .sub-menu,
  html body .elementor-nav-menu .menu-item-has-children:has(> .sub-menu > li:nth-child(13)) > .sub-menu {
    column-count: 3;
    column-gap: 14px;
    min-width: 720px;
    max-width: 820px;
  }

  /* Items dentro de columnas: prevenir que se corten en mitad */
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(8)) > .sub-menu > li,
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(13)) > .sub-menu > li {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Items en columnas: padding más compacto para que quepan más por columna */
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(8)) > .sub-menu .menu-item a,
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(8)) > .sub-menu li a,
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(13)) > .sub-menu .menu-item a,
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(13)) > .sub-menu li a {
    padding: 8px 12px !important;
    font-size: 0.875rem !important;
  }

  /* En dropdowns largos, alinear el "Top antros CDMX" como destacado al inicio */
  html body .menu-item-has-children:has(> .sub-menu > li:nth-child(8)) > .sub-menu > li:first-child a {
    font-weight: 600 !important;
    color: var(--tm-gold) !important;
    border-bottom: 1px solid var(--tm-line);
    padding-bottom: 10px !important;
    margin-bottom: 4px;
  }
}

/* Fallback para browsers sin :has() (cubre <0.5% del tráfico):
   Mostrar dropdown normal aunque sea largo. */
@supports not (selector(:has(*))) {
  html body .menu-item-has-children > .sub-menu {
    max-height: 70vh;
    overflow-y: auto;
  }
}

/* Mobile: nunca multicolumna */
@media (max-width: 1023px) {
  html body .menu-item-has-children > .sub-menu,
  html body .elementor-nav-menu .menu-item-has-children > .sub-menu {
    column-count: 1 !important;
    min-width: auto !important;
    max-width: none !important;
  }
}

/* =========================================================
   v2.9.24 — Header sticky con efecto blur cuando hay scroll
   Mejora la sensación de calidad del sitio (similar Apple, Vogue, etc).
   ========================================================= */
header.site-header,
.ehf-header,
.elementor-location-header {
  transition: background .3s ease, backdrop-filter .3s ease, box-shadow .3s ease;
}

/* Cuando se hace scroll, JS añade .tm-scrolled (ver functions.php) */
header.site-header.tm-scrolled,
.ehf-header.tm-scrolled,
.elementor-location-header.tm-scrolled {
  background: rgba(10, 10, 10, 0.85) !important;
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.3);
}

/* =========================================================
   v2.9.25 — MEGA FOOTER SEO (5 columnas + brand + copyright)
   Renderizado por hello_elementor_trend_mega_footer() en functions.php.
   Visualmente se une al footer Elementor (newsletter + socials).
   ========================================================= */
.tm-mega-footer {
  background: #060606;
  color: var(--tm-ink);
  border-top: 1px solid var(--tm-line);
  padding: 56px 24px 32px;
  font-family: var(--tm-font-body);
  font-size: 14.5px;
  line-height: 1.6;
}
.tm-mega-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
}
.tm-mega-footer__cols {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 36px;
  margin-bottom: 40px;
}
.tm-mega-footer__col { min-width: 0; }
.tm-mega-footer__h {
  font-family: var(--tm-font-display);
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--tm-gold) !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: none !important;
}
.tm-mega-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tm-mega-footer__list li {
  margin: 0 0 8px;
  padding: 0;
}
.tm-mega-footer__list a {
  color: var(--tm-ink-dim) !important;
  text-decoration: none !important;
  font-size: 13.5px;
  transition: color .2s ease, padding-left .25s ease;
  display: inline-block;
}
.tm-mega-footer__list a:hover,
.tm-mega-footer__list a:focus {
  color: var(--tm-ink) !important;
  padding-left: 4px;
}
.tm-mega-footer__bottom {
  border-top: 1px solid var(--tm-line);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 12.5px;
  color: var(--tm-ink-mute);
}
.tm-mega-footer__brand strong {
  color: var(--tm-ink);
  font-family: var(--tm-font-display);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.tm-mega-footer__legal { white-space: nowrap; }

/* Tablet: 3 columnas */
@media (max-width: 1024px) {
  .tm-mega-footer__cols {
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
}
/* Mobile: 2 columnas */
@media (max-width: 640px) {
  .tm-mega-footer { padding: 36px 16px 24px; }
  .tm-mega-footer__cols {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 28px;
  }
  .tm-mega-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* =========================================================
   v2.9.27 — FAB FLOTANTE WhatsApp en TODAS las pages
   Killer feature de conversión que iguala/supera competencia.
   Aparece tras scrollY>320 (no estorba el hero).
   ========================================================= */
.tm-wa-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9998;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px 12px 14px;
  background: #25D366;
  color: #fff !important;
  text-decoration: none !important;
  font-family: var(--tm-font-body);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.01em;
  border-radius: 999px;
  box-shadow:
    0 8px 24px rgba(37, 211, 102, 0.35),
    0 2px 8px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.95);
  transition:
    opacity .35s cubic-bezier(.2, .8, .2, 1),
    visibility .35s,
    transform .35s cubic-bezier(.2, .8, .2, 1),
    box-shadow .25s ease,
    background .25s ease;
}
body.tm-show-wa-fab .tm-wa-fab {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.tm-wa-fab:hover,
.tm-wa-fab:focus-visible {
  background: #20BD5A;
  box-shadow:
    0 12px 32px rgba(37, 211, 102, 0.5),
    0 4px 12px rgba(0, 0, 0, 0.25);
  transform: translateY(-2px) scale(1.02);
  color: #fff !important;
}
.tm-wa-fab svg {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}
.tm-wa-fab__label {
  font-size: 14.5px;
  font-weight: 600;
}

/* Pulse sutil para llamar la atención al cargar */
.tm-wa-fab::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #25D366;
  opacity: 0.4;
  z-index: -1;
  animation: tm-wa-pulse 2.4s ease-out infinite;
}
@keyframes tm-wa-pulse {
  0%   { transform: scale(1);   opacity: 0.35; }
  70%  { transform: scale(1.4); opacity: 0; }
  100% { transform: scale(1.4); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .tm-wa-fab::before { animation: none; display: none; }
  .tm-wa-fab { transition: opacity .2s ease, visibility .2s; transform: none !important; }
}

/* Mobile: ocultar label, solo icono */
@media (max-width: 640px) {
  .tm-wa-fab {
    bottom: 16px;
    right: 16px;
    padding: 14px;
    gap: 0;
  }
  .tm-wa-fab__label { display: none; }
  .tm-wa-fab svg { width: 26px; height: 26px; flex: 0 0 26px; }
}

/* Cuando el usuario está en venue page con form de reservación abierto,
   ocultar FAB para evitar duplicidad de CTAs */
body.tm-form-focused .tm-wa-fab {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* =========================================================
   v2.9.28 — TREND SCORE BADGE (rating editorial propietario)
   Diferenciador clave vs marketplaces (Reservándonos/OpenTable):
   sistema de calificación curado por Trend, no copiado de Google.
   ========================================================= */
.tm-trend-score {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 10px 16px 10px 12px;
  margin: 16px 0 8px;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(37, 99, 235, 0.04));
  border: 1px solid rgba(37, 99, 235, 0.35);
  border-radius: 999px;
  font-family: var(--tm-font-body);
  position: relative;
  isolation: isolate;
}
.tm-trend-score::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 999px;
  padding: 1px;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.5), rgba(37, 99, 235, 0));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}
.tm-trend-score__num {
  display: flex;
  align-items: baseline;
  gap: 1px;
  padding: 6px 12px;
  background: var(--tm-gold);
  color: #fff;
  border-radius: 999px;
  font-family: var(--tm-font-display);
  font-weight: 700;
  line-height: 1;
}
.tm-trend-score__value { font-size: 20px; }
.tm-trend-score__max { font-size: 12px; opacity: 0.85; }
.tm-trend-score__meta { display: flex; flex-direction: column; gap: 2px; }
.tm-trend-score__brand {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tm-ink-dim);
  font-weight: 600;
}
.tm-trend-score__tier {
  font-family: var(--tm-font-display);
  font-size: 14px;
  font-weight: 600;
  color: var(--tm-ink);
  letter-spacing: 0.01em;
}

/* =========================================================
   v2.9.28 — INSIDER TIP block (conocimiento humano real)
   Otro diferenciador: marketplaces no comparten "tips internos".
   ========================================================= */
.tm-insider-tip {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 20px 0 8px;
  padding: 14px 18px;
  background: linear-gradient(135deg, rgba(220, 38, 38, 0.08), rgba(220, 38, 38, 0.02));
  border-left: 3px solid var(--tm-burgundy);
  border-radius: 0 10px 10px 0;
}
.tm-insider-tip__label {
  flex: 0 0 auto;
  font-family: var(--tm-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tm-burgundy);
  padding-top: 2px;
}
.tm-insider-tip__text {
  margin: 0 !important;
  color: var(--tm-ink) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  font-style: italic;
  font-family: var(--tm-font-body);
}

/* CTA ghost variant — estilo "secundario sutil" para "Pedir recomendación" */
.tm-btn.tm-btn-ghost {
  background: transparent !important;
  color: var(--tm-ink) !important;
  border: 1px solid var(--tm-line-2) !important;
}
.tm-btn.tm-btn-ghost:hover,
.tm-btn.tm-btn-ghost:focus-visible {
  background: rgba(37, 99, 235, 0.08) !important;
  border-color: var(--tm-gold) !important;
  color: var(--tm-gold) !important;
}

/* =========================================================
   v2.9.29 — A11Y: Skip-to-content link (WCAG 2.1 AA)
   ========================================================= */
.tm-skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 99999;
  padding: 12px 24px;
  background: var(--tm-gold);
  color: #fff !important;
  font-weight: 600;
  font-size: 14px;
  border-radius: 0 0 8px 8px;
  text-decoration: none !important;
  transition: top .2s ease;
}
.tm-skip-link:focus,
.tm-skip-link:focus-visible {
  top: 0;
  outline: 3px solid #fff;
  outline-offset: -3px;
}

/* v2.9.29 — Better focus rings sitewide (a11y + visual polish) */
*:focus-visible {
  outline: 2px solid var(--tm-gold) !important;
  outline-offset: 3px !important;
  border-radius: 4px;
}
.tm-btn:focus-visible,
.tm-wa-fab:focus-visible {
  outline-offset: 4px !important;
}

/* v2.9.29 — Reducir movimiento para usuarios sensibles (a11y) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* v2.9.29 — Image rendering optimization (LCP boost) */
img {
  max-width: 100%;
  height: auto;
  content-visibility: auto;
}

/* Ocultar visualmente pero accesible para screen readers */
.tm-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* v2.9.29 — Improved hover states sitewide (UI polish) */
.tm-venue-card:hover .tm-venue-card-image img {
  transform: scale(1.04);
}
.tm-venue-card-image {
  overflow: hidden;
}
.tm-venue-card-image img {
  transition: transform .45s cubic-bezier(.2, .8, .2, 1);
}

/* v2.9.29 — Loading skeleton for async content (UX) */
.tm-skeleton {
  background: linear-gradient(90deg, var(--tm-surface) 25%, var(--tm-surface-2) 50%, var(--tm-surface) 75%);
  background-size: 200% 100%;
  animation: tm-skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius: 8px;
  min-height: 16px;
}
@keyframes tm-skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* =========================================================
   v2.9.32 — STICKY SEARCH BAR (top de pillars/home/venue)
   ========================================================= */
.tm-sticky-search {
  background: rgba(10, 10, 10, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--tm-line);
  padding: 12px 24px;
  position: sticky;
  top: 0;
  z-index: 998;
}
.tm-sticky-search__form {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line-2);
  border-radius: 999px;
  padding: 4px 8px 4px 16px;
  transition: border-color .25s, box-shadow .25s;
}
.tm-sticky-search__form:focus-within {
  border-color: var(--tm-gold);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.tm-sticky-search__icon { color: var(--tm-ink-dim); flex: 0 0 auto; }
.tm-sticky-search__input {
  flex: 1;
  background: transparent !important;
  border: none !important;
  color: var(--tm-ink) !important;
  font-size: 14.5px !important;
  padding: 10px 4px !important;
  outline: none !important;
}
.tm-sticky-search__input::placeholder { color: var(--tm-ink-mute); }
.tm-sticky-search__btn {
  flex: 0 0 auto;
  background: var(--tm-gold);
  color: #fff !important;
  border: none !important;
  border-radius: 999px;
  padding: 8px 18px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s ease;
}
.tm-sticky-search__btn:hover { background: var(--tm-gold-700); }

/* En mobile, ocultar label del botón, solo icono */
@media (max-width: 640px) {
  .tm-sticky-search { padding: 10px 12px; }
  .tm-sticky-search__btn { padding: 8px 12px; font-size: 0; }
  .tm-sticky-search__btn::before { content: 'Ir'; font-size: 13px; }
}

/* =========================================================
   v2.9.32 — STICKY MOBILE CTA BOTTOM BAR
   Solo visible en mobile <768px. Aprovecha thumb-zone.
   ========================================================= */
.tm-mobile-cta-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9997;
  background: rgba(10, 10, 10, 0.95);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid var(--tm-line-2);
  padding: 10px 12px env(safe-area-inset-bottom, 10px);
  gap: 8px;
}
@media (max-width: 768px) {
  .tm-mobile-cta-bar { display: flex; }
  /* v2.9.56: antes aquí se ocultaba .tm-wa-fab por redundancia con la barra,
     pero la regla Maison (más abajo) oculta la barra → en mobile no quedaba
     ningún botón de WhatsApp del tema. Si se reactiva la barra, volver a
     ocultar el FAB aquí. */
}
.tm-mobile-cta-bar__btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 8px;
  border-radius: 12px;
  text-decoration: none !important;
  font-family: var(--tm-font-body);
  font-weight: 600;
  font-size: 13.5px;
  letter-spacing: 0.01em;
  transition: background .2s ease, transform .15s ease;
}
.tm-mobile-cta-bar__btn:active { transform: scale(0.97); }
.tm-mobile-cta-bar__btn--wa {
  background: #25D366;
  color: #fff !important;
}
.tm-mobile-cta-bar__btn--wa:hover { background: #20BD5A; }
.tm-mobile-cta-bar__btn--res {
  background: var(--tm-gold);
  color: #fff !important;
}
.tm-mobile-cta-bar__btn--res:hover { background: var(--tm-gold-700); }
.tm-mobile-cta-bar__btn svg { flex: 0 0 auto; }
.tm-mobile-cta-bar__btn span { white-space: nowrap; }

/* En mobile, agregar padding bottom al body para que CTA bar no tape contenido */
@media (max-width: 768px) {
  body { padding-bottom: 72px; }
}

/* =========================================================
   v2.9.32 — TRUST SIGNALS bar (años, venues, guías, respuesta)
   ========================================================= */
.tm-trust-signals {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 32px 0;
  padding: 24px;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06), rgba(220, 38, 38, 0.03));
  border: 1px solid var(--tm-line-2);
  border-radius: 16px;
  text-align: center;
}
.tm-trust-signals__item {
  padding: 8px 4px;
}
.tm-trust-signals__num {
  font-family: var(--tm-font-display);
  font-size: 32px;
  font-weight: 700;
  color: var(--tm-gold);
  line-height: 1;
  margin-bottom: 6px;
}
.tm-trust-signals__label {
  font-size: 13px;
  color: var(--tm-ink-dim);
  letter-spacing: 0.01em;
}
@media (max-width: 768px) {
  .tm-trust-signals {
    grid-template-columns: repeat(2, 1fr);
    padding: 20px 16px;
  }
  .tm-trust-signals__num { font-size: 26px; }
}

/* =========================================================
   v2.9.32 — COMPARADOR DE VENUES widget (tabla compacta)
   ========================================================= */
.tm-compare-widget {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 24px 0;
  border: 1px solid var(--tm-line-2);
  border-radius: 12px;
  overflow: hidden;
  background: var(--tm-surface);
}
.tm-compare-widget__header,
.tm-compare-widget__row {
  display: grid;
  grid-template-columns: 140px repeat(auto-fit, minmax(0, 1fr));
}
.tm-compare-widget__header {
  background: rgba(37, 99, 235, 0.08);
  border-bottom: 1px solid var(--tm-line-2);
}
.tm-compare-widget__row + .tm-compare-widget__row {
  border-top: 1px solid var(--tm-line);
}
.tm-compare-widget__cell {
  padding: 12px 14px;
  font-size: 13.5px;
  color: var(--tm-ink);
  border-right: 1px solid var(--tm-line);
  display: flex;
  align-items: center;
}
.tm-compare-widget__cell:last-child { border-right: none; }
.tm-compare-widget__cell--label {
  font-weight: 600;
  color: var(--tm-ink-dim);
  background: var(--tm-surface-2);
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.tm-compare-widget__cell--venue a {
  font-family: var(--tm-font-display);
  font-weight: 600;
  color: var(--tm-gold) !important;
  text-decoration: none !important;
  font-size: 15px;
}
.tm-compare-widget__cell--venue a:hover { text-decoration: underline !important; }

@media (max-width: 640px) {
  .tm-compare-widget__header,
  .tm-compare-widget__row {
    grid-template-columns: 100px 1fr 1fr;
  }
  .tm-compare-widget__cell { padding: 10px 8px; font-size: 12.5px; }
}

/* =========================================================
   v2.9.33 — CTA EVENTO PRIVADO en venue pages premium (Trend Score >=8.5)
   Conversión hacia revenue principal (eventos = 10-50x reservas indiv.).
   ========================================================= */
.tm-venue-event-cta {
  margin: 40px 0;
  padding: 32px 28px;
  background: linear-gradient(135deg, rgba(220, 38, 38, 0.10), rgba(37, 99, 235, 0.05));
  border: 1px solid rgba(220, 38, 38, 0.35);
  border-radius: 20px;
  position: relative;
  overflow: hidden;
}
.tm-venue-event-cta::before {
  content: '';
  position: absolute;
  top: -40%; right: -20%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(220, 38, 38, 0.18) 0%, transparent 70%);
  pointer-events: none;
}
.tm-venue-event-cta__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
  position: relative;
  z-index: 1;
}
.tm-venue-event-cta__eyebrow {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tm-burgundy);
  font-weight: 700;
  margin-bottom: 8px;
}
.tm-venue-event-cta__h {
  margin: 0 0 10px !important;
  font-family: var(--tm-font-display);
  font-size: 22px !important;
  color: var(--tm-ink) !important;
  line-height: 1.25 !important;
  border: none !important;
  padding: 0 !important;
}
.tm-venue-event-cta__p {
  margin: 0 !important;
  color: var(--tm-ink-dim) !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
}
.tm-venue-event-cta__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}
.tm-venue-event-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  border-radius: 999px;
  font-family: var(--tm-font-body);
  font-size: 14.5px;
  font-weight: 600;
  text-decoration: none !important;
  white-space: nowrap;
  transition: transform .15s ease, background .2s ease, box-shadow .2s ease;
}
.tm-venue-event-cta__btn:hover { transform: translateY(-2px); }
.tm-venue-event-cta__btn--primary {
  background: var(--tm-burgundy);
  color: #fff !important;
  box-shadow: 0 6px 20px rgba(220, 38, 38, 0.35);
}
.tm-venue-event-cta__btn--primary:hover {
  background: var(--tm-burgundy-400);
  box-shadow: 0 10px 28px rgba(220, 38, 38, 0.45);
}
.tm-venue-event-cta__btn--ghost {
  background: transparent;
  color: var(--tm-ink) !important;
  border: 1px solid var(--tm-line-2);
}
.tm-venue-event-cta__btn--ghost:hover {
  border-color: var(--tm-burgundy);
  color: var(--tm-burgundy) !important;
}
@media (max-width: 768px) {
  .tm-venue-event-cta { padding: 24px 20px; }
  .tm-venue-event-cta__inner { grid-template-columns: 1fr; }
  .tm-venue-event-cta__h { font-size: 19px !important; }
  .tm-venue-event-cta__actions { flex-direction: column; }
  .tm-venue-event-cta__btn { width: 100%; }
}

/* =========================================================
   v2.9.33 — NEWSLETTER WIDGET en bottom de pillars
   ========================================================= */
.tm-newsletter-widget {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: 980px;
  margin: 48px auto;
  padding: 24px 28px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line-2);
  border-radius: 16px;
}
.tm-newsletter-widget__icon {
  flex: 0 0 auto;
  color: var(--tm-gold);
  display: flex;
}
.tm-newsletter-widget__text { flex: 1; min-width: 0; }
.tm-newsletter-widget__h {
  margin: 0 0 6px !important;
  font-family: var(--tm-font-display);
  font-size: 18px !important;
  color: var(--tm-ink) !important;
  border: none !important;
  padding: 0 !important;
}
.tm-newsletter-widget__p {
  margin: 0 !important;
  color: var(--tm-ink-dim) !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}
.tm-newsletter-widget__btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border-radius: 999px;
  background: var(--tm-gold);
  color: #fff !important;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background .2s ease;
  white-space: nowrap;
}
.tm-newsletter-widget__btn:hover { background: var(--tm-gold-700); color: #fff !important; }
@media (max-width: 768px) {
  .tm-newsletter-widget {
    flex-direction: column;
    text-align: center;
    padding: 24px 20px;
    margin: 32px 12px;
  }
  .tm-newsletter-widget__btn { width: 100%; }
}

/* =========================================================
   v2.9.34 — STICKY PROMO BANNER (top de body)
   Activable via filter tm_promo_banner_text. Por default oculto.
   ========================================================= */
.tm-promo-banner {
  background: linear-gradient(90deg, var(--tm-burgundy), var(--tm-burgundy-400));
  color: #fff;
  padding: 10px 16px;
  font-family: var(--tm-font-body);
  font-size: 14px;
  font-weight: 500;
  position: relative;
  z-index: 1000;
}
.tm-promo-banner__inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.tm-promo-banner__text { color: #fff !important; }
.tm-promo-banner__btn {
  display: inline-block;
  padding: 6px 16px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  transition: background .2s ease;
  white-space: nowrap;
}
.tm-promo-banner__btn:hover {
  background: rgba(255, 255, 255, 0.25);
  color: #fff !important;
}
.tm-promo-banner__close {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 10px;
  opacity: 0.7;
  transition: opacity .2s ease;
}
.tm-promo-banner__close:hover { opacity: 1; }
@media (max-width: 640px) {
  .tm-promo-banner { padding: 10px 36px 10px 12px; font-size: 13px; }
  .tm-promo-banner__inner { gap: 8px; }
  .tm-promo-banner__btn { padding: 4px 12px; font-size: 12px; }
}

/* =========================================================
   v2.9.35 — SUBSCRIBE FORM shortcode [tm_subscribe_form]
   Form de email signup para Trend Insider newsletter.
   ========================================================= */
.tm-subscribe-form {
  max-width: 580px;
  margin: 32px auto;
  padding: 28px 24px;
  background: linear-gradient(135deg, var(--tm-surface), var(--tm-surface-2));
  border: 1px solid var(--tm-line-2);
  border-radius: 16px;
}
.tm-subscribe-form__head {
  text-align: center;
  margin-bottom: 20px;
}
.tm-subscribe-form__h {
  margin: 0 0 8px !important;
  font-family: var(--tm-font-display);
  font-size: 22px !important;
  color: var(--tm-gold) !important;
  border: none !important;
  padding: 0 !important;
  letter-spacing: 0.01em;
}
.tm-subscribe-form__p {
  margin: 0 !important;
  color: var(--tm-ink-dim) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}
.tm-subscribe-form__form {
  display: grid;
  gap: 10px;
}
@media (min-width: 540px) {
  .tm-subscribe-form__form {
    grid-template-columns: 1fr 1fr auto;
  }
  .tm-subscribe-form__form input[type="text"],
  .tm-subscribe-form__form input[type="email"] {
    grid-column: span 1;
  }
}
.tm-subscribe-form__input {
  width: 100%;
  padding: 12px 14px !important;
  background: var(--tm-bg) !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 10px !important;
  color: var(--tm-ink) !important;
  font-size: 14px !important;
  font-family: var(--tm-font-body) !important;
  transition: border-color .2s, box-shadow .2s;
}
.tm-subscribe-form__input::placeholder { color: var(--tm-ink-mute); }
.tm-subscribe-form__input:focus {
  outline: none !important;
  border-color: var(--tm-gold) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18) !important;
}
.tm-subscribe-form__btn {
  padding: 12px 24px !important;
  background: var(--tm-gold) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  font-family: var(--tm-font-body) !important;
  cursor: pointer;
  transition: background .2s ease, transform .15s ease;
  white-space: nowrap;
}
.tm-subscribe-form__btn:hover { background: var(--tm-gold-700) !important; }
.tm-subscribe-form__btn:disabled { opacity: 0.6; cursor: progress; }
.tm-subscribe-form__msg {
  margin-top: 14px;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  min-height: 1.5em;
}

/* =========================================================
   v2.9.36 — FAQ ACCORDION (auto-build via filter the_content)
   <details>/<summary> nativo CSS-only, 0 JavaScript, mantiene SEO.
   ========================================================= */
.tm-faq-accordion {
  margin: 24px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tm-faq-item {
  background: var(--tm-surface);
  border: 1px solid var(--tm-line-2);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color .25s ease;
}
.tm-faq-item[open] {
  border-color: var(--tm-gold);
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.18);
}
.tm-faq-q {
  padding: 18px 50px 18px 20px;
  font-family: var(--tm-font-display);
  font-size: 16.5px;
  font-weight: 600;
  color: var(--tm-ink) !important;
  cursor: pointer;
  list-style: none;
  position: relative;
  transition: background .2s ease, color .2s ease;
}
.tm-faq-q::-webkit-details-marker { display: none; }
.tm-faq-q::after {
  content: '+';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  font-weight: 400;
  color: var(--tm-gold);
  transition: transform .25s ease;
  line-height: 1;
}
.tm-faq-item[open] .tm-faq-q::after {
  content: '−';
  transform: translateY(-50%) rotate(180deg);
}
.tm-faq-q:hover {
  background: rgba(37, 99, 235, 0.06);
  color: var(--tm-gold) !important;
}
.tm-faq-item[open] .tm-faq-q { color: var(--tm-gold) !important; }
.tm-faq-a {
  padding: 0 20px 20px;
  color: var(--tm-ink-dim) !important;
  font-size: 14.5px;
  line-height: 1.6;
  border-top: 1px solid var(--tm-line);
  padding-top: 16px;
}
.tm-faq-a a {
  color: var(--tm-gold) !important;
  text-decoration: underline !important;
}

/* Mobile adjustments */
@media (max-width: 640px) {
  .tm-faq-q { padding: 14px 44px 14px 16px; font-size: 15px; }
  .tm-faq-a { padding: 14px 16px 16px; font-size: 14px; }
}

/* =========================================================
   v2.9.37 — RELATED VENUES smart sidebar [tm_related_venues]
   ========================================================= */
.tm-related-venues {
  margin: 40px 0;
  padding: 24px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line-2);
  border-radius: 16px;
}
.tm-related-venues__h {
  margin: 0 0 20px !important;
  font-family: var(--tm-font-display);
  font-size: 20px !important;
  color: var(--tm-ink) !important;
  border: none !important;
  padding: 0 !important;
}
.tm-related-venues__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}
.tm-related-venues__card {
  display: flex;
  flex-direction: column;
  background: var(--tm-bg);
  border: 1px solid var(--tm-line);
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  transition: transform .25s cubic-bezier(.2,.8,.2,1), border-color .2s ease;
}
.tm-related-venues__card:hover {
  transform: translateY(-3px);
  border-color: var(--tm-gold);
}
.tm-related-venues__img {
  width: 100%;
  aspect-ratio: 16/10;
  background-size: cover;
  background-position: center;
  background-color: var(--tm-surface-2);
}
.tm-related-venues__body {
  padding: 12px 14px 14px;
}
.tm-related-venues__name {
  font-family: var(--tm-font-display);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.25;
  margin-bottom: 4px;
  color: var(--tm-ink);
}
.tm-related-venues__score {
  font-size: 11.5px;
  color: var(--tm-gold);
  letter-spacing: 0.02em;
  font-weight: 500;
}
@media (max-width: 640px) {
  .tm-related-venues { padding: 18px 16px; }
  .tm-related-venues__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .tm-related-venues__name { font-size: 13.5px; }
}

/* =========================================================
   v2.9.37 — VIDEO WRAPPER (16:9 lazy-loaded YouTube embeds)
   ========================================================= */
.tm-video-wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 12px;
  margin: 24px 0;
  background: var(--tm-surface-2);
}
.tm-video-wrapper iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* =========================================================
   v2.9.38 — VISUAL SHORTCODES SUITE
   6 shortcodes: [tm_hero] [tm_ranking_card] [tm_chips_grid]
   [tm_decisiones] [tm_cta_evento] [tm_cta_whatsapp]
   ========================================================= */

/* HERO */
.tm-sc-hero {
  padding: 32px 28px;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(220, 38, 38, 0.06));
  border: 1px solid rgba(37, 99, 235, 0.30);
  border-radius: 20px;
  margin: 24px 0;
  text-align: center;
}
.tm-sc-hero__eyebrow {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tm-burgundy);
  font-weight: 700;
  margin-bottom: 12px;
}
.tm-sc-hero__h1 {
  margin: 0 0 12px !important;
  font-family: var(--tm-font-display) !important;
  font-size: 36px !important;
  line-height: 1.15 !important;
  color: var(--tm-ink) !important;
  border: none !important;
  padding: 0 !important;
}
.tm-sc-hero__intro {
  margin: 0 !important;
  color: var(--tm-ink-dim) !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  max-width: 680px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.tm-sc-hero__stats {
  display: grid;
  gap: 8px;
  margin-top: 24px;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}
.tm-sc-hero__stat { text-align: center; padding: 16px 8px; }
.tm-sc-hero__num {
  font-family: var(--tm-font-display);
  font-size: 32px;
  font-weight: 700;
  color: var(--tm-gold);
  line-height: 1;
}
.tm-sc-hero__lbl {
  font-size: 12px;
  color: var(--tm-ink-dim);
  margin-top: 6px;
  letter-spacing: 0.02em;
}
@media (max-width: 640px) {
  .tm-sc-hero { padding: 24px 18px; }
  .tm-sc-hero__h1 { font-size: 26px !important; }
  .tm-sc-hero__num { font-size: 24px; }
}

/* RANKING CARD */
.tm-sc-card {
  display: flex;
  gap: 16px;
  padding: 20px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line-2);
  border-radius: 14px;
  margin: 12px 0;
  align-items: flex-start;
  transition: border-color .2s, transform .2s;
}
.tm-sc-card:hover {
  border-color: var(--tm-gold);
  transform: translateY(-2px);
}
.tm-sc-card__rank-col {
  flex-shrink: 0;
  width: 72px;
  text-align: center;
}
.tm-sc-card__rank {
  font-family: var(--tm-font-display);
  font-size: 28px;
  font-weight: 700;
  color: var(--tm-ink-dim);
  line-height: 1;
}
.tm-sc-card__score {
  margin-top: 8px;
  display: inline-block;
  padding: 6px 10px;
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  font-family: var(--tm-font-display);
}
.tm-sc-card__tier--iconic { background: var(--tm-gold-700); }
.tm-sc-card__tier--top { background: var(--tm-gold); }
.tm-sc-card__tier--selected { background: var(--tm-ink-mute); }
.tm-sc-card__tier-lbl {
  margin-top: 6px;
  font-size: 10px;
  color: var(--tm-ink-dim);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.tm-sc-card__body { flex: 1; min-width: 0; }
.tm-sc-card__name {
  margin: 0 0 6px !important;
  font-family: var(--tm-font-display) !important;
  font-size: 19px !important;
  border: none !important;
  padding: 0 !important;
}
.tm-sc-card__name a {
  color: var(--tm-ink) !important;
  text-decoration: none !important;
}
.tm-sc-card__area {
  font-size: 12px;
  color: var(--tm-ink-dim);
  margin-bottom: 8px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.tm-sc-card__vibe {
  margin: 0 !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  color: var(--tm-ink-dim) !important;
}
.tm-sc-card__link {
  display: inline-block;
  margin-top: 10px;
  font-size: 13px;
  color: var(--tm-gold-400);
  text-decoration: none !important;
  font-weight: 600;
}

/* CHIPS GRID */
.tm-sc-chips { margin: 16px 0 24px; }
.tm-sc-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: rgba(37, 99, 235, 0.10);
  border: 1px solid rgba(37, 99, 235, 0.35);
  border-radius: 999px;
  text-decoration: none !important;
  color: var(--tm-ink) !important;
  font-size: 13.5px;
  font-weight: 500;
  margin: 4px 4px 4px 0;
  transition: background .2s ease;
}
.tm-sc-chip:hover {
  background: rgba(37, 99, 235, 0.20);
  color: var(--tm-gold) !important;
}

/* DECISIONES GRID */
.tm-sc-decisiones {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
  margin: 16px 0;
}
.tm-sc-decision {
  display: block;
  padding: 16px 18px;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), transparent);
  border: 1px solid var(--tm-line-2);
  border-radius: 10px;
  color: var(--tm-ink) !important;
  text-decoration: none !important;
  font-size: 14.5px;
  font-weight: 500;
  transition: border-color .2s ease;
}
.tm-sc-decision:hover { border-color: var(--tm-gold); }

/* CTA EVENTO (rojo) */
.tm-sc-cta-evento {
  margin: 40px 0;
  padding: 36px 28px;
  background: linear-gradient(135deg, var(--tm-burgundy) 0%, var(--tm-burgundy-400) 100%);
  border-radius: 20px;
  text-align: center;
  color: #fff;
}
.tm-sc-cta-evento__eyebrow {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  opacity: 0.9;
  margin-bottom: 10px;
}
.tm-sc-cta-evento__h {
  margin: 0 0 12px !important;
  font-family: var(--tm-font-display) !important;
  font-size: 30px !important;
  color: #fff !important;
  border: none !important;
  padding: 0 !important;
}
.tm-sc-cta-evento__p {
  margin: 0 0 20px !important;
  font-size: 16px !important;
  opacity: 0.95;
  max-width: 560px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.tm-sc-cta-evento__btn {
  display: inline-block;
  padding: 16px 36px;
  background: #fff;
  color: var(--tm-burgundy) !important;
  border-radius: 999px;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 15px;
  transition: transform .2s ease;
}
.tm-sc-cta-evento__btn:hover { transform: translateY(-2px); }

/* CTA WhatsApp (verde) */
.tm-sc-cta-wa {
  margin: 32px 0 24px;
  padding: 32px 24px;
  background: linear-gradient(135deg, #25D366 0%, #20BD5A 100%);
  border-radius: 20px;
  text-align: center;
  color: #fff;
}
.tm-sc-cta-wa__h {
  margin: 0 0 10px !important;
  font-family: var(--tm-font-display) !important;
  font-size: 24px !important;
  color: #fff !important;
  border: none !important;
  padding: 0 !important;
}
.tm-sc-cta-wa__p {
  margin: 0 0 18px !important;
  font-size: 15px !important;
  opacity: 0.95;
}
.tm-sc-cta-wa__btn {
  display: inline-block;
  padding: 16px 36px;
  background: #fff;
  color: #25D366 !important;
  border-radius: 999px;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 16px;
  transition: transform .2s ease;
}
.tm-sc-cta-wa__btn:hover { transform: translateY(-2px); }

/* Responsive shared */
@media (max-width: 640px) {
  .tm-sc-cta-evento { padding: 28px 20px; }
  .tm-sc-cta-evento__h { font-size: 22px !important; }
  .tm-sc-cta-wa { padding: 24px 18px; }
}

/* =========================================================
   IMPORTANT: este child theme NO modifica funcionalidad,
   solo estilos visuales + 3 templates (front-page, venue, pillar).
   Para revertir: wp-admin -> Apariencia -> Temas -> activar
   "Hello Elementor" original.
   ========================================================= */

/* =========================================================================
   v2.9.40 — MAISON · LUXURY OVERRIDE LAYER
   ---------------------------------------------------------------------------
   Auditoria de marca lujo: las marcas como Armani, Loro Piana, Aman,
   The Row, Hermes operan en un registro distinto. NO usan emojis. NO
   gritan "premium". NO tienen CTAs bouncy con gradientes. NO score 9.7/10
   gamificado tipo Yelp. El lujo se demuestra con restraint: tipografia
   ligera, espacios negativos, paleta neutra calida, lineas hairline,
   tracking generoso en CAPS, sentence case en CTAs.

   Esta capa SOBREESCRIBE las variables --tm-* sin tocar el resto del CSS
   ni los shortcodes. Reversible: comentar este bloque y vuelve al estilo
   anterior. Perpetuo: cada venue/pillar/page hereda el estandar maison.
   ========================================================================= */

:root {
  /* --- PALETA MAISON --- */
  --tm-bg:        #0f0e0c;   /* carbon profundo, no negro absoluto */
  --tm-surface:   #15140f;   /* surface con tinte calido */
  --tm-surface-2: #1c1a14;

  /* v2.9.42 — Diego: el azul royal nunca quito lujo. Restaurado.
     El azul royal #2563EB SI es lujo cuando se acompana de tipografia
     serif weight light + tracking generoso + hairlines. Hermes Bleu,
     Cartier Bleu, Tiffany Bleu son colores de marca lujo absoluta.
     El "oro mate" experimento de v2.9.40 queda comentado aqui por si
     acaso queremos volver a probarlo. */
  --tm-gold:        #2563EB;  /* royal blue — color de marca Trend */
  --tm-gold-100:    #DBEAFE;
  --tm-gold-400:    #3B82F6;
  --tm-gold-700:    #1D4ED8;

  /* Burgundy se silencia a un terracota mate (la "alerta" en lujo es discreta) */
  --tm-burgundy:    #8a4a3a;
  --tm-burgundy-400:#a55c4b;

  /* Texto: marfil calido, no blanco frio */
  --tm-ink:      #f5f1e8;
  --tm-ink-dim:  #b8b1a1;
  --tm-ink-mute: #8a8472;

  /* Lineas: hairline calida */
  --tm-line:    #2a2620;
  --tm-line-2:  #3d372d;

  /* Radius: lujo es flat o casi-flat */
  --tm-radius-sm: 0;
  --tm-radius:    2px;
  --tm-radius-lg: 4px;

  /* Sombras: sin sombras dramaticas. Solo elevation hairline. */
  --tm-shadow-card:       0 0 0 1px var(--tm-line) inset;
  --tm-shadow-card-hover: 0 0 0 1px var(--tm-gold) inset;
}

/* --- TIPOGRAFIA MAISON --- */
/* Headings: weight 400-500 (light/regular), tracking generoso */
body h1, body h2, body h3, body h4, body h5, body h6,
body .entry-title,
body .elementor-heading-title {
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
}
body h1, body .entry-title { font-weight: 500 !important; line-height: 1.05 !important; }
body h2 { font-weight: 400 !important; line-height: 1.2 !important; }
body h6 { font-weight: 500 !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; font-size: 11px !important; }

/* Body paragraph: serif optional, mas serenidad */
body .entry-content p { line-height: 1.85 !important; font-size: 1.0625rem; color: var(--tm-ink) !important; }

/* Links: sin underline dashed, solo hairline en hover */
body .entry-content a { border-bottom: 1px solid rgba(176, 141, 87, 0.3) !important; transition: border-color .4s ease; }
body .entry-content a:hover { border-bottom-color: var(--tm-gold) !important; }

/* Selection */
body ::selection { background: var(--tm-gold) !important; color: var(--tm-bg) !important; }

/* --- HR maison: hairline simple, sin gradient circo --- */
body hr {
  background: var(--tm-line-2) !important;
  height: 1px !important;
}

/* --- BUTTONS / CTAs MAISON --- */
/* Restraint: sin gradients, sin scale, sin uppercase agresivo */
body .tm-sc-cta-evento,
body .tm-sc-cta-wa,
body .tm-cta-secondary {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body .tm-sc-cta-evento__btn,
body .tm-sc-cta-wa__btn {
  background: transparent !important;
  color: var(--tm-gold) !important;
  border: 1px solid var(--tm-gold) !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  font-family: var(--tm-font-display) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  transition: background .35s ease, color .35s ease !important;
}
body .tm-sc-cta-evento__btn:hover,
body .tm-sc-cta-wa__btn:hover {
  background: var(--tm-gold) !important;
  color: var(--tm-bg) !important;
  transform: none !important;
}

body .tm-sc-cta-evento__h,
body .tm-sc-cta-wa__h {
  font-family: var(--tm-font-display) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}

/* --- HERO MAISON --- */
body .tm-sc-hero {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--tm-line) !important;
  border-bottom: 1px solid var(--tm-line) !important;
  border-radius: 0 !important;
  padding: 80px 40px !important;
}
body .tm-sc-hero__eyebrow {
  font-family: var(--tm-font-body) !important;
  font-size: 11px !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--tm-gold) !important;
  font-weight: 500 !important;
  margin-bottom: 32px !important;
}
body .tm-sc-hero h1,
body .tm-sc-hero__h {
  font-family: var(--tm-font-display) !important;
  font-weight: 400 !important;
  font-size: clamp(2.25rem, 5vw, 4rem) !important;
  letter-spacing: -0.015em !important;
  line-height: 1.05 !important;
  margin-bottom: 28px !important;
}
body .tm-sc-hero__intro {
  font-family: var(--tm-font-body) !important;
  font-size: 1.0625rem !important;
  line-height: 1.85 !important;
  color: var(--tm-ink-dim) !important;
  max-width: 620px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Stats grid del hero: en luxury queda discreto, una linea con pipes */
body .tm-sc-hero__stats {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  margin-top: 56px !important;
  padding-top: 40px !important;
  border-top: 1px solid var(--tm-line) !important;
}
body .tm-sc-hero__stat {
  padding: 0 32px !important;
  border-right: 1px solid var(--tm-line) !important;
  text-align: center !important;
}
body .tm-sc-hero__stat:last-child { border-right: 0 !important; }
body .tm-sc-hero__stat-num {
  font-family: var(--tm-font-display) !important;
  font-weight: 400 !important;
  font-size: 1.75rem !important;
  color: var(--tm-ink) !important;
  letter-spacing: -0.01em !important;
  line-height: 1 !important;
  margin-bottom: 8px !important;
}
body .tm-sc-hero__stat-label {
  font-size: 10px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--tm-ink-mute) !important;
}

/* --- RANKING CARDS MAISON --- */
body .tm-sc-card {
  background: var(--tm-surface) !important;
  border: 1px solid var(--tm-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 36px 32px !important;
  transition: border-color .5s ease !important;
}
body .tm-sc-card:hover {
  border-color: var(--tm-gold) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* v2.9.43 — Card con imagen del venue (auto-derive desde featured) */
/* v2.9.55 — rank-col 100px → 130px para que rank "#X" font-size 3rem NO se recorte */
body .tm-sc-card--has-image {
  display: grid !important;
  grid-template-columns: 280px 130px 1fr !important;
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  align-items: stretch !important;
}
body .tm-sc-card--has-image .tm-sc-card__rank {
  font-size: 2.5rem !important; /* reduce de 3rem para que quepa */
  text-align: center !important;
  width: 100% !important;
}
body .tm-sc-card--has-image .tm-sc-card__rank-col {
  overflow: hidden !important;
}
body .tm-sc-card--has-image .tm-sc-card__image-link {
  display: block;
  text-decoration: none;
  border-bottom: 0 !important;
}
body .tm-sc-card--has-image .tm-sc-card__image {
  width: 100%;
  height: 100%;
  min-height: 220px;
  background-size: cover;
  background-position: center;
  background-color: var(--tm-surface-2);
  border-right: 1px solid var(--tm-line);
  transition: transform .9s cubic-bezier(.2,.6,.2,1), filter .6s ease;
}

/* v2.9.44 — Placeholder editorial: fondo con gradient + inicial serif */
body .tm-sc-card__image--placeholder {
  background-image:
    radial-gradient(circle at 30% 30%, rgba(37,99,235,0.10), transparent 55%),
    radial-gradient(circle at 70% 70%, rgba(176,141,87,0.08), transparent 60%),
    linear-gradient(135deg, var(--tm-surface) 0%, var(--tm-surface-2) 100%) !important;
  background-size: cover !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative;
  overflow: hidden;
}
body .tm-sc-card__image--placeholder::before {
  /* Hairline elegante en esquina como sello editorial */
  content: "";
  position: absolute;
  top: 16px;
  left: 16px;
  right: 16px;
  bottom: 16px;
  border: 1px solid rgba(245,241,232,0.08);
  pointer-events: none;
}
body .tm-sc-card__placeholder-letter {
  font-family: var(--tm-font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(80px, 12vw, 140px);
  line-height: 1;
  color: var(--tm-gold);
  opacity: 0.85;
  letter-spacing: -0.04em;
  text-shadow: 0 2px 30px rgba(0,0,0,0.4);
  user-select: none;
  -webkit-user-select: none;
}
body .tm-sc-card--has-image:hover .tm-sc-card__image--placeholder {
  transform: none;
  filter: none;
}
body .tm-sc-card--has-image:hover .tm-sc-card__placeholder-letter {
  transform: scale(1.05);
  transition: transform .9s cubic-bezier(.2,.6,.2,1);
}
body .tm-sc-card--has-image:hover .tm-sc-card__image {
  transform: scale(1.04);
  filter: brightness(1.05);
}
body .tm-sc-card--has-image .tm-sc-card__rank-col {
  padding: 28px 18px !important;
  border-right: 1px solid var(--tm-line);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
body .tm-sc-card--has-image .tm-sc-card__body {
  padding: 28px 32px !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 720px) {
  body .tm-sc-card--has-image {
    grid-template-columns: 1fr !important;
    grid-template-rows: 200px auto auto !important;
  }
  body .tm-sc-card--has-image .tm-sc-card__image {
    min-height: 200px;
    border-right: 0;
    border-bottom: 1px solid var(--tm-line);
  }
  body .tm-sc-card--has-image .tm-sc-card__rank-col {
    flex-direction: row;
    gap: 12px;
    border-right: 0;
    border-bottom: 1px solid var(--tm-line);
    padding: 16px 24px !important;
  }
}

/* v2.9.43 — Hero con imagen background */
body .tm-sc-hero--image {
  border-top: 0 !important;
  border-bottom: 0 !important;
  padding: 120px 40px !important;
  position: relative;
  text-align: center;
}
body .tm-sc-hero--image .tm-sc-hero__h1,
body .tm-sc-hero--image .tm-sc-hero__intro {
  color: var(--tm-ink) !important;
  text-shadow: 0 1px 24px rgba(0,0,0,.4);
}
body .tm-sc-hero--image .tm-sc-hero__stats {
  border-top-color: rgba(245,241,232,0.15) !important;
}
body .tm-sc-hero--image .tm-sc-hero__stat {
  border-right-color: rgba(245,241,232,0.15) !important;
}
body .tm-sc-card__rank {
  font-family: var(--tm-font-display) !important;
  font-weight: 300 !important;
  font-size: 3rem !important;
  color: var(--tm-gold) !important;
  letter-spacing: -0.02em !important;
}
body .tm-sc-card__name {
  font-family: var(--tm-font-display) !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
}
body .tm-sc-card__score,
body .tm-sc-card__tier {
  font-family: var(--tm-font-body) !important;
  font-size: 10px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  background: transparent !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 0 !important;
  padding: 6px 12px !important;
  color: var(--tm-ink-dim) !important;
}
body .tm-sc-card__area,
body .tm-sc-card__vibe { color: var(--tm-ink-dim) !important; }
body .tm-sc-card__link {
  font-family: var(--tm-font-display) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  border-bottom: 1px solid var(--tm-gold) !important;
  padding-bottom: 4px !important;
  display: inline-block !important;
}

/* --- CHIPS MAISON --- */
/* Chips son la tentacion principal del emoji. Strip cualquier */
/* glifo emoji visible y deja solo el label. */
body .tm-sc-chip,
body .tm-chip {
  background: transparent !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 0 !important;
  padding: 12px 20px !important;
  font-family: var(--tm-font-body) !important;
  font-size: 12px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--tm-ink-dim) !important;
  font-weight: 500 !important;
  transition: border-color .35s ease, color .35s ease !important;
}
body .tm-sc-chip:hover,
body .tm-chip:hover {
  border-color: var(--tm-gold) !important;
  color: var(--tm-gold) !important;
  transform: none !important;
}
/* Ocultar el span emoji dentro del chip (el shortcode lo agrega como
   <span class="tm-sc-chip__icon">). Si Diego decide reactivar, basta
   cambiar display:none por inline-block. */
body .tm-sc-chip__icon,
body .tm-chip__emoji,
body .tm-emoji {
  display: none !important;
}

/* --- DECISIONES MAISON --- */
body .tm-sc-decisiones {
  border: 1px solid var(--tm-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}
body .tm-sc-decisiones__item {
  border-bottom: 1px solid var(--tm-line) !important;
  padding: 24px 28px !important;
  background: transparent !important;
  transition: background .4s ease !important;
}
body .tm-sc-decisiones__item:last-child { border-bottom: 0 !important; }
body .tm-sc-decisiones__item:hover {
  background: var(--tm-surface) !important;
  transform: none !important;
}
body .tm-sc-decisiones__item a {
  font-family: var(--tm-font-display) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  color: var(--tm-ink) !important;
  border-bottom: 0 !important;
}

/* --- TRUST SIGNALS / BADGES MAISON --- */
/* Quitar emojis si los hay */
body .tm-trust-signals .tm-emoji,
body .tm-trust-signal__icon img[src*="emoji"] { display: none !important; }

/* --- WHATSAPP FAB --- */
/* v2.9.43 — REVERTIDO el override "Concierge" maison: Diego confirmo que */
/* el verde estandar es funcional + vende (es leads). El lujo va en otros */
/* lados (paleta, tipografia, hairlines). Mantenemos el FAB original tal */
/* como lo trae el theme — sin overrides agresivos. */

/* --- MEGA MENU MAISON --- */
body .tm-mega-menu a,
body .mega-menu a,
body nav a {
  letter-spacing: 0.02em !important;
}
body .tm-mega-menu h4,
body .mega-menu h4 {
  font-family: var(--tm-font-body) !important;
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--tm-gold) !important;
}

/* --- STICKY SEARCH BAR MAISON --- */
body .tm-sticky-search,
body .tm-search-sticky {
  background: var(--tm-bg) !important;
  border-bottom: 1px solid var(--tm-line) !important;
  box-shadow: none !important;
}
body .tm-sticky-search input {
  background: transparent !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 0 !important;
  font-family: var(--tm-font-body) !important;
  letter-spacing: 0.02em !important;
}

/* --- MOBILE CTA BAR MAISON --- */
/* En lujo no hay barra flotante en mobile gritando "Reservar". */
/* La ocultamos: si Diego quiere mantenerla, comentar. */
body .tm-mobile-cta-bar { display: none !important; }

/* --- TABLAS MAISON --- */
body table {
  border: 1px solid var(--tm-line) !important;
  border-collapse: collapse !important;
}
body table th, body table td {
  border-bottom: 1px solid var(--tm-line) !important;
  padding: 16px 20px !important;
}
body table th {
  font-family: var(--tm-font-body) !important;
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--tm-gold) !important;
  background: var(--tm-surface) !important;
}

/* --- BLOCKQUOTE MAISON --- */
body blockquote {
  border-left: 1px solid var(--tm-gold) !important;
  background: transparent !important;
  padding: 24px 32px !important;
  font-family: var(--tm-font-display) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: 1.25rem !important;
  line-height: 1.5 !important;
  color: var(--tm-ink) !important;
  margin: 32px 0 !important;
}
body blockquote cite {
  display: block !important;
  margin-top: 16px !important;
  font-family: var(--tm-font-body) !important;
  font-style: normal !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--tm-ink-mute) !important;
}

/* --- FAQs ACCORDION MAISON --- */
body .tm-faq-accordion details,
body details.tm-faq {
  border-bottom: 1px solid var(--tm-line) !important;
  background: transparent !important;
  padding: 24px 0 !important;
}
body .tm-faq-accordion summary,
body details.tm-faq summary {
  font-family: var(--tm-font-display) !important;
  font-weight: 400 !important;
  font-size: 1.125rem !important;
  letter-spacing: -0.005em !important;
  cursor: pointer !important;
  list-style: none !important;
  padding: 0 !important;
  color: var(--tm-ink) !important;
}
body .tm-faq-accordion summary::-webkit-details-marker,
body details.tm-faq summary::-webkit-details-marker { display: none !important; }
body .tm-faq-accordion summary::after,
body details.tm-faq summary::after {
  content: "+";
  float: right;
  color: var(--tm-gold);
  font-family: var(--tm-font-display);
  font-weight: 300;
  font-size: 1.5rem;
  line-height: 1;
}
body .tm-faq-accordion details[open] summary::after,
body details.tm-faq[open] summary::after { content: "−"; }

/* --- STRIPS DE EMOJI EN CONTENIDO --- */
/* Si un autor (o un agente) deja emojis sueltos en h2/h3/p, los muteamos
   visualmente — el font fallback sin emoji + opacidad 0 los hace invisibles. */
.tm-strip-emojis h1,
.tm-strip-emojis h2,
.tm-strip-emojis h3 {
  font-family: var(--tm-font-display), 'Times New Roman', serif !important;
}

/* --- SCHEMA: footer maison --- */
body .site-footer,
body footer,
body .tm-mega-footer {
  background: var(--tm-bg) !important;
  border-top: 1px solid var(--tm-line) !important;
  color: var(--tm-ink-mute) !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
}
body footer h4,
body .tm-mega-footer h4 {
  font-family: var(--tm-font-body) !important;
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--tm-gold) !important;
  font-weight: 500 !important;
}

/* --- COMPARE WIDGET MAISON --- */
body .tm-compare-widget {
  border: 1px solid var(--tm-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

/* --- VIDEO WRAPPER MAISON --- */
body .tm-video-wrapper {
  border: 1px solid var(--tm-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* --- TEMPORADA / EYEBROW MAISON --- */
.tm-maison-eyebrow,
.tm-temporada {
  font-family: var(--tm-font-body);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--tm-gold);
  font-weight: 500;
}

/* =========================================================================
   Fin override Maison v2.9.40
   ========================================================================= */

/* =========================================================================
   v2.9.48 — FIXES VISUALES (Diego validacion 2026-05-11)
   ---------------------------------------------------------------------------
   #3 FAQ accordion: mejor visual + centering + flex alignment
   #5 tm_cta_whatsapp __p: color negro para contraste sobre verde
   ========================================================================= */

/* FIX #5 — Subtitle del CTA WhatsApp: NEGRO para contraste sobre verde */
body .tm-sc-cta-wa { color: #fff !important; }
body .tm-sc-cta-wa__p {
  color: #0f0e0c !important; /* negro carbon — Diego: "deberia ser negro" */
  opacity: 1 !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  margin: 0 0 22px !important;
  text-shadow: 0 1px 2px rgba(255,255,255,0.15);
}
body .tm-sc-cta-wa__h {
  color: #fff !important;
  font-weight: 500 !important;
  letter-spacing: 0.005em !important;
}
body .tm-sc-cta-wa__btn {
  background: #0f0e0c !important; /* boton negro maison contraste premium */
  color: #fff !important;
  border: 1px solid #0f0e0c !important;
  border-radius: 999px !important;
  padding: 16px 36px !important;
  font-weight: 600 !important;
  font-family: var(--tm-font-display) !important;
  font-style: normal !important;
  font-size: 16px !important;
  text-transform: none !important;
}
body .tm-sc-cta-wa__btn:hover {
  background: #25D366 !important;
  color: #0f0e0c !important;
  border-color: #0f0e0c !important;
}

/* FIX #3 — FAQ Accordion mejor visual */
body .tm-faq-accordion {
  max-width: 760px;
  margin: 32px auto !important;
}
body .tm-faq-accordion details,
body details.tm-faq {
  border: 1px solid var(--tm-line) !important;
  border-bottom: 1px solid var(--tm-line) !important;
  background: var(--tm-surface) !important;
  padding: 0 !important;
  margin-bottom: 12px !important;
  border-radius: 4px !important;
  transition: border-color .35s ease, background .35s ease;
}
body .tm-faq-accordion details:hover,
body details.tm-faq:hover {
  border-color: var(--tm-gold) !important;
}
body .tm-faq-accordion details[open],
body details.tm-faq[open] {
  background: var(--tm-surface-2) !important;
  border-color: var(--tm-gold) !important;
}

body .tm-faq-accordion summary,
body details.tm-faq summary {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  font-family: var(--tm-font-display) !important;
  font-weight: 400 !important;
  font-size: 1.0625rem !important;
  letter-spacing: 0 !important;
  cursor: pointer !important;
  list-style: none !important;
  padding: 22px 28px !important;
  color: var(--tm-ink) !important;
  line-height: 1.5 !important;
}

body .tm-faq-accordion summary::-webkit-details-marker,
body details.tm-faq summary::-webkit-details-marker { display: none !important; }
body .tm-faq-accordion summary::marker,
body details.tm-faq summary::marker { display: none !important; content: '' !important; }

body .tm-faq-accordion summary::after,
body details.tm-faq summary::after {
  content: "+" !important;
  float: none !important;
  flex-shrink: 0 !important;
  width: 32px !important;
  height: 32px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--tm-gold) !important;
  font-family: var(--tm-font-display) !important;
  font-weight: 300 !important;
  font-size: 1.75rem !important;
  line-height: 1 !important;
  border: 1px solid var(--tm-line-2) !important;
  border-radius: 50% !important;
  transition: transform .3s ease, background .3s ease, color .3s ease !important;
}

body .tm-faq-accordion details[open] summary::after,
body details.tm-faq[open] summary::after {
  content: "−" !important;
  background: var(--tm-gold) !important;
  color: var(--tm-bg) !important;
  border-color: var(--tm-gold) !important;
}

body .tm-faq-accordion details > *:not(summary),
body details.tm-faq > *:not(summary) {
  padding: 0 28px 24px 28px !important;
  color: var(--tm-ink-dim) !important;
  line-height: 1.7 !important;
  font-size: 1rem !important;
}

/* FAQ heading "Preguntas frecuentes" centrado */
body h2#faqs,
body h2[id="faqs"] {
  text-align: center !important;
  margin-top: 56px !important;
  margin-bottom: 32px !important;
  letter-spacing: 0 !important;
}

/* En mobile el padding mas comodo */
@media (max-width: 640px) {
  body .tm-faq-accordion summary,
  body details.tm-faq summary {
    padding: 18px 20px !important;
    font-size: 1rem !important;
    gap: 16px !important;
  }
  body .tm-faq-accordion details > *:not(summary),
  body details.tm-faq > *:not(summary) {
    padding: 0 20px 20px 20px !important;
  }
}

/* =========================================================================
   Fin v2.9.48 visual fixes
   ========================================================================= */

/* =========================================================================
   v2.9.49 — FIXES VALIDACION DIEGO RONDA 2 (2026-05-11)
   ---------------------------------------------------------------------------
   - Placeholder venue sin foto: minimalista absoluto, sin letra grande
   - FAQ accordion: refinamientos, evitar state azul-link, mejor alignment
   - Margenes generales: cards mejor spacing, hero menos padding
   - Carrousel/grid pillar legacy: prevenir cards solo-emoji vacias
   ========================================================================= */

/* PLACEHOLDER VENUE MAISON MINIMALISTA (sin letra grande "B") */
body .tm-sc-card__image--placeholder {
  background-image:
    linear-gradient(135deg,
      rgba(15, 14, 12, 0.92) 0%,
      rgba(28, 26, 20, 0.98) 100%) !important;
  background-color: var(--tm-surface) !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 200px !important;
}
body .tm-sc-card__image--placeholder::before {
  /* Sutil monograma editorial — esquina superior izquierda con TM */
  content: "TREND MEXICO";
  position: absolute;
  top: 16px;
  left: 16px;
  font-family: var(--tm-font-body);
  font-size: 9px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--tm-gold);
  opacity: 0.55;
  font-weight: 500;
  border: 0;
  pointer-events: none;
}
body .tm-sc-card__image--placeholder::after {
  /* Linea oro mate sutil al centro como sello editorial */
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 36px;
  height: 1px;
  background: var(--tm-gold);
  opacity: 0.6;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
/* OCULTAR la letra grande inicial del venue */
body .tm-sc-card__placeholder-letter {
  display: none !important;
}
body .tm-sc-card--has-image:hover .tm-sc-card__image--placeholder::after {
  width: 64px;
  transition: width .5s ease;
}

/* MARGENES GENERALES — cards mas spacing, hero menos padding agresivo */
body .tm-sc-hero {
  padding: 56px 32px !important;
  margin: 40px auto !important;
  max-width: 920px !important;
}
@media (max-width: 768px) {
  body .tm-sc-hero { padding: 40px 20px !important; margin: 24px auto !important; }
}

body .tm-sc-card {
  margin-bottom: 16px !important;
}

/* FAQ — fix final: evitar text-color azul en hover/focus + + simetrico */
body .tm-faq-accordion summary,
body details.tm-faq summary {
  color: var(--tm-ink) !important;
  text-decoration: none !important;
}
body .tm-faq-accordion summary:hover,
body details.tm-faq summary:hover,
body .tm-faq-accordion summary:focus,
body details.tm-faq summary:focus,
body .tm-faq-accordion summary:focus-visible,
body details.tm-faq summary:focus-visible {
  color: var(--tm-ink) !important;
  outline: none !important;
  background: rgba(176, 141, 87, 0.04) !important;
}
body .tm-faq-accordion summary a,
body details.tm-faq summary a {
  color: inherit !important;
  text-decoration: none !important;
  border: 0 !important;
}

/* + symbol en circulo: line-height adjustment para vertical-center perfecto */
body .tm-faq-accordion summary::after,
body details.tm-faq summary::after {
  margin-top: -2px !important; /* offset visual ajuste optico */
  font-weight: 200 !important;
  font-size: 1.5rem !important;
  width: 36px !important;
  height: 36px !important;
}

/* GENERAL: oculta cualquier card 100% vacia que haya escapado al cleanup */
body .tm-sc-card:empty,
body .tm-sc-decisiones__item:empty,
body .tm-chip:empty {
  display: none !important;
}
/* Tambien si el card solo tiene divs vacios anidados */
body .wp-block-column:has(>div:empty:only-child),
body .elementor-column:has(>div:empty:only-child) {
  display: none !important;
}

/* Pillar legacy mejores-antros-cdmx: las cards por colonia con HTML inline grid */
body .entry-content > div[style*="grid-template-columns"] > a[style*="display:block"] > div[style*="font-size:22px"]:empty,
body .entry-content > div[style*="grid"] a > div:first-child:empty {
  display: none !important; /* el div del icono vacio post-strip emoji */
}
body .entry-content > div[style*="grid-template-columns"] > a[style*="display:block"] {
  padding-top: 18px !important; /* compensar el div del icono removido para que mantenga padding consistente */
}

/* =========================================================================
   Fin v2.9.49 fixes
   ========================================================================= */

/* =========================================================================
   v2.9.50 — Diego: "que nada salga asi vacio"
   ---------------------------------------------------------------------------
   Cards sin imagen ya NO emiten placeholder gigante. Se renderizan en layout
   compacto 2-col (rank-col + body). Esta CSS asegura que se vean bien.
   ========================================================================= */

/* v2.9.51 — Card SIN imagen: layout HORIZONTAL ultra-compacto tipo list item.
   Diego: "nada debe de estar roto". Sin grid, sin espacios vacios, todo
   alineado horizontalmente, look list editorial limpio. */
body .tm-sc-card:not(.tm-sc-card--has-image) {
  display: flex !important;
  align-items: center !important;
  gap: 24px !important;
  padding: 22px 28px !important;
  grid-template-columns: none !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__rank-col {
  flex: 0 0 auto !important;
  flex-direction: row !important;
  gap: 14px !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  padding: 0 !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__rank {
  font-size: 1.875rem !important; /* reduce de 3rem */
  line-height: 1 !important;
  margin: 0 !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__score,
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__tier {
  margin: 0 !important;
  padding: 4px 10px !important;
  font-size: 9px !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__tier-lbl {
  margin: 0 !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__body {
  padding: 0 !important;
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__name {
  margin: 0 !important;
  font-size: 1.0625rem !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__area {
  margin: 0 !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__vibe {
  margin: 4px 0 0 !important;
  font-size: 0.875rem !important;
  line-height: 1.5 !important;
}
body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__link {
  margin-top: 6px !important;
  font-size: 12px !important;
}

@media (max-width: 720px) {
  body .tm-sc-card:not(.tm-sc-card--has-image) {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 18px 22px !important;
  }
  body .tm-sc-card:not(.tm-sc-card--has-image) .tm-sc-card__rank-col {
    width: 100%;
    border-bottom: 1px solid var(--tm-line) !important;
    padding-bottom: 12px !important;
  }
}

/* Ya no necesitamos placeholder ni la letra grande — pero se conservan
   las reglas por si Diego reactiva. */

/* =========================================================================
   Fin v2.9.50
   ========================================================================= */
