/* =====================================================================
 * Popups — site-wide popup system (Made Solid).
 *
 * Ported verbatim in spirit from the approved mockup at
 * previews/popups.html. Four layouts: centered card, corner slide-in,
 * full-width bar, card-with-photo. All markup is wrapped in .msc-popups
 * and every selector is scoped under it, so nothing here can leak onto
 * the rest of the site (same isolation model as .home-v2 / .blog-v2).
 *
 * Reuses the global .btn / .eyebrow / .mk components from style.css.
 * Open/close is driven by an .is-open class on each .msc-pop root, added
 * by js/popups.js. Reduced-motion safe.
 * ===================================================================== */

.msc-popups{
  /* popup-local token overrides (the few that differ from / are missing
     in the global :root — kept scoped so they can't affect anything else). */
  --rule-strong:color-mix(in srgb, var(--ink) 24%, transparent);
  --card-warm:#FBF5E9;
  --ocean-line:color-mix(in srgb, var(--cream) 18%, transparent);
  --ease:cubic-bezier(.2,.7,.2,1);
  --pop-shadow:0 2px 4px rgba(26,26,26,.06),0 40px 80px -32px rgba(26,26,26,.5);
}

/* a .msc-pop root is a zero-footprint wrapper; its children are fixed. */
.msc-pop{display:contents}

/* ---- shared mechanics ---- */
.msc-popups .pop-overlay{position:fixed;inset:0;background:rgba(26,26,26,.62);backdrop-filter:blur(3px);z-index:80;
  opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.msc-pop.is-open .pop-overlay{opacity:1;pointer-events:auto}

.msc-popups .pop-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);
  background:rgba(251,248,241,.8);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  color:var(--ink-72);transition:background .15s,color .15s,transform .15s;z-index:3;padding:0}
.msc-popups .pop-close:hover{background:var(--paper-bg);color:var(--ink);transform:rotate(90deg)}
.msc-popups .pop-close svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}

/* ---- privacy consent (shared across all forms) ---- */
.msc-popups .consent{display:flex;align-items:flex-start;gap:9px;margin-top:14px;text-align:left;font-size:12.5px;line-height:1.45;color:var(--ink-72);cursor:pointer}
.msc-popups .consent input{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:17px;height:17px;margin:1px 0 0;border:1.5px solid var(--rule-strong);
  border-radius:4px;background:var(--paper-bg);cursor:pointer;position:relative;transition:background .15s,border-color .15s}
.msc-popups .consent input:checked{background:var(--coral-deep);border-color:var(--coral-deep)}
.msc-popups .consent input:checked::after{content:"";position:absolute;left:5px;top:1.5px;width:5px;height:9px;border:solid var(--cream);border-width:0 2px 2px 0;transform:rotate(45deg)}
.msc-popups .consent input:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.msc-popups .consent a{color:var(--coral-deep);text-decoration:underline;text-underline-offset:2px}
.msc-popups .consent.err{color:var(--error)}
.msc-popups .consent.err input{border-color:var(--error)}
.msc-popups .consent.err a{color:var(--error)}
/* on-dark variant of consent */
.msc-popups .on-dark .consent{color:var(--paper-70)}
.msc-popups .on-dark .consent input{background:rgba(251,248,241,.08);border-color:var(--paper-line)}
.msc-popups .on-dark .consent input:checked{background:var(--coral-bright);border-color:var(--coral-bright)}
.msc-popups .on-dark .consent input:checked::after{border-color:var(--ink)}
.msc-popups .on-dark .consent a{color:#ff9d7d}
.msc-popups .on-dark .consent.err,.msc-popups .on-dark .consent.err a{color:#ff8a8a}
.msc-popups .on-dark .consent.err input{border-color:#ff8a8a}

/* -----------------------------------------------------
   TYPE 1 — CENTERED MODAL CARD  (light + dark-gradient)
   ----------------------------------------------------- */
.msc-popups .pop-center{position:fixed;inset:0;z-index:81;display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none}
.msc-popups .pop-center .card{position:relative;pointer-events:none;width:min(460px,100%);background:var(--paper-bg);color:var(--ink);border-radius:16px;
  border:1px solid var(--rule);box-shadow:var(--pop-shadow);overflow:hidden;text-align:center;padding:44px 40px 40px;
  opacity:0;transform:translateY(18px) scale(.97);transition:opacity .34s var(--ease),transform .34s var(--ease)}
.msc-pop.is-open .pop-center .card{opacity:1;transform:none;pointer-events:auto}
.msc-popups .pop-center .card::before{content:"";position:absolute;left:16px;top:16px;width:18px;height:18px;border-left:2px solid var(--coral);border-top:2px solid var(--coral);opacity:.85;z-index:2}
.msc-popups .pop-center .card::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(var(--coral-dot) 1.5px,transparent 1.6px);
  background-size:12px 12px;-webkit-mask:radial-gradient(120% 90% at 100% 0,#000,transparent 55%);mask:radial-gradient(120% 90% at 100% 0,#000,transparent 55%);opacity:.6}
.msc-popups .pop-center .in{position:relative;z-index:2}
.msc-popups .pop-center .eyebrow{margin-bottom:10px;color:var(--coral-deep)}
.msc-popups .pop-center h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(30px,4.5vw,40px);line-height:.94;letter-spacing:-.4px;margin:0}
.msc-popups .pop-center h3 .c{color:var(--coral)}
.msc-popups .pop-center p{font-size:15.5px;line-height:1.6;color:var(--ink-72);margin:14px auto 0;max-width:40ch}
.msc-popups .pop-center .cta{margin-top:26px;display:flex;flex-direction:column;gap:10px;align-items:center}
.msc-popups .pop-center .dismiss{background:none;border:0;font-family:var(--body);font-size:13px;color:var(--ink-40);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.msc-popups .pop-center .dismiss:hover{color:var(--ink-72)}

/* --- DARK GRADIENT variant --- */
.msc-popups .pop-center.is-dark .card{background:linear-gradient(152deg,var(--ink) 0%,var(--ink) 34%,#7a250e 88%,var(--coral-deep) 116%);border-color:rgba(255,255,255,.08);color:var(--paper)}
.msc-popups .pop-center.is-dark .card::before{border-color:var(--coral-bright)}
.msc-popups .pop-center.is-dark .card::after{background-image:radial-gradient(rgba(255,224,204,.16) 1.5px,transparent 1.6px);opacity:.5}
.msc-popups .pop-center.is-dark .eyebrow{color:#ff9d7d}
.msc-popups .pop-center.is-dark h3{color:var(--paper)}
.msc-popups .pop-center.is-dark h3 .c{color:var(--peach)}
.msc-popups .pop-center.is-dark p{color:var(--paper-70)}
.msc-popups .pop-center.is-dark .dismiss{color:var(--paper-50)}
.msc-popups .pop-center.is-dark .dismiss:hover{color:var(--paper)}
.msc-popups .pop-center.is-dark .pop-close{background:rgba(251,248,241,.1);border-color:var(--paper-line);color:var(--paper-70)}
.msc-popups .pop-center.is-dark .pop-close:hover{background:rgba(251,248,241,.2);color:var(--paper)}

/* -----------------------------------------------------
   TYPE 2 — CORNER SLIDE-IN  (newsletter + consent)
   ----------------------------------------------------- */
.msc-popups .pop-slide{position:fixed;right:24px;bottom:24px;z-index:81;width:min(360px,calc(100vw - 32px));background:var(--ink);color:var(--paper);
  border-radius:14px;box-shadow:var(--pop-shadow);overflow:hidden;padding:26px 24px 24px;opacity:0;transform:translateY(24px);pointer-events:none;
  transition:opacity .34s var(--ease),transform .34s var(--ease)}
.msc-pop.is-open .pop-slide{opacity:1;transform:none;pointer-events:auto}
.msc-popups .pop-slide .glow{position:absolute;width:220px;height:220px;right:-90px;top:-110px;border-radius:50%;background:radial-gradient(circle,var(--coral-glow),transparent 64%);pointer-events:none}
.msc-popups .pop-slide .in{position:relative;z-index:2}
.msc-popups .pop-slide .eyebrow{color:var(--coral-bright)}
.msc-popups .pop-slide h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:26px;line-height:.98;letter-spacing:-.2px;margin:8px 0 0}
.msc-popups .pop-slide h3 .c{color:var(--coral-bright)}
.msc-popups .pop-slide p{font-size:13.5px;line-height:1.55;color:var(--paper-70);margin:8px 0 0}
.msc-popups .pop-slide .field{display:flex;gap:8px;margin-top:16px}
.msc-popups .pop-slide input[type=email]{flex:1;min-width:0;font-family:var(--body);font-size:16px;color:var(--paper);background:rgba(251,248,241,.08);border:1px solid var(--paper-line);border-radius:6px;padding:11px 12px}
.msc-popups .pop-slide input[type=email]::placeholder{color:var(--paper-50)}
.msc-popups .pop-slide input[type=email]:focus{outline:2px solid var(--coral);outline-offset:1px}
.msc-popups .pop-slide .pop-close{background:rgba(251,248,241,.1);border-color:var(--paper-line);color:var(--paper-70)}
.msc-popups .pop-slide .pop-close:hover{background:rgba(251,248,241,.18);color:var(--paper)}
/* On-dark form states. The shared .consent.err above paints red (--error), which
   is right on the light cards and unreadable on ink, so the slide-in swaps to the
   lightened coral. Same reasoning as the footer newsletter. */
.msc-popups .pop-slide .consent{color:var(--paper-50)}
.msc-popups .pop-slide .consent input{border-color:var(--paper-line);background:rgba(255,255,255,.02)}
.msc-popups .pop-slide .consent a{color:var(--paper-70)}
.msc-popups .pop-slide .consent.err,.msc-popups .pop-slide .consent.err a{color:var(--coral-bright)}
.msc-popups .pop-slide .consent.err input{border-color:var(--coral-bright)}
.msc-popups .pop-slide input[type=email].is-error{border-color:var(--coral-bright)}
.msc-popups .pop-slide form:has(.consent.err) input[type=email]{border-color:var(--coral-bright)}
.msc-popups .pop-slide .nform-status{font-size:13px;line-height:1.45;font-weight:600;
  color:var(--paper-70);margin:10px 0 0}
.msc-popups .pop-slide .nform-status.is-err{display:flex;align-items:flex-start;gap:7px;color:var(--coral-bright)}
.msc-popups .pop-slide .nform-status.is-err::before{content:"";flex:none;width:6px;height:6px;margin-top:6px;
  background:var(--coral-bright);transform:rotate(45deg)}

/* --- slide-in: joined state ---------------------------------------------
   After a stored signup the form view is replaced by a confirmation that
   occupies the SAME box, so the popup never resizes or jumps in the corner.
   js/newsletter.js locks .in to its measured height before swapping. */
/* The panel only gets a display value in the joined state. Setting display on
   the base class would beat the `hidden` attribute (a class selector outranks
   the UA rule for [hidden]) and the confirmation would show under the form. */
.msc-popups .pop-slide.is-joined .in > :not(.nform-done){display:none}
.msc-popups .pop-slide.is-joined .nform-done{display:flex;flex-direction:column;
  align-items:flex-start;justify-content:center;height:100%}
.msc-popups .pop-slide .done-h{font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:26px;line-height:.98;letter-spacing:-.2px;margin:10px 0 0;color:var(--paper)}
.msc-popups .pop-slide .done-h .c{color:var(--coral-bright)}
.msc-popups .pop-slide .done-body{font-size:13.5px;line-height:1.5;color:var(--paper-70);margin:6px 0 0}
.msc-popups .pop-slide .done-to{font-size:12px;line-height:1.4;color:var(--paper-50);margin:6px 0 0;
  word-break:break-word}

/* Drawing checkmark, same gesture as the contact form's success state. */
.msc-popups .pop-slide .done-check{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:rgba(232,74,31,.16);color:var(--coral-bright);flex:none}
.msc-popups .pop-slide .done-check svg{width:18px;height:18px}
.msc-popups .pop-slide .done-check path{stroke-dasharray:24;stroke-dashoffset:24}
.msc-popups .pop-slide.is-joined .done-check path{animation:msc-check .42s .12s var(--ease) forwards}
@keyframes msc-check{to{stroke-dashoffset:0}}

/* The panel itself rises in gently as it replaces the form. */
.msc-popups .pop-slide.is-joined .nform-done{animation:msc-joined .42s var(--ease) both}
@keyframes msc-joined{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .msc-popups .pop-slide.is-joined .nform-done{animation:none}
  .msc-popups .pop-slide.is-joined .done-check path{animation:none;stroke-dashoffset:0}
}

/* -----------------------------------------------------
   TYPE 3 — FULL-WIDTH BAR  (site-wide notice / promo)
   ----------------------------------------------------- */
.msc-popups .pop-bar{position:fixed;left:0;right:0;bottom:0;z-index:81;background:var(--ocean);color:var(--cream);box-shadow:0 -18px 40px -30px rgba(26,26,26,.6);transform:translateY(100%);transition:transform .38s var(--ease)}
.msc-pop.is-open .pop-bar{transform:none}
.msc-popups .pop-bar .bar-in{max-width:1140px;margin:0 auto;padding:16px 56px 16px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.msc-popups .pop-bar .msg{display:flex;align-items:center;gap:12px;flex:1;min-width:240px}
.msc-popups .pop-bar .msg .mk{background:var(--cream);flex:none}
.msc-popups .pop-bar .msg p{margin:0;font-size:14.5px;line-height:1.4;color:var(--cream)}
.msc-popups .pop-bar .msg strong{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.3px}
.msc-popups .pop-bar .btn-ghost{border-color:var(--ocean-line);color:var(--cream)}
.msc-popups .pop-bar .btn-ghost:hover{border-color:var(--cream);background:rgba(245,236,219,.08)}
.msc-popups .pop-bar .pop-close{top:50%;transform:translateY(-50%);background:rgba(245,236,219,.1);border-color:var(--ocean-line);color:var(--cream)}
.msc-popups .pop-bar .pop-close:hover{background:rgba(245,236,219,.2);color:var(--cream);transform:translateY(-50%) rotate(90deg)}

/* -----------------------------------------------------
   TYPE 4 — CARD WITH PHOTO  (image-topped centered modal)
   ----------------------------------------------------- */
.msc-popups .pop-photo{position:fixed;inset:0;z-index:81;display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none}
.msc-popups .pop-photo .card{position:relative;pointer-events:none;width:min(440px,100%);background:var(--paper-bg);color:var(--ink);border-radius:16px;border:1px solid var(--rule);
  box-shadow:var(--pop-shadow);overflow:hidden;text-align:center;opacity:0;transform:translateY(18px) scale(.97);transition:opacity .34s var(--ease),transform .34s var(--ease)}
.msc-pop.is-open .pop-photo .card{opacity:1;transform:none;pointer-events:auto}
.msc-popups .pop-photo .ph{position:relative;height:190px;background:linear-gradient(180deg,#efe6d3,#e7dcc6);display:flex;align-items:center;justify-content:center}
.msc-popups .pop-photo .ph img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.msc-popups .pop-photo .ph::before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--coral-dot) 1.5px,transparent 1.6px);background-size:12px 12px;
  -webkit-mask:radial-gradient(130% 120% at 100% 0,#000,transparent 60%);mask:radial-gradient(130% 120% at 100% 0,#000,transparent 60%);opacity:.7}
.msc-popups .pop-photo .ph .tag{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;font-family:var(--body);font-weight:600;text-transform:uppercase;letter-spacing:1.8px;
  font-size:10px;color:var(--coral-deep);background:rgba(251,248,241,.72);border:1px solid var(--rule);padding:5px 11px;border-radius:30px}
.msc-popups .pop-photo .ph.tag-right .tag{left:auto;right:12px}
.msc-popups .pop-photo .ph .tag::before{content:"";width:7px;height:7px;background:var(--coral);transform:rotate(45deg);border-radius:1px}
.msc-popups .pop-photo .cbody{padding:26px 34px 32px}
.msc-popups .pop-photo .eyebrow{margin-bottom:8px;color:var(--coral-deep)}
.msc-popups .pop-photo h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:30px;line-height:.94;letter-spacing:-.4px;margin:0}
.msc-popups .pop-photo h3 .c{color:var(--coral)}
.msc-popups .pop-photo p{font-size:15px;line-height:1.58;color:var(--ink-72);margin:12px auto 0;max-width:36ch}
.msc-popups .pop-photo .cta{margin-top:22px;display:flex;flex-direction:column;gap:9px;align-items:center}
.msc-popups .pop-photo .dismiss{background:none;border:0;font-family:var(--body);font-size:13px;color:var(--ink-40);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.msc-popups .pop-photo .dismiss:hover{color:var(--ink-72)}
/* Type 4 image position: LEFT / RIGHT (top is the default column layout) */
.msc-popups .pop-photo.is-left .card,.msc-popups .pop-photo.is-right .card{width:min(680px,100%);display:flex;align-items:stretch;text-align:left}
.msc-popups .pop-photo.is-right .card{flex-direction:row-reverse}
.msc-popups .pop-photo.is-left .ph,.msc-popups .pop-photo.is-right .ph{height:auto;flex:0 0 44%;min-height:290px}
.msc-popups .pop-photo.is-left .cbody,.msc-popups .pop-photo.is-right .cbody{flex:1;display:flex;flex-direction:column;justify-content:center;padding:32px 34px}
.msc-popups .pop-photo.is-left h3,.msc-popups .pop-photo.is-right h3{margin:0}
.msc-popups .pop-photo.is-left p,.msc-popups .pop-photo.is-right p{margin:14px 0 0;max-width:34ch}
.msc-popups .pop-photo.is-left .cta,.msc-popups .pop-photo.is-right .cta{align-items:flex-start}
@media(max-width:640px){
  .msc-popups .pop-photo.is-left .card,.msc-popups .pop-photo.is-right .card{flex-direction:column;width:min(440px,100%)}
  .msc-popups .pop-photo.is-left .ph,.msc-popups .pop-photo.is-right .ph{flex:none;height:190px;min-height:0}
}
/* Type 4 DARK color variant (photo stays a photo; the copy area goes dark) */
.msc-popups .pop-photo.is-dark .card{background:var(--ink);border-color:rgba(255,255,255,.08)}
.msc-popups .pop-photo.is-dark .cbody{position:relative;background:linear-gradient(152deg,var(--ink) 0%,var(--ink) 30%,#7a250e 118%,var(--coral-deep) 140%);color:var(--paper)}
.msc-popups .pop-photo.is-dark .cbody::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,224,204,.16) 1.5px,transparent 1.6px);background-size:12px 12px;
  -webkit-mask:radial-gradient(120% 90% at 100% 0,#000,transparent 55%);mask:radial-gradient(120% 90% at 100% 0,#000,transparent 55%);opacity:.5}
.msc-popups .pop-photo.is-dark .cbody > *{position:relative;z-index:1}
.msc-popups .pop-photo.is-dark .eyebrow{color:#ff9d7d}
.msc-popups .pop-photo.is-dark h3{color:var(--paper)}
.msc-popups .pop-photo.is-dark h3 .c{color:var(--peach)}
.msc-popups .pop-photo.is-dark p{color:var(--paper-70)}
.msc-popups .pop-photo.is-dark .dismiss{color:var(--paper-50)}
.msc-popups .pop-photo.is-dark .dismiss:hover{color:var(--paper)}
.msc-popups .pop-photo.is-dark .pop-close{background:rgba(251,248,241,.1);border-color:var(--paper-line);color:var(--paper-70)}
.msc-popups .pop-photo.is-dark .pop-close:hover{background:rgba(251,248,241,.2);color:var(--paper)}

@media (max-width:560px){
  .msc-popups .pop-bar .bar-in{padding-right:52px}
  .msc-popups .pop-bar .btn{width:100%}
}

/* -----------------------------------------------------
   FLOATING TAB launcher  (trigger = tab)
   A fixed corner button that reveals on scroll (.is-shown) and opens the popup.
   ----------------------------------------------------- */
.msc-popups .pop-tab{position:fixed;bottom:22px;z-index:70;display:inline-flex;align-items:stretch;cursor:pointer;border:0;padding:0;
  background:var(--coral-deep);color:var(--cream);border-radius:12px;overflow:hidden;font-family:var(--display);
  box-shadow:0 2px 4px rgba(26,26,26,.14),0 20px 40px -22px rgba(184,56,18,.9);
  opacity:0;transform:translateY(20px);pointer-events:none;
  transition:opacity .3s var(--ease),transform .3s var(--ease),background .16s,box-shadow .16s}
.msc-popups .pop-tab.corner-right{right:22px}
.msc-popups .pop-tab.corner-left{left:22px}
.msc-popups .pop-tab.is-shown{opacity:1;transform:none;pointer-events:auto}
.msc-popups .pop-tab.is-shown:hover{transform:translateY(-2px);background:var(--coral-deep-hover);
  box-shadow:0 4px 8px rgba(26,26,26,.16),0 26px 50px -22px rgba(184,56,18,1)}
.msc-popups .pop-tab:focus-visible{outline:2px solid var(--coral);outline-offset:3px}
.msc-popups .pop-tab .lbl{display:flex;flex-direction:column;justify-content:center;text-align:left;padding:12px 10px 12px 18px;line-height:1}
.msc-popups .pop-tab .lbl .k{font-family:var(--body);font-weight:600;text-transform:uppercase;letter-spacing:1.8px;font-size:9.5px;color:var(--peach);margin-bottom:5px}
.msc-popups .pop-tab .lbl .t{font-weight:800;text-transform:uppercase;letter-spacing:.4px;font-size:18px}
.msc-popups .pop-tab .ic{display:flex;align-items:center;justify-content:center;width:52px;background:rgba(251,248,241,.14);border-left:1px solid rgba(251,248,241,.16)}
.msc-popups .pop-tab .ic svg{width:20px;height:20px;fill:none;stroke:var(--cream);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:560px){
  .msc-popups .pop-tab{bottom:14px}
  .msc-popups .pop-tab.corner-right{right:14px}
  .msc-popups .pop-tab.corner-left{left:14px}
  .msc-popups .pop-tab .lbl .t{font-size:17px}
  .msc-popups .pop-tab .ic{width:46px}
}

/* -----------------------------------------------------
   CENTERED LEAD FORM  (layout = form) — posts to Leads
   ----------------------------------------------------- */
.msc-popups .pop-form .card{width:min(468px,100%);padding:34px 34px 32px}
.msc-popups .pop-form .in>.sub{font-size:15px;line-height:1.6;color:var(--ink-72);margin:14px auto 0;max-width:42ch}
.msc-popups .lead-form{margin-top:22px;text-align:left;display:flex;flex-direction:column;gap:12px}
.msc-popups .lead-form .lf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msc-popups .lead-form .lf-field{display:flex;flex-direction:column;gap:6px}
.msc-popups .lead-form .lf-lab{font-family:var(--body);font-weight:600;font-size:12.5px;letter-spacing:.2px;color:var(--ink-72)}
.msc-popups .lead-form input[type=text],.msc-popups .lead-form input[type=email],.msc-popups .lead-form textarea{
  font-family:var(--body);font-size:14.5px;color:var(--ink);background:#fff;border:1.5px solid var(--rule-strong);border-radius:8px;padding:12px 13px;width:100%;
  transition:border-color .15s,box-shadow .15s}
.msc-popups .lead-form input::placeholder,.msc-popups .lead-form textarea::placeholder{color:var(--ink-40)}
.msc-popups .lead-form input[type=text]:focus,.msc-popups .lead-form input[type=email]:focus,.msc-popups .lead-form textarea:focus{outline:none;border-color:var(--coral-deep);box-shadow:0 0 0 3px var(--coral-dot)}
.msc-popups .lead-form textarea{resize:vertical;min-height:92px;line-height:1.5}
.msc-popups .lead-form input.is-error,.msc-popups .lead-form textarea.is-error{border-color:var(--error)}
.msc-popups .lead-form .lf-err{font-size:12px;color:var(--error);margin:0}
/* the lead-form consent is a touch smaller than the shared one (approved) */
.msc-popups .lead-form .consent{align-items:center;gap:8px;margin-top:2px;font-size:13px}
.msc-popups .lead-form .consent input{width:15px;height:15px;margin:0;padding:0;border-radius:3px}
.msc-popups .lead-form .consent input:checked::after{left:3.5px;top:1px;width:3.5px;height:7px}
.msc-popups .lead-form .consent.err input{border-color:var(--error)}
.msc-popups .lead-form .lf-submit{margin-top:6px}
.msc-popups .lead-form .btn{width:100%}
.msc-popups .lead-form .submit-pop .chk{width:0;height:18px;overflow:hidden;transition:width .2s}
.msc-popups .lead-form .submit-pop.is-success .chk{width:18px}
.msc-popups .lead-form .lf-status{font-size:12.5px;color:var(--ink-72);margin:2px 0 0;text-align:center}
.msc-popups .lead-form .lf-status.is-err{color:var(--error)}
/* success panel — swapped in place of the form by js/popups.js */
.msc-popups .pop-form .lf-done{text-align:center;padding:8px 0 2px;animation:msc-joined .42s var(--ease) both}
.msc-popups .pop-form .done-check{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:color-mix(in srgb,var(--coral-deep) 12%,transparent);color:var(--coral-deep);margin-bottom:12px}
.msc-popups .pop-form .done-check svg{width:24px;height:24px}
.msc-popups .pop-form .done-h{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:30px;line-height:.96;letter-spacing:-.3px;margin:0}
.msc-popups .pop-form .done-h .c{color:var(--coral)}
.msc-popups .pop-form .done-body{font-size:14.5px;line-height:1.55;color:var(--ink-72);margin:10px auto 0;max-width:34ch}

/* reduced motion — no transforms, instant reveal */
@media (prefers-reduced-motion:reduce){
  .msc-popups .pop-overlay,.msc-popups .pop-center .card,.msc-popups .pop-photo .card,.msc-popups .pop-slide,.msc-popups .pop-bar,.msc-popups .pop-close,.msc-popups .pop-tab{transition:none !important;animation:none !important}
  .msc-popups .pop-center .card,.msc-popups .pop-photo .card,.msc-popups .pop-slide{transform:none}
  .msc-popups .pop-tab{transform:translateY(20px)}
  .msc-popups .pop-tab.is-shown{transform:none}
  .msc-popups .pop-bar{transform:translateY(100%)}
  .msc-pop.is-open .pop-bar{transform:none}
}
