/* FR Tree Service landing pages (lp.frtreeservice.com): additions on top of the main site's styles.css.
   Colors, fonts and components all come from the site's tokens. */

/* header: no nav on ad pages, just logo, quote jump and call */
.lp-header .hdr-cta { margin-left: auto; }
.lp-header .logo { cursor: default; }

/* the call button is the main action: bigger, with a soft pulse (frozen for reduced motion) */
.btn-call { position: relative; font-weight: 700; }
.btn-lg.btn-call { min-height: 60px; padding-inline: 32px; font-size: 1.12rem; }
.btn-call::after { content: ""; position: absolute; inset: -4px; border-radius: inherit; border: 2px solid var(--accent); opacity: 0; animation: call-pulse 2.4s ease-out infinite; pointer-events: none; }
@keyframes call-pulse { 0% { opacity: .7; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .btn-call::after { animation: none; } }
.btn-row.center { justify-content: center; }
.lp-block-copy .btn-row, .faq-wrap .btn-row { margin-top: 24px; }

/* stats strip */
.lp-stats { padding: clamp(20px, 3vw, 32px) 0; }
.stat-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; text-align: center; }
.stat-list strong { display: block; font: 800 clamp(1.8rem, 3.4vw, 2.6rem)/1 var(--head); color: var(--accent); text-transform: uppercase; }
.stat-list span { display: block; margin-top: 6px; font-size: .9rem; color: var(--text-2); }
@media (max-width: 700px) { .stat-list { grid-template-columns: 1fr 1fr; gap: 20px 12px; } }

/* image + text blocks */
.lp-block { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.lp-block-rev .lp-block-media { order: 2; }
.lp-block-media img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
@media (max-width: 900px) { .lp-block { grid-template-columns: 1fr; } .lp-block-rev .lp-block-media { order: 0; } }

/* three "why" cards */
.reason-list.lp-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .reason-list.lp-3 { grid-template-columns: 1fr; } }

/* reviews */
.review-src { display: block; margin-top: 4px; font: 500 .8rem/1 var(--body); text-transform: none; letter-spacing: 0; color: var(--muted); }

/* form extras for js/ghl-form.js */
.lp-form .err { display: block; min-height: 0; margin-top: 4px; font-size: .8rem; font-weight: 600; color: var(--danger); }
.lp-form .err:empty { display: none; }
.lp-form [aria-invalid="true"] { border-color: var(--danger) !important; }
.form-status:empty { display: none; }
.form-status { margin: 12px 0 0; padding: 10px 14px; border-radius: 10px; background: rgba(255, 138, 122, .14); border: 1px solid rgba(255, 138, 122, .5); font-size: .9rem; }
.form-note { margin: 8px 0 0; text-align: center; font-size: .78rem; }
@media (min-width: 961px) and (max-height: 760px) { .hero-form .form-sub, .hero-form .form-note { display: none; } }

/* phones: the fixed bar already has Free quote */
@media (max-width: 600px) { .hero .btn-row .hero-quote { display: none; } .hero .btn-call { width: 100%; } }

/* footer */
.lp-foot { display: grid; grid-template-columns: auto 1fr; gap: 32px; align-items: center; }
.lp-foot-info p { margin: 0 0 6px; color: var(--muted); }
.lp-foot-info strong { color: var(--text); }
.lp-foot-call a { font: 700 1.4rem/1 var(--head); text-decoration: none; }
@media (max-width: 700px) { .lp-foot { grid-template-columns: 1fr; } }
@media (max-width: 900px) { body.lp { padding-bottom: 76px; } }

/* four steps: 4 across on desktop, 2 on tablets (site default is 3) */
.lp .step-list { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .lp .step-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .lp .step-list { grid-template-columns: 1fr; } }
