/* Rich terraza hub design (lifted from San Angel .epmx-tsa). v1.11.127
   Renderizado por inc/terraza-rich-hub-render.php desde el registry. Hero bg = inline por zona. */

.epmx-bcrumb { background: #0a0a0a; padding: 14px 20px; border-bottom: 1px solid #1f1f1f; }
.epmx-bcrumb-inner { max-width: 1200px; margin: 0 auto; }
.epmx-bcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0; font-size: 13px; line-height: 1.4; }
.epmx-bcrumb li { display: inline-flex; align-items: center; color: #a3a3a3; }
.epmx-bcrumb li:not(:last-child)::after { content: "›"; margin: 0 10px; color: #d4af37; font-size: 16px; font-weight: 600; }
.epmx-bcrumb a { color: #a3a3a3; text-decoration: none; }
.epmx-bcrumb a:hover { color: #d4af37; }
.epmx-bcrumb li[aria-current="page"] { color: #f5f5f5; font-weight: 600; }


.epmx-tsa-hero { position: relative; min-height: 540px; padding: 80px 32px 60px; overflow: hidden; isolation: isolate; }
.epmx-tsa-hero-bg { position: absolute; inset: 0; z-index: 0;  background-size: cover; background-position: center; filter: brightness(0.45) saturate(1.1); }
.epmx-tsa-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse at top left, rgba(212,175,55,0.18) 0%, transparent 55%), linear-gradient(135deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0.85) 100%); }
.epmx-tsa-hero-inner { position: relative; z-index: 2; max-width: 760px; color: #f5f5f5; }
.epmx-tsa-hero-tag { display: inline-block; background: rgba(212,175,55,0.18); border: 1px solid rgba(212,175,55,0.5); color: #d4af37; padding: 6px 14px; border-radius: 999px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 18px; font-weight: 700; }
.epmx-tsa-hero h1 { font-size: clamp(34px, 5.2vw, 54px); line-height: 1.05; margin: 0 0 18px; font-weight: 800; letter-spacing: -0.025em; color: #fff; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa-hero h1 em { color: #d4af37; font-style: italic; }
.epmx-tsa-hero p.epmx-tsa-hero-lede { font-size: 18px; color: #e8e8e8; margin: 0 0 28px; line-height: 1.5; max-width: 640px; }
.epmx-tsa-hero p.epmx-tsa-hero-lede strong { color: #fff; }
.epmx-tsa-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 28px 0 24px; max-width: 580px; }
.epmx-tsa-stat { background: rgba(255,255,255,0.04); border: 1px solid rgba(212,175,55,0.25); border-radius: 12px; padding: 14px 12px; text-align: center; }
.epmx-tsa-stat-n { display: block; font-size: 22px; font-weight: 800; color: #d4af37; font-family: 'Playfair Display', Georgia, serif; line-height: 1; }
.epmx-tsa-stat-l { display: block; font-size: 11px; color: #c4c4c4; margin-top: 5px; line-height: 1.2; }
.epmx-tsa-trust { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-top: 18px; color: #c4c4c4; font-size: 13.5px; }
.epmx-tsa-trust span { display: inline-flex; align-items: center; gap: 6px; }
.epmx-tsa-trust span::before { content: "✓"; color: #d4af37; font-weight: 800; font-size: 14px; }
@media (max-width: 768px) {
  .epmx-tsa-hero { min-height: 480px; padding: 60px 20px 50px; }
  .epmx-tsa-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 769px) {
  .elementor-section:has(.epmx-tsa-hero) > .elementor-container { align-items: flex-start !important; }
  .elementor-section:has(.epmx-tsa-hero) > .elementor-container > .elementor-column:has(.epmx-tsa-hero) {
    position: sticky !important; top: 0 !important; align-self: flex-start !important;
    height: fit-content; max-height: 100vh;
  }
  .epmx-tsa-hero { min-height: 100vh; max-height: 100vh; align-self: stretch !important; }
}


.epmx-tsa-form-wrap { background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%); border-radius: 18px; padding: 28px 26px 26px; box-shadow: 0 20px 50px rgba(0,0,0,0.4), 0 8px 16px rgba(212,175,55,0.15); border: 1px solid rgba(212,175,55,0.3); position: relative; }
.epmx-tsa-form-wrap::before { content: ""; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient(135deg, #d4af37 0%, transparent 50%, #d4af37 100%); border-radius: 19px; z-index: -1; opacity: .6; }
.epmx-tsa-form-tag { display: inline-block; background: #d4af37; color: #0a0a0a; padding: 4px 12px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 10px; }
.epmx-tsa-form-wrap h2 { font-size: clamp(22px, 2.6vw, 28px); color: #0a0a0a; margin: 0 0 6px; font-weight: 800; line-height: 1.15; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa-form-sub { font-size: 13.5px; color: #555; margin: 0 0 18px; line-height: 1.5; }
.epmx-tsa-form-sub strong { color: #0a0a0a; }
.epmx-tsa-nform { display: flex; flex-direction: column; gap: 12px; }
.epmx-tsa-nform-row { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
@media (max-width: 480px) { .epmx-tsa-nform-row { grid-template-columns: 1fr; } }
.epmx-tsa-nform-field { display: flex; flex-direction: column; gap: 4px; }
.epmx-tsa-nform-field label { font-size: 12.5px; font-weight: 600; color: #1a1a1a; }
.epmx-tsa-nform-field input, .epmx-tsa-nform-field select, .epmx-tsa-nform-field textarea { width: 100%; border: 1px solid #d4d4d4 !important; border-radius: 10px !important; padding: 11px 13px !important; font-size: 14px !important; background: #fff !important; color: #1a1a1a !important; font-family: inherit !important; outline: none !important; box-sizing: border-box; }
.epmx-tsa-nform-field textarea { resize: vertical; min-height: 70px; }
.epmx-tsa-nform-field input:focus, .epmx-tsa-nform-field select:focus, .epmx-tsa-nform-field textarea:focus { border-color: #d4af37 !important; box-shadow: 0 0 0 3px rgba(212,175,55,0.15) !important; }
.epmx-tsa-nform-hp { position: absolute; left: -10000px; opacity: 0; pointer-events: none; height: 0; width: 0; overflow: hidden; }
.epmx-tsa-nform-submit { margin-top: 6px; background: linear-gradient(135deg, #d4af37 0%, #b8941f 100%); color: #0a0a0a !important; border: none; border-radius: 999px; padding: 14px 28px; font-size: 15px; font-weight: 700; cursor: pointer; width: 100%; }
.epmx-tsa-nform-submit:hover { transform: translateY(-2px); }
.epmx-tsa-nform-msg { margin-top: 12px; padding: 12px 14px; border-radius: 10px; font-size: 13.5px; display: none; }
.epmx-tsa-nform-msg.is-success { background: rgba(34,197,94,0.12); color: #065f46; border: 1px solid rgba(34,197,94,0.35); display: block; }
.epmx-tsa-nform-msg.is-error { background: rgba(239,68,68,0.10); color: #991b1b; border: 1px solid rgba(239,68,68,0.35); display: block; }

.epmx-tsa-pkg-divider { margin: 14px 0; border-top: 1px solid #2a2a2a; } .epmx-tsa-pkg ul { margin-top: 0; }

.epmx-tsa { max-width: 1200px; margin: 0 auto; padding: 0 16px; color: #f5f5f5; font-family: inherit; line-height: 1.65; }
.epmx-tsa h2 { font-size: clamp(28px, 4.2vw, 44px); margin: 64px 0 18px; font-weight: 800; letter-spacing: -0.02em; color: #fff; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa h2 em { color: #d4af37; font-style: italic; }
.epmx-tsa h3 { font-size: 20px; color: #fff; margin: 0 0 10px; font-weight: 700; }
.epmx-tsa p { font-size: 16px; margin: 0 0 18px; color: #d4d4d4; }
.epmx-tsa p strong { color: #fff; }
.epmx-tsa a { color: #d4af37; text-decoration: underline; }
.epmx-tsa a:hover { color: #f5d76e; }
/* v1.11.176 FIX alineación: el lede iba centrado (margin:auto + text-align:center)
   mientras el h2 y las cards van a la izquierda → sección desalineada. Ahora alinea
   a la izquierda como todo el bloque, anclado al mismo borde. */
.epmx-tsa-lede { font-size: 18px; color: #e8e8e8; max-width: 760px; margin: 0 0 32px; text-align: left; }

.epmx-tsa-usps { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin: 24px 0 0; }
.epmx-tsa-usp { background: linear-gradient(135deg, #161616 0%, #1f1f1f 100%); border: 1px solid rgba(212,175,55,0.3); border-radius: 14px; padding: 22px; }
.epmx-tsa-usp-icon { width: 38px; height: 38px; background: rgba(212,175,55,0.15); border: 1px solid rgba(212,175,55,0.4); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #d4af37; font-size: 16px; font-weight: 800; margin-bottom: 12px; }
.epmx-tsa-usp h3 { margin: 0 0 6px; color: #fff; font-size: 17px; font-weight: 800; }
.epmx-tsa-usp p { margin: 0; font-size: 13.5px; color: #c4c4c4; line-height: 1.5; }

.epmx-tsa-prods { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin: 24px 0 0; }
.epmx-tsa-prod { background: #141414; border: 1px solid #2a2a2a; border-radius: 14px; padding: 20px; display: flex; flex-direction: column; gap: 8px; min-height: 130px; transition: border-color .2s, transform .2s; }
.epmx-tsa-prod:hover { border-color: rgba(212,175,55,0.6); transform: translateY(-2px); }
.epmx-tsa-prod-rank { position: absolute; top: 12px; right: 12px; background: rgba(212,175,55,0.18); color: #d4af37; border-radius: 999px; padding: 3px 10px; font-size: 11px; font-weight: 700; letter-spacing: .05em; }
.epmx-tsa-prod-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.epmx-tsa-prod h3 { margin: 0; color: #fff; font-size: 16px; font-weight: 700; line-height: 1.2; flex: 1; }
.epmx-tsa-prod-price { color: #d4af37; font-weight: 700; font-size: 15px; white-space: nowrap; }
.epmx-tsa-prod p { margin: 0; color: #c4c4c4; font-size: 13px; line-height: 1.45; }
.epmx-tsa-prod-tag { display: inline-block; background: rgba(212,175,55,0.18); color: #d4af37; padding: 2px 9px; border-radius: 999px; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; width: fit-content; margin-top: 4px; }

.epmx-tsa-decision { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin: 24px 0 0; }
.epmx-tsa-dcard { background: linear-gradient(135deg, #141414 0%, #1a1a1a 100%); border: 1px solid #2a2a2a; border-left: 4px solid #d4af37; border-radius: 12px; padding: 22px; }
.epmx-tsa-dcard h3 { margin: 0 0 10px; color: #fff; font-size: 17px; font-weight: 800; }
.epmx-tsa-dcard ul { margin: 0; padding: 0; list-style: none; }
.epmx-tsa-dcard li { color: #d4d4d4; font-size: 14px; padding: 6px 0; border-bottom: 1px dashed #2a2a2a; }
.epmx-tsa-dcard li:last-child { border-bottom: 0; }
.epmx-tsa-dcard li strong { color: #d4af37; }

.epmx-tsa-pkgs { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin: 24px 0 0; }
.epmx-tsa-pkg { background: linear-gradient(135deg, #161616 0%, #1f1f1f 100%); border: 2px solid rgba(212,175,55,0.4); border-radius: 16px; padding: 26px 22px; position: relative; }
.epmx-tsa-pkg.is-popular { border-color: #d4af37; box-shadow: 0 12px 30px rgba(212,175,55,0.18); }
.epmx-tsa-pkg-pop { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: #d4af37; color: #0a0a0a; padding: 4px 14px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.epmx-tsa-pkg h3 { margin: 0 0 6px; color: #fff; font-size: 21px; font-weight: 800; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa-pkg-sub { color: #c4c4c4; font-size: 13px; margin: 0 0 14px; }
.epmx-tsa-pkg-price { display: flex; align-items: baseline; gap: 6px; margin: 0 0 16px; padding: 12px 0; border-top: 1px solid #2a2a2a; border-bottom: 1px solid #2a2a2a; }
.epmx-tsa-pkg-price-n { color: #d4af37; font-size: 30px; font-weight: 800; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa-pkg-price-l { color: #c4c4c4; font-size: 13px; }
.epmx-tsa-pkg ul { margin: 0 0 18px; padding: 0; list-style: none; }
.epmx-tsa-pkg ul li { color: #d4d4d4; font-size: 13.5px; padding: 5px 0 5px 22px; position: relative; }
.epmx-tsa-pkg ul li::before { content: "✓"; position: absolute; left: 0; color: #d4af37; font-weight: 800; }
.epmx-tsa-pkg-cta { display: block; text-align: center; background: linear-gradient(135deg, #d4af37 0%, #b8941f 100%); color: #0a0a0a !important; padding: 12px 18px; border-radius: 999px; font-weight: 700; text-decoration: none !important; font-size: 14px; }

.epmx-tsa-table-wrap { overflow-x:auto; margin: 24px 0 0; border-radius:14px; border:1px solid #2a2a2a; }
table.epmx-tsa-table { width:100%; border-collapse:collapse; background:#141414; color:#f5f5f5; font-size:14px; }
table.epmx-tsa-table thead { background:#0a0a0a; }
table.epmx-tsa-table th { text-align:left; padding:14px 16px; font-weight:800; color:#d4af37; border-bottom:1px solid #2a2a2a; font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; }
table.epmx-tsa-table td { padding:12px 16px; border-bottom:1px solid #1f1f1f; color:#d4d4d4; }
table.epmx-tsa-table td strong { color:#fff; }
table.epmx-tsa-table td.price { color: #d4af37 !important; font-weight: 700; white-space: nowrap; }

.epmx-tsa-process { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin: 24px 0 0; counter-reset: step; }
.epmx-tsa-step { background: #141414; border: 1px solid #2a2a2a; border-radius: 14px; padding: 24px 22px 22px; position: relative; }
.epmx-tsa-step::before { counter-increment: step; content: counter(step); position: absolute; top: -18px; left: 22px; background: linear-gradient(135deg, #d4af37 0%, #b8941f 100%); color: #0a0a0a; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 17px; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa-step h3 { margin: 8px 0 6px; color: #fff; font-size: 16.5px; font-weight: 800; }
.epmx-tsa-step p { margin: 0; font-size: 13.5px; color: #c4c4c4; line-height: 1.5; }

.epmx-tsa-zones { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin: 16px 0 0; }
.epmx-tsa-zone { background: #141414; border: 1px solid #2a2a2a; border-radius: 10px; padding: 10px 14px; color: #d4d4d4; font-size: 13.5px; text-align: center; }

.epmx-tsa-faq { background: #141414; border: 1px solid #2a2a2a; border-radius: 12px; margin: 0 0 10px; overflow: hidden; }
.epmx-tsa-faq summary { padding: 16px 20px; cursor: pointer; font-weight: 600; font-size: 15.5px; list-style: none; color: #fff; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.epmx-tsa-faq summary::-webkit-details-marker { display: none; }
.epmx-tsa-faq summary::after { content: "+"; font-size: 22px; color: #d4af37; transition: transform .2s; }
.epmx-tsa-faq[open] summary::after { transform: rotate(45deg); }
.epmx-tsa-faq-body { padding: 16px 20px; font-size: 14.5px; color: #d4d4d4; border-top: 1px solid #2a2a2a; }
.epmx-tsa-faq-body p { margin: 0 0 10px; }
.epmx-tsa-faq-body p:last-child { margin-bottom: 0; }

.epmx-tsa-combos { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 24px 0 0; }
.epmx-tsa-combo { background: #141414; border: 1px solid #2a2a2a; border-radius: 12px; padding: 18px; }
.epmx-tsa-combo a { display: block; color: #d4af37; font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.epmx-tsa-combo p { margin: 0; color: #c4c4c4; font-size: 13px; line-height: 1.45; }

.epmx-tsa-cta { background: linear-gradient(135deg, #d4af37 0%, #b8941f 100%); color: #0a0a0a; padding: 44px 28px; border-radius: 18px; text-align: center; margin: 64px 0 32px; }
.epmx-tsa-cta h2 { color: #0a0a0a; margin: 0 0 12px; font-size: clamp(26px, 3.5vw, 36px); }
.epmx-tsa-cta p { color: #1a1a1a; font-size: 16px; margin-bottom: 22px; }
.epmx-tsa-cta-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.epmx-tsa-btn { display: inline-block; padding: 14px 30px; border-radius: 999px; font-weight: 700; text-decoration: none !important; font-size: 15px; }
.epmx-tsa-btn-pri { background: #0a0a0a; color: #fff !important; }
.epmx-tsa-btn-sec { background: #fff; color: #0a0a0a !important; }

/* v1.11.172 FIX responsive: min(420px,100%) evita que la card se corte en mobile
   (<420px). Antes minmax(420px,1fr) forzaba 420px en viewport de 390 → card cortada. */
.epmx-tsa-venues-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 28px; margin: 28px 0 0; }
.epmx-tsa-venue { background: linear-gradient(180deg, #141414 0%, #1a1a1a 100%); border: 1px solid #2a2a2a; border-radius: 18px; overflow: hidden; transition: border-color .25s; }
.epmx-tsa-venue:hover { border-color: rgba(212,175,55,0.5); }
.epmx-tsa-venue-header { padding: 20px 24px 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.epmx-tsa-venue-header h3 { margin: 0; color: #fff; font-size: 22px; font-weight: 800; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa-venue-cap { background: rgba(212,175,55,0.18); color: #d4af37; padding: 5px 13px; border-radius: 999px; font-size: 12.5px; letter-spacing: .04em; font-weight: 800; }
.epmx-tsa-venue-gallery { position: relative; margin: 16px 0 0; background: #0a0a0a; }
.epmx-tsa-venue-gallery-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.epmx-tsa-venue-gallery-track::-webkit-scrollbar { display: none; }
/* v1.11.174 FIX: altura UNIFORME forzada. aspect-ratio:4/3 se ignoraba porque las imgs
   traen width/height + el tema les fija height → cada una tomaba su alto intrínseco
   (unas portrait gigantes ocupaban toda la pantalla en mobile). Altura fija + !important
   + object-fit:cover = todas las cards con galería del mismo tamaño contenido. */
.epmx-tsa-venue-gallery-track img { flex: 0 0 100%; scroll-snap-align: start; width: 100% !important; height: 250px !important; aspect-ratio: auto !important; object-fit: cover; display: block; }
@media (min-width: 769px) { .epmx-tsa-venue-gallery-track img { height: 300px !important; } }
.epmx-tsa-venue-gallery-dots { position: absolute; bottom: 12px; left: 0; right: 0; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.epmx-tsa-venue-gallery-dots span { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,0.45); box-shadow: 0 0 4px rgba(0,0,0,0.6); }
.epmx-tsa-venue-gallery-dots span:first-child { background: #d4af37; width: 22px; border-radius: 999px; }
.epmx-tsa-venue-body { padding: 20px 24px 24px; }
.epmx-tsa-venue-summary { color: #d4d4d4; margin: 0 0 18px; font-size: 14.5px; line-height: 1.55; font-style: italic; }
.epmx-tsa-venue-body h4 { margin: 0 0 12px; color: #d4af37; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; }
.epmx-tsa-venue-features { margin: 0 0 22px; padding: 0; list-style: none; }
.epmx-tsa-venue-features li { position: relative; padding: 7px 0 7px 26px; color: #d4d4d4; font-size: 14px; border-bottom: 1px dashed #2a2a2a; line-height: 1.5; }
.epmx-tsa-venue-features li:last-child { border-bottom: 0; }
.epmx-tsa-venue-features li::before { content: "✓"; position: absolute; left: 0; top: 7px; color: #d4af37; font-weight: 800; font-size: 15px; }
.epmx-tsa-venue-cta { display: inline-block; background: linear-gradient(135deg, #d4af37 0%, #b8941f 100%); color: #0a0a0a !important; padding: 11px 22px; border-radius: 999px; font-weight: 800; font-size: 14px; text-decoration: none !important; letter-spacing: .03em; transition: transform .2s; }
.epmx-tsa-venue-cta:hover { transform: translateY(-2px); }
.epmx-tsa-combos { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 24px 0 0; }
.epmx-tsa-combo { background: #141414; border: 1px solid #2a2a2a; border-radius: 14px; overflow: hidden; transition: transform .2s, border-color .2s; text-decoration: none !important; display: flex; flex-direction: column; color: inherit; }
.epmx-tsa-combo:hover { transform: translateY(-3px); border-color: rgba(212,175,55,0.5); }
.epmx-tsa-combo-img { width: 100%; aspect-ratio: 16/10; overflow: hidden; background: #0a0a0a; }
.epmx-tsa-combo-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.epmx-tsa-combo:hover .epmx-tsa-combo-img img { transform: scale(1.05); }
.epmx-tsa-combo-body { padding: 14px 18px 16px; flex: 1; display: flex; flex-direction: column; }
.epmx-tsa-combo-body h3 { margin: 0 0 6px; color: #fff !important; font-size: 16px; font-weight: 700; line-height: 1.25; font-family: 'Playfair Display', Georgia, serif; }
.epmx-tsa-combo-body p { margin: 0 0 10px; color: #c4c4c4 !important; font-size: 13px; line-height: 1.45; flex: 1; }
.epmx-tsa-combo-cta { color: #d4af37; font-weight: 700; font-size: 12.5px; letter-spacing: .04em; }

.epmx-tza-otras{background:#0a0a0a;color:#f5f0e1;padding:48px 20px 56px;}.epmx-tza-otras__wrap{max-width:1120px;margin:0 auto;}.epmx-tza-otras h2{font-size:clamp(22px,3vw,30px);margin:0 0 8px;color:#fff;}.epmx-tza-otras p{color:#c4c4c4;font-size:15px;margin:0 0 22px;max-width:780px;}.epmx-tza-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));}.epmx-tza-zone{position:relative;display:block;aspect-ratio:16/10;border-radius:12px;overflow:hidden;border:1px solid #2a2a2a;text-decoration:none;}.epmx-tza-zone__img{position:absolute;inset:0;background:#1a1a1a;background-size:cover;background-position:center;transition:transform .35s ease;}.epmx-tza-zone:hover .epmx-tza-zone__img{transform:scale(1.07);}.epmx-tza-zone__ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.82) 100%);}.epmx-tza-zone__name{position:absolute;left:0;right:0;bottom:0;padding:14px 12px;color:#fff;font-size:15.5px;font-weight:700;line-height:1.25;text-align:center;}.epmx-tza-zone:hover .epmx-tza-zone__name{color:#d4af37;}
/* v1.11.128 — Form blanco .epmx-tsa-form-wrap: inputs + layout (parity con San Ángel) */
.epmx-tsa-formsec { max-width: 680px; margin: 44px auto 0; }
.epmx-tsa-form-wrap label { display:block; font-size:13px; font-weight:600; color:#333; margin:0 0 6px; }
.epmx-tsa-form-wrap .epmx-vn-field { margin:0 0 14px; }
.epmx-tsa-form-wrap .epmx-vn-field-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.epmx-tsa-form-wrap input, .epmx-tsa-form-wrap select, .epmx-tsa-form-wrap textarea { width:100%; min-height:46px; padding:11px 13px; border:1px solid #d8d8d8; border-radius:9px; background:#fff; color:#1a1a1a; font-size:15px; font-family:inherit; box-sizing:border-box; }
.epmx-tsa-form-wrap textarea { min-height:84px; resize:vertical; }
.epmx-tsa-form-wrap input:focus, .epmx-tsa-form-wrap select:focus, .epmx-tsa-form-wrap textarea:focus { outline:none; border-color:#d4af37; box-shadow:0 0 0 3px rgba(212,175,55,.15); }
.epmx-tsa-form-wrap .epmx-vn-form__submit { width:100%; margin-top:6px; background:#d4af37; color:#0a0a0a; border:0; border-radius:10px; padding:15px; font-size:16px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:transform .15s, box-shadow .15s; }
.epmx-tsa-form-wrap .epmx-vn-form__submit:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(212,175,55,.35); }
@media (max-width:560px){ .epmx-tsa-form-wrap .epmx-vn-field-row { grid-template-columns:1fr; } }

/* ====== v1.11.129 — Hero 2-columnas (img eager + breadcrumb + form inline), parity San Ángel ====== */
/* Imagen del hero como <img> eager (reemplaza el bg lazy-loaded que salía negro). */
.epmx-tsa-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:0; filter:brightness(0.45) saturate(1.1); }
/* Grid 2 columnas: contenido + form. */
/* v1.11.130: align-items:start → contenido pegado arriba (como San Ángel), sin hueco oscuro. */
.epmx-tsa-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr); gap:44px; align-items:start; max-width:1180px; margin:0 auto; }
.epmx-tsa-hero-formcol { position:relative; z-index:2; }
.epmx-tsa-hero-formcol .epmx-tsa-formsec { max-width:none; margin:0; }
/* Breadcrumb del hero. */
.epmx-tsa-breadcrumb { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:12.5px; color:#c4c4c4; margin-bottom:16px; }
.epmx-tsa-breadcrumb a { color:#d4af37; text-decoration:none; }
.epmx-tsa-breadcrumb a:hover { text-decoration:underline; }
.epmx-tsa-breadcrumb-current { color:#e8e8e8; }
/* Link "Ver ficha" del venue (junto al CTA cotizar). */
.epmx-tsa-venue-actions { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.epmx-tsa-venue-detail { color:#d4af37; font-weight:700; font-size:13.5px; letter-spacing:.02em; text-decoration:none; white-space:nowrap; }
.epmx-tsa-venue-detail:hover { text-decoration:underline; }
/* Responsive: apilar el hero en una columna. */
@media (max-width:860px){
	.epmx-tsa-hero-grid { grid-template-columns:1fr; gap:28px; }
	.epmx-tsa-hero-inner { max-width:none; }
}
/* v1.11.132: el hero del renderer RICO (no Elementor) debe CRECER con el form,
   no quedar capado a 100vh — eso recortaba el formulario (regla .epmx-tsa-hero
   max-height:100vh era para el contexto sticky de Elementor de San Ángel). */
@media (min-width:769px){
	.epmx-tsa-main .epmx-tsa-hero { min-height:540px; max-height:none; align-self:auto; }
}

/* ====== v1.11.133 — Form compacto estilo Del Valle ======
   El form rico reusa .epmx-vn-field, que trae labels UPPERCASE + inputs grandes.
   Aquí lo igualamos a Del Valle: labels sentence-case, inputs chicos, menos alto.
   Especificidad .epmx-tsa-form-wrap .epmx-vn-field (0,2,1) gana sin !important. */
.epmx-tsa-form-wrap .epmx-vn-field label,
.epmx-tsa-form-wrap label {
	text-transform: none;
	letter-spacing: normal;
	font-size: 12.5px;
	font-weight: 600;
	color: #3a3a3a;
	margin: 0 0 5px;
}
.epmx-tsa-form-wrap .epmx-vn-field { margin: 0 0 10px; }
.epmx-tsa-form-wrap .epmx-vn-field-row { gap: 12px; margin-bottom: 0; }
.epmx-tsa-form-wrap input,
.epmx-tsa-form-wrap select,
.epmx-tsa-form-wrap textarea {
	min-height: 42px;
	padding: 9px 12px;
	font-size: 14px;
	border-radius: 8px;
}
.epmx-tsa-form-wrap textarea { min-height: 62px; }
.epmx-tsa-form-wrap { padding: 24px 22px 22px; }
.epmx-tsa-form-wrap h2 { font-size: clamp(19px, 2vw, 24px); margin: 0 0 4px; }
.epmx-tsa-form-sub { font-size: 12.5px; margin: 0 0 14px; }
.epmx-tsa-form-tag { margin-bottom: 8px; }
.epmx-tsa-form-wrap .epmx-vn-form__submit { min-height: 46px; padding: 12px; font-size: 15px; margin-top: 4px; }

/* v1.11.134: el form es más alto que el contenido → centrar verticalmente el
   contenido del hero respecto al form para eliminar el hueco del lado izquierdo. */
@media (min-width:769px){
	.epmx-tsa-hero-grid { align-items: center; }
	.epmx-tsa-hero-inner { align-self: center; }
}

/* ====== v1.11.135 — paridad exacta con Del Valle (medido con Playwright) ======
   Del Valle: form ~566px de ancho, inputs 45px/r10/pad 11-13, label ls .35px #1a1a1a.
   Coyoacán estaba a 437px / inputs 42px / label #3a3a3a → se igualan. */
.epmx-tsa-hero-grid { max-width: 1200px; }
/* v1.11.168 FIX mobile: el grid 2-col DEBE ser solo desktop. Antes era base (sin
   media) y, al venir después del @media(max-width:860){1fr}, ganaba en mobile →
   hero aplastado a 2 columnas en celular (form cortado a la derecha). */
@media (min-width:769px){
	.epmx-tsa-hero-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
}
.epmx-tsa-form-wrap input,
.epmx-tsa-form-wrap select,
.epmx-tsa-form-wrap textarea { min-height: 45px; padding: 11px 13px; font-size: 14px; border-radius: 10px; }
.epmx-tsa-form-wrap textarea { min-height: 64px; }
.epmx-tsa-form-wrap .epmx-vn-field label,
.epmx-tsa-form-wrap label { letter-spacing: 0.35px; color: #1a1a1a; margin: 0 0 4px; }

/* ============================================================
   FEATURE ROWS — body_sections editorial zig-zag (v182)
   Reemplaza el muro de <h2>+<p.epmx-tsa-lede> repetido. Premium.
   ============================================================ */
.epmx-tsa-lede { max-width: 62ch; }

.epmx-tsa-features { display: flex; flex-direction: column; gap: 88px; margin: 64px 0 32px; }

.epmx-tsa-feature { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: center; }

.epmx-tsa-feature-media {
  position: relative; margin: 0; border-radius: 18px; overflow: hidden; isolation: isolate;
  box-shadow: 0 30px 80px -28px rgba(0,0,0,0.85);
}
.epmx-tsa-feature-media img {
  display: block; width: 100%; height: 100%;
  aspect-ratio: 4 / 3; object-fit: cover; object-position: center;
  border-radius: 18px; transition: transform .5s ease;
}
.epmx-tsa-feature-media::after {
  content: ""; position: absolute; inset: 0; border-radius: 18px;
  border: 1px solid rgba(212,175,55,0.35);
  background: linear-gradient(180deg, transparent 62%, rgba(8,8,8,0.28) 100%);
  pointer-events: none; z-index: 2;
}
.epmx-tsa-feature:hover .epmx-tsa-feature-media img { transform: scale(1.04); }

.epmx-tsa-feature-body { max-width: 62ch; }
.epmx-tsa-feature-kicker {
  display: inline-block; font-size: 11.5px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: #d4af37; margin: 0 0 12px;
}
.epmx-tsa-feature-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(24px, 3.4vw, 34px); line-height: 1.18; letter-spacing: -0.015em;
  font-weight: 700; color: #fbf7ec; margin: 0 0 18px; padding: 0 0 16px; position: relative;
}
.epmx-tsa-feature-title::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 56px; height: 2px;
  background: linear-gradient(90deg, #ecca63 0%, #d4af37 60%, transparent 100%);
}
.epmx-tsa-feature-title em { color: #d4af37; font-style: italic; }

.epmx-tsa-feature-text p { font-size: 17px; line-height: 1.7; color: #d4d4d4; margin: 0 0 16px; }
.epmx-tsa-feature-text p:last-child { margin-bottom: 0; }
.epmx-tsa-feature-text strong { color: #f5f0e1; font-weight: 600; }
.epmx-tsa-feature-text a { color: #d4af37; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.epmx-tsa-feature-text a:hover { color: #f5d76e; }
.epmx-tsa-feature-text a:focus-visible { outline: 2px solid #d4af37; outline-offset: 3px; border-radius: 3px; }

@media (min-width: 769px) {
  .epmx-tsa-features { gap: 112px; }
  .epmx-tsa-feature { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; }
  .epmx-tsa-feature--rev .epmx-tsa-feature-media { order: 2; }
  .epmx-tsa-feature--rev .epmx-tsa-feature-body  { order: 1; margin-left: auto; }
}
@media (min-width: 1100px) {
  .epmx-tsa-feature-media img { aspect-ratio: 5 / 4; }
}
@media (prefers-reduced-motion: reduce) {
  .epmx-tsa-feature-media img { transition: none; }
  .epmx-tsa-feature:hover .epmx-tsa-feature-media img { transform: none; }
}

/* ---- TAMBIÉN COORDINAMOS (cross-link cards con imagen) — más aire ---- */
.epmx-tsa-also { margin-top: 80px; padding-top: 48px; border-top: 1px solid rgba(212,175,55,0.18); }
.epmx-tsa-also > h2 { margin-bottom: 8px; }
.epmx-tsa-also .epmx-tsa-lede { margin-bottom: 32px; }
@media (min-width: 769px) { .epmx-tsa-also { margin-top: 104px; padding-top: 56px; } }

/* ---- SERVICIOS RELACIONADOS (interlinking al pie, lista de links) ---- */
.epmx-tsa-related { margin-top: 80px; padding-top: 48px; border-top: 1px solid rgba(212,175,55,0.18); }
.epmx-tsa-related > h2 { margin-bottom: 24px; }
.epmx-tsa-related-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.epmx-tsa-related-link {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 22px; border-radius: 12px;
  background: linear-gradient(180deg, rgba(26,26,26,0.9), rgba(18,18,18,0.9));
  border: 1px solid #2a2a2a; color: #f5f0e1; text-decoration: none;
  font-size: 16px; font-weight: 500; line-height: 1.35;
  transition: border-color .25s ease, transform .25s ease, background .25s ease;
}
.epmx-tsa-related-link:hover { border-color: rgba(212,175,55,0.55); transform: translateY(-2px); background: linear-gradient(180deg, rgba(32,32,32,0.95), rgba(22,22,22,0.95)); }
.epmx-tsa-related-link:focus-visible { outline: 2px solid #d4af37; outline-offset: 3px; }
.epmx-tsa-related-arrow { color: #d4af37; font-size: 18px; flex: 0 0 auto; transition: transform .25s ease; }
.epmx-tsa-related-link:hover .epmx-tsa-related-arrow { transform: translateX(4px); }
@media (min-width: 600px)  { .epmx-tsa-related-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (min-width: 992px)  { .epmx-tsa-related-grid { grid-template-columns: repeat(3, 1fr); } .epmx-tsa-related { margin-top: 104px; padding-top: 56px; } }

/* ---- Feature sin imagen: prosa a ancho completo (v184) ---- */
.epmx-tsa-feature--noimg { grid-template-columns: 1fr; }
.epmx-tsa-feature--noimg .epmx-tsa-feature-body { max-width: 78ch; margin-left: 0 !important; order: 0 !important; }

/* ---- Reset .site-main del tema en hubs creados por REST sin Elementor (v185) ----
   Las pages nuevas heredan el padding/box content-box de .site-main de Hello Elementor,
   que da 380px en viewport de 360 → scroll horizontal en mobile. Las pages de origen
   Elementor no lo tenían. Forzar border-box + full width lo neutraliza en todas. */
.epmx-tsa-main { box-sizing: border-box; width: 100%; max-width: 100%; margin: 0; padding: 0; overflow-x: clip; }

/* ---- TESTIMONIOS (reseñas reales GBP) v189 ---- */
.epmx-tsa-reviews { margin-top: 80px; padding-top: 48px; border-top: 1px solid rgba(212,175,55,0.18); }
.epmx-tsa-reviews-head { text-align: center; max-width: 720px; margin: 0 auto 36px; }
.epmx-tsa-reviews-kicker { display:inline-block; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#d4af37; margin-bottom:12px; }
.epmx-tsa-reviews-head h2 { margin:0 0 14px; }
.epmx-tsa-reviews-badge { font-size:16px; color:#e8e8e8; margin:0; }
.epmx-tsa-reviews-stars { color:#d4af37; letter-spacing:2px; }
.epmx-tsa-reviews-badge strong { color:#fbf7ec; font-size:18px; }
.epmx-tsa-reviews-grid { display:grid; grid-template-columns:1fr; gap:18px; }
.epmx-tsa-review { margin:0; background:linear-gradient(180deg,rgba(26,26,26,.9),rgba(18,18,18,.9)); border:1px solid #2a2a2a; border-radius:14px; padding:22px 24px; display:flex; flex-direction:column; gap:12px; }
.epmx-tsa-review-stars { color:#d4af37; letter-spacing:2px; font-size:15px; }
.epmx-tsa-review-text { margin:0; color:#d4d4d4; font-size:15.5px; line-height:1.6; font-style:normal; }
.epmx-tsa-review-meta { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:auto; padding-top:6px; border-top:1px solid rgba(255,255,255,.06); }
.epmx-tsa-review-author { color:#fbf7ec; font-weight:600; font-size:14px; }
.epmx-tsa-review-tag { color:#d4af37; font-size:12px; }
.epmx-tsa-reviews-foot { text-align:center; color:#8a8a8a; font-size:12.5px; margin:24px 0 0; }
@media (min-width:600px){ .epmx-tsa-reviews-grid{ grid-template-columns:repeat(2,1fr); gap:20px; } }
@media (min-width:992px){ .epmx-tsa-reviews-grid{ grid-template-columns:repeat(4,1fr); } .epmx-tsa-reviews{ margin-top:104px; padding-top:56px; } }
