/* =========================================================
   TORAM · Captación de leads (compartido en todas las páginas)
   - Pop-up de "Agenda tu visita" (no invasivo, esquina inferior)
   - Ventana con el formulario de HubSpot
   - Barra fija de CTA en móvil
   - Bloques de apoyo: CTAs del hero, pasos, FAQ, micro-confianza
   Usa colores fijos de marca para verse igual en todas las páginas.
   ========================================================= */
:root{
  --tl-deep:#061f21; --tl-green:#0d4749; --tl-gold:#b59429; --tl-gold-pale:#e6cd80;
  --tl-cream:#f4efe4; --tl-ease:cubic-bezier(.16,1,.3,1);
  --tl-sans:'Poppins','Raleway',system-ui,-apple-system,'Segoe UI',sans-serif;
  --tl-serif:'Seasons',Georgia,'Times New Roman',serif;
}

/* ---------- POP-UP (tarjeta no modal) ---------- */
.tl-pop{
  position:fixed; right:24px; bottom:24px; z-index:90; width:min(380px, calc(100vw - 32px));
  background:var(--tl-deep); color:var(--tl-cream); font-family:var(--tl-sans);
  border:1px solid rgba(181,148,41,.45); box-shadow:0 24px 60px rgba(0,0,0,.5);
  overflow:hidden; opacity:0; transform:translateY(24px); pointer-events:none;
  transition:opacity .6s var(--tl-ease), transform .6s var(--tl-ease);
}
.tl-pop.on{opacity:1; transform:none; pointer-events:auto}
.tl-pop-img{height:118px; background-size:cover; background-position:center; position:relative}
.tl-pop-img::after{content:''; position:absolute; inset:0; background:linear-gradient(to top, var(--tl-deep), rgba(6,31,33,.15))}
.tl-pop-body{padding:4px 26px 24px; position:relative}
.tl-pop-tag{display:inline-block; font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--tl-gold); margin-bottom:10px}
.tl-pop h2{font-family:var(--tl-serif); font-weight:700; font-size:25px; line-height:1.12; margin:0 0 10px; color:var(--tl-cream)}
.tl-pop h2 em{font-style:normal; color:var(--tl-gold-pale)}
.tl-pop p{font-size:13.5px; line-height:1.6; color:rgba(244,239,228,.8); font-weight:300; margin:0 0 8px}
.tl-pop .tl-note{font-size:11.5px; line-height:1.5; color:rgba(244,239,228,.55); margin:0 0 18px; padding-left:10px; border-left:2px solid rgba(181,148,41,.5)}
.tl-pop-actions{display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.tl-pop-later{background:none; border:0; cursor:pointer; color:rgba(244,239,228,.6); font-family:var(--tl-sans); font-size:12px; text-decoration:underline; text-underline-offset:3px; padding:6px 0}
.tl-pop-later:hover{color:var(--tl-cream)}
.tl-x{
  position:absolute; top:10px; right:10px; z-index:3; width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:rgba(6,31,33,.75); color:var(--tl-cream); border:1px solid rgba(181,148,41,.4); font-size:20px; line-height:1;
  transition:background .3s, color .3s;
}
.tl-x:hover, .tl-x:focus-visible{background:var(--tl-gold); color:var(--tl-deep)}

/* Botón principal (independiente de la paleta de cada página) */
.tl-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; cursor:pointer; border:0;
  background:var(--tl-gold); color:var(--tl-deep); font-family:var(--tl-sans); font-weight:600;
  font-size:12px; letter-spacing:.12em; text-transform:uppercase; padding:14px 22px; text-decoration:none;
  transition:background .35s, transform .35s var(--tl-ease);
}
.tl-btn:hover{background:var(--tl-gold-pale); transform:translateY(-2px)}
.tl-btn::after{content:'\2192'; font-size:14px; transition:transform .35s var(--tl-ease)}
.tl-btn:hover::after{transform:translateX(5px)}
.tl-btn.ghost{background:transparent; color:var(--tl-cream); border:1px solid rgba(244,239,228,.45)}
.tl-btn.ghost:hover{background:rgba(244,239,228,.1); border-color:var(--tl-cream)}

/* ---------- VENTANA CON FORMULARIO ---------- */
.tl-modal{position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; padding:20px; visibility:hidden; opacity:0; transition:opacity .4s var(--tl-ease), visibility 0s .4s}
.tl-modal.on{visibility:visible; opacity:1; transition:opacity .4s var(--tl-ease)}
.tl-modal-bg{position:absolute; inset:0; background:rgba(3,14,15,.78); backdrop-filter:blur(4px)}
.tl-modal-box{
  position:relative; width:min(980px,100%); max-height:calc(100vh - 40px); overflow:auto;
  display:grid; grid-template-columns:.9fr 1.1fr; background:var(--tl-deep); color:var(--tl-cream); font-family:var(--tl-sans);
  border:1px solid rgba(181,148,41,.4); box-shadow:0 30px 80px rgba(0,0,0,.6);
  transform:translateY(20px) scale(.98); transition:transform .5s var(--tl-ease);
}
.tl-modal.on .tl-modal-box{transform:none}
.tl-modal-side{padding:46px 38px; background:linear-gradient(160deg, rgba(13,71,73,.9), rgba(6,31,33,.95)), var(--tl-side) center/cover; display:flex; flex-direction:column}
.tl-modal-side .tl-pop-tag{margin-bottom:14px}
.tl-modal-side h2{font-family:var(--tl-serif); font-weight:700; font-size:clamp(26px,2.6vw,36px); line-height:1.1; margin:0 0 14px}
.tl-modal-side h2 em{font-style:normal; color:var(--tl-gold-pale); display:block}
.tl-modal-side p{font-size:14px; line-height:1.7; color:rgba(244,239,228,.8); font-weight:300; margin:0 0 18px}
.tl-checks{list-style:none; margin:4px 0 0; padding:18px 0 0; border-top:1px solid rgba(181,148,41,.25); display:flex; flex-direction:column; gap:11px}
.tl-checks li{font-size:13px; line-height:1.5; color:rgba(244,239,228,.88); display:flex; gap:10px; align-items:flex-start}
.tl-checks li::before{content:''; flex:none; width:7px; height:7px; margin-top:6px; border-top:1px solid var(--tl-gold); border-right:1px solid var(--tl-gold); transform:rotate(45deg)}
.tl-modal-form{background:rgba(244,239,228,.98); color:var(--tl-deep); padding:40px 34px 28px; position:relative}
.tl-modal-form h3{font-family:var(--tl-sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--tl-green); margin:0 0 6px; font-weight:600}
.tl-modal-form .tl-sub{font-size:13px; color:rgba(6,31,33,.7); margin:0 0 16px; line-height:1.5}
.tl-modal-form #tlHubspotForm{min-height:120px}
.tl-modal-form iframe{width:100% !important}
.tl-trust{display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:14px; padding-top:14px; border-top:1px solid rgba(6,31,33,.12); font-size:11.5px; color:rgba(6,31,33,.65)}
.tl-trust span::before{content:'\2713'; color:var(--tl-gold); font-weight:700; margin-right:6px}
.tl-modal .tl-x{background:rgba(6,31,33,.85)}

/* Aviso de privacidad bajo los formularios (fondo claro) */
.tl-privacy{display:flex; align-items:flex-start; gap:8px; margin:14px 0 0; font-family:var(--tl-sans); font-size:12px; line-height:1.5; color:rgba(6,31,33,.68); text-align:left}
.tl-privacy i{color:#ad8818; font-size:11px; margin-top:3px}
.tl-privacy a{color:var(--tl-green); font-weight:600; text-decoration:underline; text-underline-offset:2px}
.tl-privacy a:hover{color:#ad8818}
.hubspot-embed:not(.is-ready) .tl-privacy{display:none}
/* Enlace legal del footer */
.copy .flegal{color:inherit; text-decoration:underline; text-underline-offset:3px}
.copy .flegal:hover{color:var(--tl-gold-pale)}
.tl-loading{display:flex; align-items:center; justify-content:center; gap:12px; min-height:120px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--tl-deep)}
.tl-loading i{width:22px; height:22px; border:2px solid rgba(181,148,41,.3); border-top-color:var(--tl-gold); border-radius:50%; animation:tl-spin .8s linear infinite}
@keyframes tl-spin{to{transform:rotate(360deg)}}
.tl-ready .tl-loading{display:none}
html.tl-lock, html.tl-lock body{overflow:hidden}

/* ---------- BARRA FIJA EN MÓVIL ---------- */
.tl-bar{display:none}

/* ---------- BLOQUES DE APOYO ---------- */
.hero-ctas{display:flex; align-items:center; gap:28px; flex-wrap:wrap; margin-top:34px}
.lead-trust{display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:16px; font-size:12px; color:rgba(244,239,228,.62); font-family:var(--tl-sans)}
.lead-trust span::before{content:'\2713'; color:var(--tl-gold); font-weight:700; margin-right:6px}
.acta-ctas{display:flex; justify-content:center; align-items:center; gap:16px; flex-wrap:wrap}

.lead-steps{list-style:none; counter-reset:st; display:flex; flex-direction:column; gap:16px; margin:6px 0 0; padding:24px 0 0; border-top:1px solid rgba(181,148,41,.18)}
.lead-steps li{counter-increment:st; display:grid; grid-template-columns:34px 1fr; gap:14px; align-items:start; font-size:14px; line-height:1.6; color:rgba(244,239,228,.82)}
.lead-steps li::before{content:counter(st); width:34px; height:34px; border-radius:50%; border:1px solid rgba(181,148,41,.6); color:var(--tl-gold-pale); display:flex; align-items:center; justify-content:center; font-family:var(--tl-serif); font-size:15px}
.lead-steps b{display:block; color:var(--tl-cream); font-weight:600; font-size:14px}
.lead-steps-title{font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--tl-gold); margin:30px 0 4px}
/* Variante sobre fondo claro (página de contacto) */
.contact .lead-trust{color:rgba(6,31,33,.7); margin:-14px 0 6px}
.contact .lead-steps li{color:rgba(6,31,33,.78)}
.contact .lead-steps b{color:var(--tl-deep)}
.contact .lead-steps li::before{color:#ad8818; border-color:rgba(173,136,24,.6)}
.contact .lead-steps-title{color:#ad8818}
.contact .lead-steps{max-width:440px; margin-bottom:26px}

.faq{position:relative; padding:110px 48px; background:var(--green-deep, var(--tl-deep)); overflow:hidden; border-top:1px solid rgba(181,148,41,.14)}
.faq .faq-inner{position:relative; z-index:2; max-width:860px; margin:0 auto}
.faq .thead{text-align:center; margin:0 auto 44px}
.faq details{border-bottom:1px solid rgba(181,148,41,.25)}
.faq details:first-of-type{border-top:1px solid rgba(181,148,41,.25)}
.faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 4px; font-size:16.5px; font-weight:500; color:var(--tl-cream)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+'; flex:none; font-size:24px; font-weight:300; color:var(--tl-gold); transition:transform .4s var(--tl-ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:focus-visible{outline:1px solid var(--tl-gold); outline-offset:2px}
.faq details p{padding:0 4px 24px; font-size:15px; line-height:1.75; color:rgba(244,239,228,.75); font-weight:300; max-width:740px}
.faq-cta{text-align:center; margin-top:44px}
.faq-cta p{font-size:15px; color:rgba(244,239,228,.75); margin-bottom:18px}

@media(max-width:900px){
  .tl-pop{right:12px; left:12px; bottom:12px; width:auto}
  .tl-pop-img{height:84px}
  .tl-pop-body{padding:2px 20px 20px}
  .tl-pop h2{font-size:22px}
  .tl-modal{padding:0; align-items:flex-end}
  .tl-modal-box{grid-template-columns:1fr; max-height:94vh; width:100%}
  .tl-modal-side{padding:30px 22px 22px}
  .tl-modal-side .tl-checks{display:none}
  .tl-modal-form{padding:26px 20px 24px}
  .hero-ctas{gap:20px}
  .invest .hero-ctas{justify-content:center}

  /* Inicio (móvil): el contenido del header no debe chocar con el logo ni con "Descubrir / Ser socio" */
  .hero{height:auto; min-height:100vh; min-height:100svh; align-items:flex-end; padding:140px 0 130px}
  .hero .inner > .eyebrow{display:none}
  .hero h1{margin-bottom:20px}
  .hero .hero-ctas{margin-top:26px}
  .hero .lead-trust{margin-top:14px}
  .tl-bar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:85; gap:10px; align-items:center;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(6,31,33,.96); backdrop-filter:blur(10px);
    border-top:1px solid rgba(181,148,41,.35); transform:translateY(110%); transition:transform .5s var(--tl-ease);
  }
  .tl-bar.on{transform:none}
  .tl-bar .tl-btn{flex:1; padding:14px 12px; font-size:11.5px}
  .tl-bar small{flex:none; max-width:42%; font-size:11px; line-height:1.35; color:rgba(244,239,228,.7); font-family:var(--tl-sans)}
  body.tl-has-bar footer{padding-bottom:96px}
  .faq{padding:80px 22px}
  .faq summary{font-size:15.5px}
}
@media(prefers-reduced-motion:reduce){
  .tl-pop, .tl-modal, .tl-modal-box, .tl-bar{transition:none}
}
