/* ============================================================
   single-taller.css — Estilos de la ficha individual de Taller
   ------------------------------------------------------------
   Se encola SOLO en los singles del CPT "taller" (is_singular('taller'))
   desde inc/cpt-templates.php. NO es CSS global y NO afecta a páginas
   Elementor: no toca --e-global-color-*, solo tokens propios --base/etc.

   Incluye una copia VERBATIM de los tokens y helpers del diseño
   (web/styles.css) para que la plantilla se renderice correctamente
   aunque el Kit de Elementor no los tuviera cargados. Los valores son
   idénticos al diseño canónico, así que no hay divergencia.
   ============================================================ */

/* ── Tokens (idénticos a web/styles.css :root) ── */
:root {
  --base:#9B9A84; --moss:#9C9584; --sage:#8C9C84; --warm:#9C9884;
  --base-dk:#797869; --base-lt:#b8b7a4;
  --base-pale:rgba(155,154,132,.10); --base-line:rgba(155,154,132,.22);
  --white:#faf8f5; --sand:#f2ede4; --sand2:#e8e1d5; --sand3:#d8d0c4;
  --text:#252018; --text-70:rgba(37,32,24,.70); --text-40:rgba(37,32,24,.40); --text-15:rgba(37,32,24,.15);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',sans-serif;
  --shadow-sm:0 2px 8px rgba(37,32,24,.08); --shadow-md:0 8px 22px rgba(37,32,24,.16);
  --shadow-lg:0 16px 42px rgba(37,32,24,.22); --shadow-xl:0 30px 70px rgba(37,32,24,.28);
  --radius-sm:4px; --radius-md:12px; --radius-lg:24px; --radius-pill:60px;
}

/* ── Helpers de sección (verbatim del diseño) — namespaced a .ts-page para
      no pisar nada fuera de la ficha aunque el nombre sea global ── */
.ts-page { font-family:var(--sans); color:var(--text); }
.ts-page .s-eye { font-size:.7rem; font-weight:500; letter-spacing:.28em; text-transform:uppercase; color:var(--base-dk); margin-bottom:.9rem; display:inline-flex; align-items:center; gap:.55rem; }
.ts-page .s-eye::before { content:''; width:22px; height:1.5px; background:var(--base); }
.ts-page .s-h2 { font-family:var(--serif); font-size:clamp(2.4rem,3.8vw,3.8rem); font-weight:400; line-height:1.12; letter-spacing:-.01em; color:var(--text); }
.ts-page .s-h2 em { font-style:normal; font-weight:300; color:var(--base); }
.ts-page .s-rule { width:40px; height:2px; background:var(--base); margin:1.6rem 0; }
.ts-page .s-body { font-size:1.08rem; color:var(--text-70); max-width:580px; line-height:1.78; }
.ts-page .btn-base { padding:.9rem 1.75rem; background:var(--text); color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; display:inline-block; border-radius:60px; transition:background .3s, transform .2s; text-decoration:none; }
.ts-page .btn-base:hover { background:var(--base-dk); transform:translateY(-2px); }
.ts-page .btn-with-icon { display:inline-flex !important; align-items:center; gap:.55rem; }
.ts-page .btn-with-icon svg { width:16px; height:16px; }
@media (min-width:721px){ .ts-page .nowrap-dt { white-space:nowrap; } }

/* ── Reveal: entrada por CSS (NO depende de JS; el contenido SIEMPRE acaba visible) ── */
.ts-page .reveal { animation: ts-reveal .8s ease both; }
@keyframes ts-reveal { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }
.ts-page .reveal.in { opacity:1; transform:none; } /* compat con single-*.js */
.ts-page .d1 { animation-delay:.1s; } .ts-page .d2 { animation-delay:.22s; } .ts-page .d3 { animation-delay:.34s; }
@media (prefers-reduced-motion: reduce) { .ts-page .reveal { animation:none; opacity:1; transform:none; } }

/* ═══ BACK LINK ═══ */
.ts-back { position:relative; z-index:2; max-width:1180px; margin:0 auto; width:100%; padding:0 4.5rem; }
.ts-back a { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.7); transition:color .3s, gap .3s; text-decoration:none; }
.ts-back a:hover { color:#fff; gap:.8rem; }
.ts-back svg { width:14px; height:14px; }

/* ═══ HERO ═══ */
.ts-hero { position:relative; min-height:84vh; display:flex; flex-direction:column; justify-content:center; padding:9rem 0 4.5rem; overflow:hidden; background:var(--text); }
.ts-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center 38%; opacity:.34; filter:saturate(.96); transform:scale(1.04); }
.ts-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(37,32,24,.50) 0%, rgba(37,32,24,.55) 42%, rgba(37,32,24,.95) 100%); }
.ts-hero-inner { position:relative; z-index:1; max-width:1180px; margin:2.4rem auto 0; width:100%; padding:0 4.5rem; }
.ts-hero .s-eye { color:var(--base-lt); }
.ts-hero .s-eye::before { background:var(--base-lt); }
.ts-hero-h1 { font-family:var(--serif); font-size:clamp(2.8rem,5.2vw,5rem); font-weight:300; line-height:1.05; letter-spacing:-.02em; color:#fff; margin:1.1rem 0 .9rem; max-width:18ch; }
.ts-hero-sub { font-family:var(--serif); font-style:italic; font-weight:300; font-size:clamp(1.25rem,2.1vw,1.85rem); color:rgba(255,255,255,.82); line-height:1.4; max-width:32ch; margin-bottom:2.2rem; }
.ts-hero-meta { display:flex; flex-wrap:wrap; gap:1rem 2.4rem; padding-top:1.8rem; margin-bottom:2.4rem; border-top:1px solid rgba(255,255,255,.16); }
.ts-meta-item { display:flex; align-items:center; gap:.7rem; }
.ts-meta-item svg { width:19px; height:19px; color:var(--base-lt); flex-shrink:0; }
.ts-meta-item .lbl { display:block; font-size:.58rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:.15rem; }
.ts-meta-item .val { display:block; font-family:var(--sans); font-size:.95rem; font-weight:500; color:#fff; line-height:1; }
.ts-hero-actions { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.ts-hero-actions .btn-base { background:var(--base-lt); color:var(--text); }
.ts-hero-actions .btn-base:hover { background:#fff; }
.btn-ghost-light { display:inline-flex; align-items:center; gap:.55rem; padding:.9rem 1.5rem; background:rgba(255,255,255,.10); color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:var(--radius-pill); font-family:var(--sans); font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; cursor:pointer; backdrop-filter:blur(8px); transition:background .3s, transform .3s, border-color .3s; text-decoration:none; }
.btn-ghost-light:hover { background:rgba(255,255,255,.2); border-color:#fff; transform:translateY(-2px); }
.btn-ghost-light svg { width:16px; height:16px; fill:currentColor; }

/* ═══ MAIN — contenido + tarjeta de reserva ═══ */
.ts-main { background:var(--white); padding:5.5rem 4.5rem; }
.ts-main-inner { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.55fr) 380px; gap:4.5rem; align-items:start; }
.ts-content { min-width:0; }
.ts-lead { font-family:var(--serif); font-weight:300; font-size:clamp(1.4rem,2.2vw,1.85rem); line-height:1.5; color:var(--text); margin-bottom:2.6rem; }
.ts-lead strong { font-weight:500; color:var(--base-dk); }

/* ── Bloque vídeo ── */
.ts-video { position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:16/9; margin-bottom:3rem; cursor:pointer; background:var(--text); box-shadow:var(--shadow-md); }
.ts-video img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s ease, opacity .3s; }
.ts-video:hover img { transform:scale(1.04); opacity:.85; }
.ts-video-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.ts-video-play span { width:76px; height:76px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--text); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.35); transition:transform .3s, background .3s; }
.ts-video:hover .ts-video-play span { transform:scale(1.08); background:#fff; }
.ts-video-play svg { width:26px; height:26px; fill:var(--text); margin-left:4px; }
.ts-video-label { position:absolute; left:1.2rem; bottom:1.2rem; font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#fff; background:rgba(37,32,24,.55); padding:.4rem .85rem; border-radius:var(--radius-pill); backdrop-filter:blur(6px); }

/* ── the_content() (editor Gutenberg) ── */
.ts-richtext { margin-bottom:3rem; }
.ts-richtext > *:first-child { margin-top:0; }
.ts-richtext h2 { font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.3rem); font-weight:400; line-height:1.18; color:var(--text); margin:2.2rem 0 1.1rem; }
.ts-richtext h3 { font-family:var(--serif); font-size:1.5rem; font-weight:500; color:var(--text); margin:1.8rem 0 .9rem; }
.ts-richtext p { font-size:1.04rem; color:var(--text-70); line-height:1.82; margin-bottom:1.1rem; }
.ts-richtext ul, .ts-richtext ol { margin:0 0 1.4rem 1.2rem; }
.ts-richtext li { font-size:1.02rem; color:var(--text-70); line-height:1.7; margin-bottom:.5rem; }
.ts-richtext a { color:var(--base-dk); text-decoration:underline; }
.ts-richtext blockquote { font-family:var(--serif); font-size:1.4rem; line-height:1.45; color:var(--text); border-left:3px solid var(--base); padding:1.2rem 1.6rem; margin:1.6rem 0; background:var(--base-pale); }
.ts-richtext img { max-width:100%; height:auto; border-radius:var(--radius-md); }

/* ── Beneficios / Qué incluye ── */
.ts-block { margin-bottom:3rem; }
.ts-block:last-child { margin-bottom:0; }
.ts-block h2 { font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.3rem); font-weight:400; line-height:1.18; color:var(--text); margin-bottom:1.2rem; }
.ts-block h2 em { font-style:normal; color:var(--base); font-weight:300; }
.ts-includes { list-style:none; margin:1.4rem 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.2rem 2rem; }
.ts-includes li { padding:.85rem 0; border-bottom:1px solid var(--sand2); display:flex; align-items:flex-start; gap:.8rem; }
.ts-includes li > svg { width:18px; height:18px; color:var(--sage); flex-shrink:0; margin-top:.2rem; }
.ts-includes li .ti-text { display:flex; flex-direction:column; gap:.15rem; }
.ts-includes li .ti-text strong { font-size:1rem; font-weight:500; color:var(--text); line-height:1.35; }
.ts-includes li .ti-text span { font-size:.86rem; color:var(--text-40); line-height:1.5; }

/* ═══ TARJETA DE RESERVA (sticky) ═══ */
.ts-aside { position:sticky; top:6rem; }
.ts-book { background:var(--white); border-radius:var(--radius-lg); border-top:4px solid var(--sage); box-shadow:var(--shadow-lg); padding:2.2rem 2rem 2rem; }
.ts-book-status { display:inline-flex; align-items:center; gap:.45rem; font-family:var(--sans); font-size:.64rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--sage); margin-bottom:1.1rem; }
.ts-book-status.sold { color:#c83b3b; }
.ts-book-status.few { color:#c0603b; }
.ts-book-status .dot { width:6px; height:6px; border-radius:50%; background:currentColor; }
.ts-price { display:flex; align-items:baseline; gap:.5rem; }
.ts-price .amount { font-family:var(--serif); font-size:3rem; font-weight:400; color:var(--text); line-height:1; }
.ts-price-label { font-size:.82rem; color:var(--text-40); margin-top:.5rem; letter-spacing:.02em; }
.ts-facts { list-style:none; margin:1.6rem 0; padding:0; border-top:1px solid var(--sand2); }
.ts-fact { display:flex; align-items:center; gap:.85rem; padding:.85rem 0; border-bottom:1px solid var(--sand2); }
.ts-fact svg { width:18px; height:18px; color:var(--base); flex-shrink:0; }
.ts-fact .lbl { font-size:.62rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-40); display:block; margin-bottom:.1rem; }
.ts-fact .val { font-size:.95rem; font-weight:500; color:var(--text); line-height:1.2; }
.ts-avail { margin:1.4rem 0 1.6rem; }
.ts-avail-top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.55rem; }
.ts-avail-top .lbl { font-size:.62rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-40); }
.ts-avail-top .num { font-family:var(--serif); font-size:1.05rem; color:var(--base-dk); font-weight:500; }
.ts-bar { height:7px; border-radius:var(--radius-pill); background:var(--sand2); overflow:hidden; }
.ts-bar span { display:block; height:100%; border-radius:var(--radius-pill); background:linear-gradient(90deg, var(--sage), var(--base)); }
.ts-avail-msg { margin-top:.6rem; font-size:.8rem; color:#c0603b; font-weight:500; letter-spacing:.02em; }
.ts-book-cta { display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; padding:1.05rem 1.4rem; border-radius:var(--radius-pill); background:var(--text); color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; line-height:1; box-shadow:var(--shadow-md); transition:background .3s, transform .25s, gap .3s; text-decoration:none; }
.ts-book-cta:hover { background:var(--base-dk); transform:translateY(-2px); gap:.75rem; }
.ts-book-cta svg { width:15px; height:15px; }
.ts-book-alt { display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; padding:.95rem 1.4rem; margin-top:.8rem; border-radius:var(--radius-pill); background:rgba(37,211,102,.10); color:#1c8a44; border:1px solid rgba(37,211,102,.35); font-family:var(--sans); font-size:.78rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; line-height:1; transition:background .3s, transform .25s; text-decoration:none; }
.ts-book-alt:hover { background:rgba(37,211,102,.18); transform:translateY(-2px); }
.ts-book-alt svg { width:16px; height:16px; fill:currentColor; }
.ts-book-foot { display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:1.2rem; font-size:.72rem; color:var(--text-40); letter-spacing:.03em; text-align:center; }
.ts-book-foot svg { width:13px; height:13px; color:var(--base); flex-shrink:0; }

/* ═══ PROCESO / PARA QUIÉN / CONTRAINDICACIONES (estático de plantilla) ═══ */
.ts-proceso { padding:5.5rem 4.5rem; background:var(--sand); }
.ts-proceso-head { max-width:1180px; margin:0 auto 3rem; text-align:center; }
.ts-proceso-head .s-body { margin-top:1.2rem; }
.ts-proceso-grid { max-width:1120px; margin:0 auto; display:flex; flex-direction:column; gap:1.4rem; }
.ts-proc-card { background:var(--white); padding:2.5rem 2.6rem; border-radius:var(--radius-md); border-left:3px solid var(--base); display:grid; grid-template-columns:220px 1fr; gap:2.4rem; align-items:start; }
.ts-proc-head { display:flex; flex-direction:column; gap:.5rem; }
.ts-proc-num { font-family:var(--serif); font-size:3rem; font-weight:300; color:var(--base); line-height:1; }
.ts-proc-card h4 { font-family:var(--serif); font-size:1.45rem; font-weight:500; margin:0; color:var(--text); text-transform:uppercase; letter-spacing:.04em; line-height:1.2; }
.ts-proc-text p { font-size:.96rem; color:var(--text-70); line-height:1.72; }
.ts-proc-text p + p { margin-top:1rem; }

.ts-quien { padding:5.5rem 4.5rem; background:var(--white); }
.ts-quien-inner { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr 1.2fr; gap:4rem; align-items:center; }
.ts-quien-img { position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:4/5; box-shadow:var(--shadow-md); }
.ts-quien-img img { width:100%; height:100%; object-fit:cover; }
.ts-quien-list { list-style:none; padding:0; margin-top:1.6rem; }
.ts-quien-list li { display:flex; align-items:flex-start; gap:.9rem; font-size:1rem; color:var(--text); padding:.8rem 0; border-bottom:1px solid var(--base-line); line-height:1.55; }
.ts-quien-list li:last-child { border-bottom:none; }
.ts-quien-list li::before { content:''; flex-shrink:0; width:8px; height:8px; background:var(--base); border-radius:50%; margin-top:.55rem; }

.ts-warning { padding:3rem 4.5rem; background:var(--sand); }
.ts-warning-box { max-width:1180px; margin:0 auto; background:linear-gradient(135deg, #f5ede0 0%, #e8dcc8 100%); border-left:5px solid var(--base-dk); padding:2.4rem 2.8rem; border-radius:var(--radius-sm); }
.ts-warning-box h4 { font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--base-dk); margin-bottom:.8rem; }
.ts-warning-box p { font-size:.96rem; color:var(--text); line-height:1.7; }

/* ═══ TESTIMONIOS (ACF repeater) ═══ */
.ts-test-sec { padding:5.5rem 4.5rem; background:var(--white); }
.ts-test-head { max-width:1180px; margin:0 auto 3rem; text-align:center; }
.ts-test-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.ts-test-card { background:var(--sand); border-radius:var(--radius-md); padding:2rem 1.8rem; display:flex; flex-direction:column; gap:1rem; border-top:3px solid var(--base); }
.ts-test-quote { font-family:var(--serif); font-size:1.18rem; line-height:1.5; color:var(--text); font-style:italic; flex:1; }
.ts-test-foot { display:flex; align-items:center; gap:.9rem; }
.ts-test-avatar { width:46px; height:46px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.ts-test-name { font-family:var(--sans); font-size:.9rem; font-weight:500; color:var(--text); }
.ts-test-video { display:inline-flex; align-items:center; gap:.4rem; margin-top:.2rem; font-size:.72rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--base-dk); cursor:pointer; background:none; border:0; padding:0; }
.ts-test-video svg { width:13px; height:13px; fill:currentColor; }

/* ═══ GALERÍA (ACF gallery) ═══ */
.ts-gallery-sec { background:var(--sand); padding:5.5rem 4.5rem; }
.ts-gallery-inner { max-width:1180px; margin:0 auto; }
.ts-gallery-head { max-width:640px; margin:0 auto 3rem; text-align:center; }
.ts-gallery-head h2 { font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); font-weight:400; line-height:1.15; }
.ts-gallery-head h2 em { font-style:normal; color:var(--base); font-weight:300; }
.ts-gallery-head .s-rule { margin:1.4rem auto; }
.ts-gallery-grid { display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:170px; gap:.8rem; }
.ts-gallery-item { overflow:hidden; border-radius:var(--radius-sm); background:var(--text); cursor:pointer; border:0; padding:0; }
.ts-gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease, opacity .3s; display:block; }
.ts-gallery-item:hover img { transform:scale(1.06); opacity:.92; }
.ts-gallery-item.big { grid-column:span 3; grid-row:span 2; }
.ts-gallery-item.tall { grid-column:span 3; grid-row:span 2; }
.ts-gallery-item.wide { grid-column:span 2; }

/* ═══ FAQ (ACF repeater) ═══ */
.ts-faq-sec { padding:5.5rem 4.5rem; background:var(--white); }
.ts-faq-head { max-width:1180px; margin:0 auto 3rem; text-align:center; }
.ts-faq-grid { max-width:880px; margin:0 auto; display:flex; flex-direction:column; gap:1rem; }
.ts-faq-item { background:var(--sand); border-radius:var(--radius-sm); overflow:hidden; border:1px solid var(--base-line); }
.ts-faq-item summary { cursor:pointer; list-style:none; padding:1.4rem 1.8rem; font-family:var(--sans); font-size:1rem; font-weight:500; color:var(--text); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.ts-faq-item summary::-webkit-details-marker { display:none; }
.ts-faq-item summary::after { content:'+'; font-family:var(--serif); font-size:1.6rem; font-weight:300; color:var(--base); transition:transform .3s; }
.ts-faq-item[open] summary::after { transform:rotate(45deg); }
.ts-faq-content { padding:0 1.8rem 1.6rem; font-size:.96rem; line-height:1.72; color:var(--text-70); }
.ts-faq-content p { margin-bottom:.8rem; }
.ts-faq-content a { color:var(--base-dk); text-decoration:underline; }

/* ═══ FORMULARIO GHL ═══ */
.ts-form-sec { background:var(--sand); padding:5.5rem 4.5rem; }
.ts-form-inner { max-width:820px; margin:0 auto; text-align:center; }
.ts-form-inner h2 { font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem); font-weight:400; line-height:1.15; }
.ts-form-inner h2 em { font-style:normal; color:var(--base); font-weight:300; }
.ts-form-inner .s-rule { margin:1.4rem auto; }
.ts-form-inner > p { font-size:1.06rem; color:var(--text-70); line-height:1.78; max-width:600px; margin:0 auto 2.5rem; }
.ts-form-embed iframe { width:100%; min-height:560px; border:0; border-radius:var(--radius-md); background:var(--white); }
.ts-form-missing { background:var(--white); border:1px dashed var(--base-line); border-radius:var(--radius-md); padding:3rem 2rem; display:flex; flex-direction:column; align-items:center; gap:1rem; color:var(--text-40); }
.ts-form-missing svg { width:38px; height:38px; color:var(--base); }
.ts-form-missing code { font-family:monospace; font-size:.8rem; background:var(--sand); padding:.3rem .6rem; border-radius:4px; color:var(--base-dk); }

/* ═══ CTA FINAL ═══ */
.ts-cta { background:var(--text); padding:5rem 4.5rem; color:#fff; }
.ts-cta-inner { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr; gap:3rem; align-items:center; }
.ts-cta .s-eye { color:var(--base-lt); }
.ts-cta .s-eye::before { background:var(--base-lt); }
.ts-cta h2 { font-family:var(--serif); font-size:clamp(2rem,3.4vw,3rem); font-weight:300; line-height:1.15; color:#fff; margin:1.1rem 0; }
.ts-cta h2 strong { font-weight:400; color:var(--base-lt); }
.ts-cta p { color:rgba(255,255,255,.72); line-height:1.7; max-width:480px; }
.ts-cta-actions { display:flex; flex-direction:column; gap:1rem; align-items:flex-start; }
.ts-cta-actions .btn-base { background:var(--base-lt); color:var(--text); }
.ts-cta-actions .btn-base:hover { background:#fff; }
.ts-cta-note { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }

/* ═══ LIGHTBOX (galería + vídeo) ═══ */
.ts-lightbox { position:fixed; inset:0; z-index:99999; background:rgba(20,16,10,.93); backdrop-filter:blur(10px); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .35s; }
.ts-lightbox.open { opacity:1; pointer-events:all; }
.ts-lb-body { transform:scale(.94); transition:transform .35s; display:flex; }
.ts-lightbox.open .ts-lb-body { transform:scale(1); }
.ts-lb-body img, .ts-lb-body video { max-width:90vw; max-height:86vh; border-radius:10px; box-shadow:0 32px 80px rgba(0,0,0,.6); display:block; }
.ts-lb-body iframe { width:min(92vw,960px); aspect-ratio:16/9; max-height:86vh; border:0; border-radius:10px; box-shadow:0 32px 80px rgba(0,0,0,.6); }
.ts-lightbox-close { position:absolute; top:1.6rem; right:1.6rem; background:none; border:1px solid rgba(255,255,255,.3); color:rgba(255,255,255,.85); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; padding:.45rem 1.1rem; border-radius:var(--radius-pill); cursor:pointer; font-family:var(--sans); transition:border-color .3s, color .3s; z-index:1; }
.ts-lightbox-close:hover { border-color:#fff; color:#fff; }

/* ═══ CITA (blockquote en la intro) ═══ */
.ts-quote { font-family:var(--serif); font-size:clamp(1.5rem,2.4vw,2rem); font-weight:400; line-height:1.4; color:var(--text); max-width:760px; margin:0 0 2.6rem; padding:1.8rem 2.2rem; border-left:3px solid var(--base); background:var(--base-pale); }

/* ═══ MAIN sin aside (cuando hay formatos) ═══ */
.ts-main-inner--full { grid-template-columns:minmax(0,1fr); max-width:920px; }

/* ═══ INCLUYE (ACF beneficios → tarjetas, ancho completo) ═══ */
.ts-includes-sec { padding:5.5rem 4.5rem; background:var(--sand); }
.ts-includes-head { max-width:1180px; margin:0 auto 3rem; text-align:center; }
.ts-incl-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.ts-incl-card { background:var(--white); padding:2rem 1.8rem; border-radius:var(--radius-md); border-top:3px solid var(--base); box-shadow:var(--shadow-sm); }
.ts-incl-icon { width:38px; height:38px; background:var(--base-pale); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:1rem; color:var(--base-dk); }
.ts-incl-icon svg { width:18px; height:18px; }
.ts-incl-card h4 { font-family:var(--serif); font-size:1.25rem; font-weight:500; margin-bottom:.7rem; color:var(--text); }
.ts-incl-card p { font-size:.95rem; color:var(--text-70); line-height:1.65; }

/* ═══ FORMATOS (ACF repeater → tarjetas de precio) ═══ */
.ts-formatos { padding:5.5rem 4.5rem; background:var(--white); }
.ts-formatos-head { max-width:1180px; margin:0 auto 3.5rem; text-align:center; }
.ts-formatos-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; align-items:stretch; }
.ts-formato { background:var(--white); border:1px solid var(--base-line); border-radius:var(--radius-md); padding:2.4rem 2rem 2rem; display:flex; flex-direction:column; position:relative; transition:transform .35s, box-shadow .35s, border-color .35s; }
.ts-formato:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--base); }
.ts-formato.featured { border-color:var(--base); box-shadow:var(--shadow-md); background:linear-gradient(180deg, var(--white) 0%, rgba(155,154,132,.04) 100%); }
.ts-formato-badge { position:absolute; top:-10px; left:50%; transform:translateX(-50%); font-size:.65rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; background:var(--base); color:#fff; padding:.35rem .8rem; border-radius:var(--radius-pill); white-space:nowrap; }
.ts-formato-tag { font-size:.68rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--base-dk); margin-bottom:.8rem; }
.ts-formato h3 { font-family:var(--serif); font-size:1.55rem; font-weight:500; color:var(--text); margin-bottom:1rem; line-height:1.2; letter-spacing:-.01em; }
.ts-formato-price { font-family:var(--serif); font-size:2.4rem; font-weight:400; color:var(--text); margin-bottom:.2rem; line-height:1; }
.ts-formato-price small { font-family:var(--sans); font-size:.82rem; color:var(--text-70); font-weight:400; margin-left:.3rem; letter-spacing:0; }
.ts-formato-note { font-size:.82rem; color:var(--text-70); margin-bottom:1.4rem; font-style:italic; }
.ts-formato-features { list-style:none; padding:0; margin:0 0 1.8rem; flex:1; }
.ts-formato-features li { font-size:.92rem; color:var(--text); padding:.55rem 0; border-bottom:1px solid var(--base-line); display:flex; align-items:flex-start; gap:.6rem; line-height:1.5; }
.ts-formato-features li:last-child { border-bottom:none; }
.ts-formato-features li::before { content:''; display:inline-block; width:14px; height:14px; background:var(--base); -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center / 14px; mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center / 14px; flex-shrink:0; margin-top:4px; }
.ts-formato-cta { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.95rem 1.4rem; background:var(--text); color:#fff; border-radius:var(--radius-pill); font-family:var(--sans); font-size:.78rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; text-align:center; transition:background .3s, transform .3s, box-shadow .3s; }
.ts-formato-cta:hover { background:var(--base-dk); transform:translateY(-2px); box-shadow:0 8px 22px rgba(37,32,24,.18); }
.ts-formato.featured .ts-formato-cta { background:var(--base); }
.ts-formato.featured .ts-formato-cta:hover { background:var(--base-dk); }
.ts-formato-cta svg { width:14px; height:14px; fill:none; stroke:currentColor; }

/* ═══ RESPONSIVE ═══ */
@media (max-width:1024px) {
  .ts-main-inner { grid-template-columns:1fr; gap:2.5rem; }
  .ts-main-inner--full { max-width:100%; }
  .ts-incl-grid { grid-template-columns:1fr 1fr; }
  .ts-formatos-grid { grid-template-columns:1fr; gap:1.4rem; }
  .ts-aside { position:static; order:-1; max-width:480px; margin:0 auto; width:100%; }
  .ts-proc-card { grid-template-columns:160px 1fr; gap:1.8rem; }
  .ts-quien-inner { grid-template-columns:1fr; gap:2.4rem; }
  .ts-test-grid { grid-template-columns:1fr 1fr; }
  .ts-cta-inner { grid-template-columns:1fr; gap:2rem; }
  .ts-gallery-grid { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:720px) {
  .ts-back { padding:0 1.4rem; }
  .ts-hero { min-height:78vh; padding:7.5rem 0 3rem; }
  .ts-hero-inner { padding:0 1.4rem; }
  .ts-hero-meta { gap:1rem 1.6rem; }
  .ts-main { padding:3.5rem 1.4rem; }
  .ts-includes { grid-template-columns:1fr; }
  .ts-incl-grid { grid-template-columns:1fr; }
  .ts-quote { padding:1.4rem 1.5rem; }
  .ts-includes-sec, .ts-formatos, .ts-proceso, .ts-quien, .ts-warning, .ts-test-sec, .ts-gallery-sec, .ts-faq-sec, .ts-form-sec, .ts-cta { padding:3.5rem 1.4rem; }
  .ts-proc-card { grid-template-columns:1fr; gap:.9rem; padding:1.8rem 1.6rem; }
  .ts-proc-num { font-size:2.4rem; }
  .ts-warning-box { padding:1.8rem 1.6rem; }
  .ts-test-grid { grid-template-columns:1fr; }
  .ts-gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:130px; }
  .ts-gallery-item.big, .ts-gallery-item.tall, .ts-gallery-item.wide { grid-column:span 2; grid-row:span 1; }
}
