/* LoyaltyDog Lead Magnet — landing card + form styling (SAM-37)
 * Scoped to .ld-lm-wrap so it never leaks into other Elementor pages.
 * Brand tokens mirror the .ld-* blog system (see Vault Lee-Bernstein-Blog.md). */

.ld-lm-wrap {
  --ld-red: #CC1F39;
  --ld-red-dark: #B11A30;
  --ld-red-light: #FFF0F2;
  --ld-teal: #54A6A7;
  --ld-teal-pale: #E4F1F1;
  --ld-yellow: #FCDA48;
  --ld-near-black: #1B1F23;
  --ld-dark-grey: #3D4248;
  --ld-muted-grey: #5A5A5A;
  --ld-rule: #E6E6E6;
  --ld-off-white: #FAFAF8;
  --ld-head: "MoveSans", Arial, "Helvetica Neue", sans-serif;
  --ld-body: "Source Serif 4", Georgia, serif;

  min-height: 78vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 20px;
  background:
    radial-gradient(1200px 600px at 78% 30%, var(--ld-red-light) 0%, rgba(255,240,242,0) 60%),
    var(--ld-off-white);
}

.ld-lm-card {
  width: 100%;
  max-width: 880px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(27,31,35,0.14), 0 2px 8px rgba(27,31,35,0.06);
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
}

/* Left rail — the pitch */
.ld-lm-pitch {
  padding: 36px 32px;
  background: linear-gradient(160deg, #fff 0%, var(--ld-red-light) 140%);
  border-right: 1px solid var(--ld-rule);
}
.ld-lm-logo { height: 26px; width: auto; display: block; margin-bottom: 22px; }
.ld-lm-badge {
  display: inline-block;
  font-family: var(--ld-head);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ld-near-black);
  background: var(--ld-yellow);
  padding: 5px 10px;
  border-radius: 999px;
  margin-bottom: 16px;
}
.ld-lm-title {
  font-family: var(--ld-head);
  font-weight: 800;
  font-size: clamp(26px, 3.4vw, 34px);
  line-height: 1.08;
  color: var(--ld-near-black);
  margin: 0 0 12px;
}
.ld-lm-title em { color: var(--ld-red); font-style: normal; }
.ld-lm-sub {
  font-family: var(--ld-body);
  font-size: 16px;
  line-height: 1.55;
  color: var(--ld-muted-grey);
  margin: 0 0 20px;
}
.ld-lm-cover { margin-top: 8px; }
.ld-lm-cover img {
  width: 160px; height: auto; display: block;
  filter: drop-shadow(0 10px 18px rgba(27,31,35,0.18));
}

/* Right rail — the form */
.ld-lm-form { padding: 34px 32px; }
.ld-lm-form-head {
  font-family: var(--ld-head); font-weight: 800;
  font-size: 18px; color: var(--ld-near-black); margin: 0 0 4px;
}
.ld-lm-form-sub {
  font-family: var(--ld-body); font-size: 13px; color: var(--ld-muted-grey);
  margin: 0 0 18px;
}

/* WPForms overrides — scoped */
.ld-lm-form .wpforms-field-label {
  font-family: var(--ld-head); font-weight: 700; font-size: 11px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--ld-dark-grey);
}
.ld-lm-form input[type=text],
.ld-lm-form input[type=email],
.ld-lm-form input[type=tel] {
  width: 100%; border: 1px solid var(--ld-rule); border-radius: 10px;
  padding: 12px 14px; font-family: var(--ld-body); font-size: 15px;
  background: var(--ld-off-white); transition: border-color .15s, box-shadow .15s;
}
.ld-lm-form input:focus {
  outline: none; border-color: var(--ld-teal);
  box-shadow: 0 0 0 3px var(--ld-teal-pale);
}
.ld-lm-form .wpforms-field-description {
  font-family: var(--ld-body); font-size: 12px; color: var(--ld-muted-grey);
}
.ld-lm-form .wpforms-field-checkbox label { font-family: var(--ld-body); font-size: 13px; color: var(--ld-dark-grey); }

.ld-lm-form .wpforms-submit,
.ld-lm-form button[type=submit] {
  width: 100%; border: 0; cursor: pointer; color: #fff;
  font-family: var(--ld-head); font-weight: 800; font-size: 16px;
  letter-spacing: 0.01em; padding: 14px 18px; border-radius: 12px;
  background: linear-gradient(180deg, var(--ld-red) 0%, var(--ld-red-dark) 100%);
  box-shadow: 0 8px 20px rgba(204,31,57,0.30); transition: transform .08s, box-shadow .15s;
}
.ld-lm-form .wpforms-submit:hover { box-shadow: 0 10px 26px rgba(204,31,57,0.38); }
.ld-lm-form .wpforms-submit:active { transform: translateY(1px); }

.ld-lm-foot {
  margin-top: 14px; font-family: var(--ld-body); font-size: 12px;
  color: var(--ld-muted-grey); text-align: center;
}
.ld-lm-foot a { color: var(--ld-red); text-decoration: underline; }

@media (max-width: 720px) {
  .ld-lm-card { grid-template-columns: 1fr; }
  .ld-lm-pitch { border-right: 0; border-bottom: 1px solid var(--ld-rule); }
  .ld-lm-cover img { width: 120px; }
}

/* --- Thank-you / download page (SAM-38) — single centered column --- */
.ld-lm-card.ld-lm-thanks {
  grid-template-columns: 1fr;
  max-width: 560px;
  text-align: center;
}
.ld-lm-thanks .ld-lm-pitch {
  border-right: 0;
  padding: 48px 40px 44px;
  background: linear-gradient(180deg, #fff 0%, var(--ld-red-light) 160%);
}
.ld-lm-thanks .ld-lm-logo { margin: 0 auto 22px; }
.ld-lm-thanks .ld-lm-cover img { margin: 0 auto 8px; width: 150px; }
.ld-lm-thanks .ld-lm-title { margin-top: 6px; }
.ld-lm-thanks .ld-lm-sub { margin-bottom: 24px; }
.ld-lm-download {
  display: inline-block; text-decoration: none; color: #fff;
  font-family: var(--ld-head); font-weight: 800; font-size: 16px;
  padding: 14px 28px; border-radius: 12px;
  background: linear-gradient(180deg, var(--ld-red) 0%, var(--ld-red-dark) 100%);
  box-shadow: 0 8px 20px rgba(204,31,57,0.30); transition: box-shadow .15s, transform .08s;
}
.ld-lm-download:hover { box-shadow: 0 10px 26px rgba(204,31,57,0.38); color:#fff; }
.ld-lm-download:active { transform: translateY(1px); }
.ld-lm-next { margin-top: 20px; font-family: var(--ld-body); font-size: 14px; }
.ld-lm-next a { color: var(--ld-teal); text-decoration: none; font-weight: 600; }
.ld-lm-next a:hover { text-decoration: underline; }

/* === Full post-verification download page (SAM-38, Lee's "good human" design) === */
.ldg-page {
  --ld-red: #CC1F39; --ld-red-dark: #B11A30; --ld-near-black: #1B1F23;
  --ld-muted: #5A5A5A; --ld-rule: #E6E6E6; --ld-off: #FAFAF8;
  font-family: "Source Serif 4", Georgia, serif;
  color: var(--ld-near-black); background: #fff; max-width: 1080px; margin: 0 auto;
  padding: 0 24px 64px;
}
.ldg-page h1, .ldg-page h2, .ldg-page h3, .ldg-head, .ldg-startfree,
.ldg-download, .ldg-eyebrow, .ldg-ch-num, .ldg-cta-eyebrow, .ldg-cta-btn, .ldg-verified {
  font-family: "MoveSans", Arial, "Helvetica Neue", sans-serif;
}
.ldg-head { display: flex; align-items: center; justify-content: space-between; padding: 22px 0; }
.ldg-logo { height: 22px; width: auto; }
.ldg-startfree {
  background: var(--ld-red); color: #fff; text-decoration: none; font-weight: 800;
  font-size: 13px; padding: 9px 18px; border-radius: 9px;
}
.ldg-hero { display: grid; grid-template-columns: 1.2fr .8fr; gap: 32px; align-items: center; padding: 24px 0 56px; }
.ldg-verified {
  display: inline-block; background: #E7F6EC; color: #1E7A43; font-weight: 800;
  font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 999px; margin-bottom: 18px;
}
.ldg-hero-text h1 { font-size: clamp(34px, 5vw, 52px); line-height: 1.04; margin: 0 0 16px; font-weight: 800; }
.ldg-hero-text h1 em { color: var(--ld-red); font-style: normal; }
.ldg-hero-text p { font-size: 18px; line-height: 1.55; color: var(--ld-muted); margin: 0 0 24px; max-width: 30em; }
.ldg-download {
  display: inline-block; background: linear-gradient(180deg, var(--ld-red), var(--ld-red-dark));
  color: #fff; text-decoration: none; font-weight: 800; font-size: 17px;
  padding: 15px 30px; border-radius: 12px; box-shadow: 0 10px 24px rgba(204,31,57,.28);
}
.ldg-download:hover { color:#fff; box-shadow: 0 12px 30px rgba(204,31,57,.36); }
.ldg-meta { font-family: "Source Serif 4", Georgia, serif; font-size: 13px; color: #9a9a9a; margin: 12px 0 0; }
.ldg-hero-cover { text-align: center; }
.ldg-hero-cover img { width: 260px; max-width: 100%; filter: drop-shadow(0 18px 36px rgba(27,31,35,.22)); }
.ldg-inside { border-top: 1px solid var(--ld-rule); padding: 44px 0 0; }
.ldg-eyebrow, .ldg-cta-eyebrow { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ld-red); font-weight: 800; margin: 0 0 10px; }
.ldg-inside h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.12; margin: 0 0 32px; max-width: 20em; font-weight: 800; }
.ldg-chapters { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ldg-chapter { background: var(--ld-off); border: 1px solid var(--ld-rule); border-radius: 14px; padding: 20px; }
.ldg-ch-num { display: block; font-size: 11px; letter-spacing: .08em; color: var(--ld-red); font-weight: 800; margin-bottom: 8px; }
.ldg-chapter h3 { font-size: 18px; margin: 0 0 8px; font-weight: 800; }
.ldg-chapter p { font-size: 14px; line-height: 1.5; color: var(--ld-muted); margin: 0; }
.ldg-ctacard {
  margin-top: 48px; background: var(--ld-near-black); color: #fff;
  border-radius: 20px; padding: 44px 40px; text-align: left;
}
.ldg-ctacard h2 { font-size: clamp(26px, 3.4vw, 36px); line-height: 1.1; margin: 6px 0 14px; font-weight: 800; color: #fff; }
.ldg-ctacard p { color: #c9ccd1; font-size: 16px; line-height: 1.55; margin: 0 0 22px; max-width: 34em; }
.ldg-cta-btn {
  display: inline-block; background: var(--ld-red); color: #fff; text-decoration: none;
  font-weight: 800; font-size: 16px; padding: 14px 26px; border-radius: 12px; margin-right: 18px;
}
.ldg-cta-btn:hover { color:#fff; background: var(--ld-red-dark); }
.ldg-cta-link { color: #fff; text-decoration: underline; font-family: "Source Serif 4", Georgia, serif; font-size: 15px; }
.ldg-cta-link:hover { color:#fff; }
.ldg-foot { text-align: center; color: #9a9a9a; font-size: 13px; padding: 36px 0 0; }
.ldg-foot a { color: #9a9a9a; }
@media (max-width: 760px) {
  .ldg-hero { grid-template-columns: 1fr; gap: 20px; }
  .ldg-hero-cover { order: -1; }
  .ldg-chapters { grid-template-columns: 1fr; }
}

/* === Lead-magnet landing: hero + form popup (SAM-37/41, Lee's full concept) === */
.ldh-page {
  --ld-red:#CC1F39; --ld-red-dark:#B11A30; --ld-red-light:#FFF0F2; --ld-teal:#54A6A7;
  --ld-yellow:#FCDA48; --ld-near-black:#1B1F23; --ld-muted:#5A5A5A; --ld-off:#FAFAF8;
  position: relative; min-height: 100vh; overflow: hidden;
  background: radial-gradient(1100px 560px at 80% 20%, var(--ld-red-light) 0%, rgba(255,240,242,0) 60%), var(--ld-off);
  font-family: "Source Serif 4", Georgia, serif;
}
.ldh-nav { display:flex; align-items:center; justify-content:space-between; padding:20px 40px; max-width:1180px; margin:0 auto; }
.ldh-nav img { height:22px; }
.ldh-nav-links { display:flex; gap:26px; align-items:center; }
.ldh-nav-links a { font-family:"MoveSans",Arial,sans-serif; font-size:14px; color:var(--ld-near-black); text-decoration:none; font-weight:600; }
.ldh-startfree { background:var(--ld-red); color:#fff !important; padding:9px 18px; border-radius:9px; font-weight:800 !important; }
.ldh-hero { max-width:1180px; margin:0 auto; padding:36px 40px 80px; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; }
.ldh-eyebrow { font-family:"MoveSans",Arial,sans-serif; font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ld-red); }
.ldh-hero h1 { font-family:"MoveSans",Arial,sans-serif; font-weight:800; font-size:clamp(40px,5.4vw,62px); line-height:1.02; margin:14px 0 18px; color:var(--ld-near-black); }
.ldh-hero h1 em { color:var(--ld-red); font-style:normal; }
.ldh-hero > .ldh-hero-left > p { font-size:19px; line-height:1.55; color:var(--ld-muted); max-width:30em; margin:0 0 26px; }
.ldh-cta { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:34px; }
.ldh-btn-primary, .ldh-btn-ghost { font-family:"MoveSans",Arial,sans-serif; font-weight:800; font-size:16px; text-decoration:none; padding:14px 26px; border-radius:12px; }
.ldh-btn-primary { background:linear-gradient(180deg,var(--ld-red),var(--ld-red-dark)); color:#fff; box-shadow:0 10px 24px rgba(204,31,57,.28); }
.ldh-btn-ghost { background:#fff; color:var(--ld-near-black); border:1px solid var(--ld-rule,#E6E6E6); }
.ldh-stats { display:flex; gap:34px; }
.ldh-stat-n { font-family:"MoveSans",Arial,sans-serif; font-weight:800; font-size:26px; color:var(--ld-near-black); }
.ldh-stat-l { font-size:13px; color:var(--ld-muted); }
.ldh-hero-right { display:flex; justify-content:center; align-items:flex-end; gap:0; position:relative; }
.ldh-card { width:280px; border-radius:22px; padding:24px; color:#fff; background:linear-gradient(150deg,var(--ld-red) 0%,var(--ld-red-dark) 100%); box-shadow:0 26px 60px rgba(204,31,57,.32); }
.ldh-card-top { display:flex; justify-content:space-between; align-items:center; font-family:"MoveSans",Arial,sans-serif; font-weight:800; letter-spacing:.04em; }
.ldh-card-pts { background:rgba(255,255,255,.18); padding:4px 10px; border-radius:999px; font-size:12px; }
.ldh-card h4 { font-family:"MoveSans",Arial,sans-serif; font-weight:800; font-size:20px; margin:26px 0 6px; line-height:1.15; }
.ldh-card-sub { font-size:13px; opacity:.85; }
.ldh-card-foot { margin-top:30px; padding-top:14px; border-top:1px solid rgba(255,255,255,.25); font-size:13px; }
.ldh-card-foot strong { display:block; font-family:"MoveSans",Arial,sans-serif; }
.ldh-mascot { width:120px; margin-left:-30px; align-self:flex-end; }

/* form popup modal over the hero */
.ldh-backdrop { position:absolute; inset:0; background:rgba(27,31,35,.34); backdrop-filter:blur(2px); z-index:5; }
.ldh-modal { position:absolute; inset:0; z-index:6; display:flex; align-items:center; justify-content:center; padding:24px; }
.ldh-modal .ld-lm-card { max-width:840px; box-shadow:0 40px 90px rgba(27,31,35,.34); }
@media (max-width:860px){
  /* On mobile the "hero + overlay modal" pattern breaks (absolute modal inside an
     overflow:hidden hero clips the tall form card). Let the form card flow normally
     below a stacked hero instead. */
  .ldh-page { overflow:visible; min-height:auto; }
  .ldh-hero { grid-template-columns:1fr; padding:24px 24px 28px; }
  .ldh-hero-right { display:none; }
  .ldh-nav-links { display:none; }
  .ldh-nav { padding:18px 24px; }
  .ldh-backdrop { display:none; }
  .ldh-modal { position:static; inset:auto; display:block; padding:0 16px 44px; }
  .ldh-modal .ld-lm-card { max-width:none; box-shadow:0 16px 40px rgba(27,31,35,.16); }
}

/* === Home-page pop-up overlay (SAM-41). In the enqueued file (not inline) + RUCSS-
   safelisted so WP Rocket's Remove-Unused-CSS doesn't strip the JS-toggled .ld-open. === */
.ld-popup{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:20px;}
.ld-popup.ld-open{display:flex;}
.ld-popup-backdrop{position:absolute;inset:0;background:rgba(27,31,35,.5);backdrop-filter:blur(2px);}
.ld-popup-dialog{position:relative;z-index:1;width:100%;max-width:820px;animation:ldpop .28s ease;}
.ld-popup-dialog .ld-lm-card{box-shadow:0 40px 90px rgba(27,31,35,.4);}
.ld-popup-x{position:absolute;top:-14px;right:-14px;z-index:2;width:36px;height:36px;border:0;border-radius:999px;background:#fff;color:#1B1F23;font-size:22px;line-height:1;cursor:pointer;box-shadow:0 6px 16px rgba(27,31,35,.28);}
.ld-popup-x:hover{background:#FFF0F2;color:#CC1F39;}
@keyframes ldpop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:560px){.ld-popup-x{top:6px;right:6px;}}
