/* Campaign landing-page usability improvements, 2026-09-05. */
.landing-page .landing-brand-name { display:block; color:#175b36; font-size:14px; font-weight:600; line-height:1.4; margin:3px 0 5px; }
.landing-page .logo-sec { position:relative; }
.landing-page .logo-sec .logo img { height:auto; }
.landing-page .logo-sec img.logo { max-width:100%; }
.landing-page .bg-form h4, .landing-page .home-form-cstm h4, .landing-page .calendly-form h4 { max-width:100%; width:auto; white-space:normal; box-sizing:border-box; line-height:1.4; }
.landing-page .landing-eyebrow { color:#b8efa8; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.landing-page .bg-img { position:relative; background-color:#10271c; }
.landing-page .bg-img::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,23,15,.86),rgba(6,23,15,.55)) !important; pointer-events:none; }
.landing-page .bg-img > .container { position:relative; z-index:1; }
.landing-page .landing-service-title { font-size:clamp(1.9rem,3.5vw,3.1rem); line-height:1.12; margin-bottom:16px; }
.landing-page .landing-service-intro { font-size:17px; line-height:1.6; margin-bottom:18px; }
.landing-page .intent-subtitle { line-height:1.5; }
.landing-page #quote-form { scroll-margin-top:20px; }
.landing-page .contact-form .contact-field-label { position:static; display:block; width:auto; height:auto; margin:0 0 5px; padding:0; overflow:visible; clip:auto; white-space:normal; font-size:14px; line-height:1.4; font-weight:600; color:#203228; text-align:left; }
.landing-page .home-form-cstm .contact-field-label, .landing-page .home-form-cstm .contact-form-note { color:#fff; }
.landing-page form.contact-form input, .landing-page form.contact-form textarea { font-size:16px; line-height:1.5; padding:12px; border:1px solid #a8b7ad !important; border-radius:6px; min-height:48px; text-transform:none; }
.landing-page form.contact-form textarea { height:auto; min-height:96px; }
.landing-page form.contact-form input:focus, .landing-page form.contact-form textarea:focus { outline:3px solid #1b753d; outline-offset:2px; background:#fff; }
.landing-page .contact-form .captcha-box { width:100%; display:flex; flex-direction:column; align-items:center; gap:14px; }
.landing-page .contact-form .captcha-box .g-recaptcha { transform:none; margin:0; }
.landing-page .contact-form .captcha-box button.btn.btn-primary { min-height:48px; max-width:350px; font-size:16px; }
.landing-page .contact-form-note { color:#435448; font-size:14px; line-height:1.5; text-align:center; }
.landing-page a:focus-visible, .landing-page button:focus-visible, .landing-page summary:focus-visible { outline:3px solid #e5bb29; outline-offset:4px; }
.landing-page .landing-faq { margin:12px 0; padding:18px; border:1px solid #d6dfd9; border-radius:8px; }
.landing-page .landing-faq summary { cursor:pointer; font-weight:600; line-height:1.5; }
.landing-page .landing-faq p { margin:12px 0 0; }
.landing-page .accordion-button { line-height:1.5; }
.landing-page .modal-dialog { width:calc(100% - 24px); max-width:560px; margin:12px auto; }
.landing-page .modal-body { max-height:calc(100dvh - 100px); overflow-y:auto; }
.landing-page footer a { white-space:normal; }
@media (min-width:992px) {
  .landing-page .bg-img > .container > .row.align-items-center { align-items:flex-start !important; }
}
@media (max-width:767.98px) {
  .landing-page { padding-bottom:84px; scroll-padding-bottom:84px; }
  .landing-page .header-main { padding-top:8px; padding-bottom:4px; }
  .landing-page .logo-sec { flex-wrap:wrap; }
  .landing-page .landing-brand-name { order:4; flex-basis:100%; width:100%; text-align:center; font-size:12px; margin:3px 0 0; }
  .landing-page .logo-sec a.logo { max-width:calc(100% - 86px); }
  .landing-page .logo-sec img.logo { max-width:100%; }
  .landing-page .bg-img { padding-top:24px !important; padding-bottom:24px !important; }
  .landing-page .landing-service-title { font-size:30px; line-height:1.15; text-align:center; }
  .landing-page .landing-service-intro { font-size:16px; text-align:center; }
  .landing-page .intent-title { font-size:30px; line-height:1.15; }
  .landing-page .intent-subtitle { font-size:16px; line-height:1.5; }
  .landing-page .bg-form, .landing-page .intent-form { padding:20px 16px !important; }
  .landing-page .bg-form h2 { font-size:25px; line-height:1.2; }
  .landing-page form.contact-form .form-grid { gap:14px; }
  .landing-page form.contact-form .form-grid .half-box { width:100%; }
  .landing-page .contact-form .captcha-box .g-recaptcha { transform:scale(.9); transform-origin:center; }
  .landing-page .mobile-device { gap:8px !important; padding:8px 8px calc(8px + env(safe-area-inset-bottom)); }
  .landing-page .mobile-device .btn { min-height:48px; display:flex; justify-content:center; align-items:center; gap:5px; font-size:14px; line-height:1.3; padding:8px; }
  .landing-page .logo-cstm-banner { flex-wrap:wrap; }
  .landing-page .rating-icon { flex-wrap:wrap; }
  .landing-page #quote-form { scroll-margin-top:12px; }
}
@media (max-width:360px) {
  .landing-page .contact-form .captcha-box .g-recaptcha { transform:scale(.79); }
  .landing-page .mobile-device .btn { font-size:12px; }
}

/* Second review: clearer contact choices and shorter, readable mobile headings. */
.contact-form-required { display:none; }
.landing-page .contact-form-required { display:block; width:100%; margin:0; color:#435448; font-size:13px; text-align:left; }
.landing-page .home-form-cstm .contact-form-required { color:#fff; }
.landing-page .bg-img h1, .landing-page .bg-form h2, .landing-page .home-form-cstm h2 { text-transform:none; font-weight:700; }
.landing-page .booking-availability-note { font-size:14px; line-height:1.5; color:#435448; text-align:center; margin:12px 0; }
.landing-page .booking-progress { font-size:14px; font-weight:600; color:#175b36; text-align:center; margin:12px 0; }
.landing-page .booking-step-error { color:#8e2017; background:#fff0ed; padding:10px; border-radius:6px; font-size:14px; line-height:1.5; }
.landing-page #booking-form input, .landing-page #booking-form select, .landing-page #booking-form textarea { font-size:16px; max-width:100%; }
.landing-page .modal-body { overscroll-behavior:contain; }
.landing-page .logo-slider img { height:auto; }
@media (max-width:767px) {
  .landing-page #quote-form { scroll-margin-top:110px; }
  .landing-page .bg-img h1 { line-height:1.15; }
  .landing-page .intent-title .intent-highlight { font-size:24px; margin-top:8px; }
  .landing-page .bg-form h2 { font-size:25px; margin-bottom:10px; }
  .landing-page .mobile-device .landing-mobile-call { flex-direction:column; gap:2px; font-size:13px; background:#175b36 !important; border-color:#175b36 !important; color:#fff !important; }
  .landing-page .mobile-device .landing-mobile-call span:last-child { font-size:14px; }
  .landing-page .mobile-device .landing-mobile-request { background:#fff !important; border:2px solid #175b36 !important; color:#175b36 !important; }
  .landing-page .mobile-device { background:#fff; box-shadow:0 -2px 10px rgba(0,0,0,.15); }
}

.landing-page .intent-subtitle { font-weight:400; text-shadow:0 1px 2px rgba(0,0,0,.5); }
.landing-page .intent-title { text-shadow:0 2px 4px rgba(0,0,0,.4); }
.landing-page .cstm-form-api h2 { text-transform:none; }

.landing-page .bg-img p.lead { font-size:18px; line-height:1.5; font-weight:400; }
@media (max-width:767px) {
  .landing-page .bg-img h1 { font-size:30px; }
  .landing-page .bg-img p.lead { font-size:16px; line-height:1.5; }
}
