/* Coach overlay — layers on top of the existing phone without touching its markup */
.coach-lock *:not(.coach-target):not(.coach-target *){ pointer-events:none !important; }
.coach-target, .coach-target *{ pointer-events:auto !important; }
.coach-target{ z-index:600; }
.coach-target.coach-force-pos{ position:relative; }
.coach-target::after{
  content:""; position:absolute; inset:-6px; border-radius:16px;
  box-shadow:0 0 0 3px #2dd66f, 0 0 0 8px rgba(45,214,111,.35);
  animation:coachPulse 1.4s ease-in-out infinite; pointer-events:none;
}
@keyframes coachPulse{ 0%,100%{ opacity:1 } 50%{ opacity:.55 } }
.coach-dim{
  position:fixed; inset:0; background:transparent; z-index:500;
  pointer-events:none; opacity:0; transition:opacity .2s, box-shadow .25s;
}
.coach-dim.show{ opacity:1; }
.coach-bubble{
  position:fixed; width:min(320px, 88vw); background:#0d2126; color:#fff; border-radius:20px; padding:18px 20px;
  z-index:700; box-shadow:0 24px 50px rgba(8,24,28,.35); display:none; box-sizing:border-box;
}
.coach-bubble.show{ display:block }
.coach-bubble .coach-tag{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:#4fe3b6; margin:0 }
.coach-progress-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px }
.coach-progress-label{ font-size:11px; font-weight:700; color:#a9c2c0 }
.coach-progress-bar{ height:4px; border-radius:999px; background:rgba(255,255,255,.14); overflow:hidden; margin-bottom:14px }
.coach-progress-fill{ height:100%; background:#4fe3b6; border-radius:999px; width:0%; transition:width .3s ease }
.coach-bubble p{ margin:0 0 14px; font-size:14px; line-height:1.6; color:#e7f3f1 }
.coach-bubble .coach-actions{ display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.coach-bubble .coach-dots{ display:flex; gap:6px }
.coach-bubble .coach-dots span{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.25) }
.coach-bubble .coach-dots span.active{ background:#4fe3b6 }
.coach-bubble button{ background:#4fe3b6; color:#0d2126; border:none; border-radius:999px; padding:9px 16px; font-weight:800; font-size:12.5px; cursor:pointer; white-space:nowrap; }
.coach-bubble button.coach-exit{ background:transparent; color:#a9c2c0; padding:9px 8px; white-space:nowrap; }
.coach-bubble.coach-nudge{ animation:coachNudge .42s ease; }
@keyframes coachNudge{ 0%,100%{ transform:translateX(0) } 25%{ transform:translateX(-6px) } 75%{ transform:translateX(6px) } }

@media (max-width:900px){
  .lp-persona{ grid-template-columns:1fr }
  .lp-persona:nth-child(even) .lp-persona-story{ order:0 }
  .lp-problem-grid{ grid-template-columns:1fr }
  .lp-steps4{ grid-template-columns:1fr 1fr }
  .lp-trust-grid{ grid-template-columns:1fr }
  .lp-persona-cards{ grid-template-columns:1fr 1fr }
  .lp-results-grid{ grid-template-columns:1fr 1fr }
}

@media (max-width:680px){
  .lp-nav-inner{ flex-wrap:wrap; row-gap:8px; padding:12px 0; }
  .lp-logo{ font-size:17px }
  .lp-nav-links{
    order:3; width:100%; gap:18px; overflow-x:auto; -webkit-overflow-scrolling:touch;
    padding-bottom:2px; -ms-overflow-style:none; scrollbar-width:none;
  }
  .lp-nav-links::-webkit-scrollbar{ display:none }
  .lp-nav-links a{ white-space:nowrap; font-size:13px }
  .lp-nav-cta{ padding:8px 14px; font-size:12px }

  .lp-section, .lp-section-narrow{ padding:40px 0; width:min(100% - 20px, 1200px) }
  .lp-h2{ font-size:clamp(22px,7vw,30px) }
  .lp-lead{ font-size:14.5px }
  .lp-kicker{ font-size:11px; padding:7px 12px }

  .lp-problem{ padding:28px 18px; border-radius:22px }
  .lp-problem-grid{ gap:12px; margin-top:20px }
  .lp-problem-card{ padding:16px }

  .lp-persona{ padding:20px; gap:18px; border-radius:22px }
  .lp-persona-story h3{ font-size:19px }
  .lp-persona-visual{ padding:18px; min-height:auto }

  .lp-steps4{ grid-template-columns:1fr; gap:12px; margin-top:22px }
  .lp-step4{ padding:18px }

  .lp-trust-grid{ gap:12px; margin-top:22px }
  .lp-trust-card{ padding:18px }

  .lp-challenge{ padding:26px 18px; border-radius:22px }
  .lp-persona-cards{ grid-template-columns:1fr; gap:10px; margin-top:20px }
  .lp-challenge-status{ padding:14px 16px; flex-direction:column; align-items:stretch; text-align:center }
  .lp-challenge-status button{ width:100% }

  .lp-results-grid{ grid-template-columns:1fr 1fr; gap:10px }
  .lp-result-card{ padding:14px }
  .lp-result-card strong{ font-size:21px }

  .lp-final-cta{ padding:36px 20px; border-radius:22px }
  .lp-final-cta .lp-btns{ flex-direction:column; align-items:stretch }
  .lp-btn-white, .lp-btn-ghost{ width:100%; box-sizing:border-box }

  .coach-bubble{ padding:14px 16px }
}
