/* CTA insertables en textos + landing pages */
.cta-box { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: start; margin: 2.2em 0; padding: clamp(22px, 3vw, 34px); background: linear-gradient(135deg, var(--moss-tint), #f4efe2); border: 1px solid #d3dfcd; border-radius: var(--radius-lg); position: relative; overflow: hidden; box-shadow: var(--shadow); }
.cta-box::before { content: ''; position: absolute; right: -60px; top: -60px; width: 190px; height: 190px; border-radius: 50%; background: rgba(200,155,60,.13); pointer-events: none; }
.cta-box__ic { width: 58px; height: 58px; border-radius: 18px; background: var(--moss); color: #fff; display: grid; place-items: center; flex: none; position: relative; }
.cta-box--whatsapp .cta-box__ic { background: #25a55a; }
.cta-box__body { min-width: 0; position: relative; }
.prose .cta-box h3, .cta-box h3 { font-size: clamp(1.5rem, 2.6vw, 2rem); color: var(--ocre-d); margin: 0 0 .25em; }
.prose .cta-box p, .cta-box p { color: var(--ink-2); margin: 0 0 1.1rem; font-size: 1rem; }
.cta-box .btn { text-decoration: none; }
.btn--wa { --bg: #25a55a; border-color: #25a55a; }
.btn--wa:hover { --bg: #1e8c4b; border-color: #1e8c4b; box-shadow: 0 14px 26px -12px rgba(37,165,90,.7); }
.cta-form { display: grid; gap: 12px; }
.cta-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cta-form .field label { font-size: .85rem; }
.cta-form .field input, .cta-form .field select, .cta-form .field textarea { padding: 11px 14px; border-radius: 12px; }
.cta-form .field textarea { min-height: 80px; }
.cta-form .btn { justify-self: start; }
.cta-form__msg { margin: 0; }
.cta-form.is-done > *:not(.cta-form__msg) { display: none; }
@media (max-width: 620px) {
  .cta-box { grid-template-columns: 1fr; gap: 14px; }
  .cta-form__row { grid-template-columns: 1fr; }
  .cta-form .btn { justify-self: stretch; }
}

/* ---------- Landing pages ---------- */
body.landing .nav { position: relative; }
.lbar { background: rgba(255,255,255,.96); border-bottom: 1px solid var(--cream-2); position: sticky; top: 0; z-index: 100; backdrop-filter: blur(10px); }
.lbar__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 70px; }
.lbar__logo img { height: 46px; width: auto; }
.lbar__acts { display: flex; gap: 10px; align-items: center; }
.lbar__tel { font-weight: 500; color: var(--ink); text-decoration: none; display: inline-flex; gap: 8px; align-items: center; }
.lbar__tel:hover { color: var(--ocre-d); }
.lhero { position: relative; color: #fff; overflow: hidden; background: var(--moss-d); }
.lhero__bg { position: absolute; inset: 0; }
.lhero__bg img { width: 100%; height: 100%; object-fit: cover; animation: hcarZoom 14s ease-out forwards; }
.lhero__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(30,34,28,.82), rgba(30,34,28,.55) 55%, rgba(30,34,28,.35)); }
.lhero__in { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(26px, 5vw, 70px); align-items: center; padding: clamp(50px, 8vw, 110px) 0; }
.lhero__in--solo { grid-template-columns: minmax(0, 760px); }
.lhero h1 { font-size: clamp(2.3rem, 5.4vw, 4.2rem); color: var(--ocre-l); line-height: 1.06; margin-bottom: .35em; text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.lhero__sub { font-size: clamp(1.05rem, 1.8vw, 1.3rem); color: rgba(255,255,255,.94); max-width: 52ch; margin-bottom: 1.6rem; }
.lhero__perks { list-style: none; padding: 0; margin: 1.4rem 0 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: .95rem; color: rgba(255,255,255,.9); }
.lhero__perks li { display: inline-flex; gap: 8px; align-items: center; }
.lhero__perks .icon { color: var(--ocre-l); }
.lhero .cta-box { margin: 0; background: #fff; color: var(--ink); border-color: #fff; box-shadow: 0 30px 60px -25px rgba(0,0,0,.5); grid-template-columns: 1fr; }
.lhero .cta-box .cta-box__ic { display: none; }
.lhero .cta-box::before { display: none; }
.landing-body { padding: clamp(46px, 6vw, 86px) 0; }
.lfinal { background: var(--moss); color: #fff; padding: clamp(46px, 6vw, 80px) 0; text-align: center; }
.lfinal .cta-box { margin: 0 auto; max-width: 760px; background: #fff; text-align: left; }
.lfoot { padding: 26px 0; text-align: center; font-size: .88rem; color: var(--ink-2); border-top: 1px solid var(--cream-2); background: #fff; }
.lfoot a { color: var(--ink-2); margin: 0 10px; }
.lmobar { display: none; }
@media (max-width: 860px) {
  .lhero__in { grid-template-columns: 1fr; }
  .lbar__tel span { display: none; }
  .lmobar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.97); border-top: 1px solid var(--cream-2); z-index: 120; box-shadow: 0 -10px 30px -16px rgba(0,0,0,.3); }
  .lmobar .btn { padding: .85em .6em; font-size: .95rem; }
  body.landing.has-mobar { padding-bottom: 76px; }
  body.landing.has-mobar .fab-wa { display: none; }
  body.landing.has-mobar .to-top { bottom: 90px; }
}

.cta-box a.btn--primary, .cta-box a.btn--primary:hover { color: #fff; }

.btn--lg { padding: 1.1em 2.1em; font-size: 1.08rem; }
