/* The Mac app cards and the waitlist pop-up, on /apps and in the Mac apps group on /products (tools/build_pages.py), pop-up in apps.js.
   The cards reuse the /products card (.ben.wk.pd). The pop-up copies the members area unlock pop-up (members app buy.js). */

/* Hero: no picture on the right, so the text gets the full width. */
.wl-hero-sec .hero-grid { grid-template-columns: 1fr; }
.wl-hero-sec .h-hero { max-width: none; }

/* /products#apps: land below the fixed header, so the "Mac apps" label shows. */
.pd-grp#apps { scroll-margin-top: 104px; }

/* Cards: the icon sits on a grey panel where /products shows a cover. The whole card opens the pop-up. */
.wl-card { cursor: pointer; }
html body .ben.wk .wl-shot { display: grid; place-items: center; align-self: stretch; width: 100%; background: #f5f5f5; }  /* phones: cards line up left, so stretch it */
html body .ben.wk .wl-shot img { width: 128px; height: 128px; object-fit: contain; object-position: 50% 50%; }
.wl-card:hover .wl-shot img, .wl-card:hover .wl-shot .wl-ph { transform: scale(1.05); }
.wl-shot .wl-ph { transition: transform 0.4s ease; }

/* No icon yet: a plain grey app tile with the first letter, the same size as a real macOS icon. */
.wl-ph { width: 104px; height: 104px; border-radius: 24px; display: grid; place-items: center; background: linear-gradient(180deg, #ececec, #dcdcdc);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(0, 0, 0, 0.04); font: 500 46px/1 "Geist", sans-serif; color: #8c8c8c; }

/* Pop-up */
body.wl-open { overflow: hidden; }
body.wl-open chat-widget { display: none; }  /* the GHL chat bubble sits above every z-index, so it hides while the pop-up is open */
.wl-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(10, 10, 10, 0.5); display: grid; place-items: center; padding: 24px 16px; overflow-y: auto; animation: wl-fade 0.15s ease-out; }
.wl-box { position: relative; width: 100%; max-width: 480px; background: #fff; color: #0a0a0a; border-radius: 14px; overflow: hidden; box-shadow: 0 24px 64px rgba(0, 0, 0, 0.25); animation: wl-up 0.2s ease-out; text-align: left; }
.wl-x { position: absolute; top: 12px; right: 12px; z-index: 2; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; background: rgba(10, 10, 10, 0.06); border: 0; border-radius: 50%; color: #0a0a0a; cursor: pointer; }
.wl-x:hover { background: rgba(10, 10, 10, 0.12); }
.wl-top { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 36px 24px 28px; background: #f5f5f5; border-bottom: 1px solid #e5e5e5; text-align: center; }
.wl-top img { width: 112px; height: 112px; display: block; }
.wl-top .wl-ph { width: 92px; height: 92px; border-radius: 21px; font-size: 40px; margin: 10px 0; }
.wl-top h2 { margin: 0; font-size: 26px; line-height: 1.2; font-weight: 600; letter-spacing: -0.02em; color: #0a0a0a; }
.wl-body { padding: 24px 28px 28px; }
.wl-blurb { margin: 0 0 12px; font-size: 15px; line-height: 1.55; color: #525252; text-wrap: pretty; }
.wl-points { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; font-size: 14px; line-height: 1.5; color: #0a0a0a; }
.wl-points li { display: flex; gap: 8px; align-items: flex-start; margin: 0; text-wrap: pretty; }
.wl-points svg { flex: none; margin-top: 2px; color: #16a34a; }
.wl-form { margin: 0; }
.wl-form input[type=email] { display: block; width: 100%; height: 48px; box-sizing: border-box; padding: 0 14px; border: 1px solid #dfdfdf; border-radius: 12px; background: #fff;
  font: inherit; font-size: 16px; color: #0a0a0a; -webkit-appearance: none; appearance: none; transition: border-color 0.15s, box-shadow 0.15s; }
.wl-form input[type=email]::placeholder { color: #8c8c8c; }
.wl-form input[type=email]:focus { outline: none; border-color: #000; box-shadow: 0 0 0 1px #000; }
.wl-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
html body .wl-go { display: flex; width: 100%; height: 48px; margin-top: 10px; align-items: center; justify-content: center; gap: 8px; padding: 0 20px; border: 0; border-radius: 6px;
  background: #0a0a0a; color: #fff; font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; transition: background 0.15s, transform 0.1s; }
html body .wl-go:hover { background: #262626; }
html body .wl-go:active { transform: scale(0.98); }
html body .wl-go:disabled { opacity: 0.6; cursor: default; }
.wl-msg { margin: 10px 0 0; font-size: 14px; color: #dc2626; }
.wl-msg:empty { display: none; }
.wl-note { margin: 12px 0 0; font-size: 12px; line-height: 1.5; color: #737373; text-align: center; text-wrap: pretty; }
.wl-done { padding-top: 40px; text-align: center; }
.wl-done h2 { margin: 0 0 8px; font-size: 26px; line-height: 1.2; font-weight: 600; letter-spacing: -0.02em; color: #0a0a0a; }
.wl-done p { margin: 0 0 24px; font-size: 15px; line-height: 1.55; color: #525252; text-wrap: pretty; }
.wl-tick { width: 52px; height: 52px; margin: 0 auto 18px; border-radius: 50%; background: #16a34a; color: #fff; display: grid; place-items: center; animation: wl-pop 0.3s ease-out; }
@keyframes wl-fade { from { opacity: 0; } }
@keyframes wl-up { from { opacity: 0; transform: translateY(12px); } }
@keyframes wl-pop { from { transform: scale(0.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .wl-overlay, .wl-box, .wl-tick { animation: none; } }
@media (max-width: 520px) {
  .wl-overlay { place-items: end center; padding: 0; }
  .wl-box { max-width: none; border-radius: 14px 14px 0 0; max-height: 92dvh; overflow-y: auto; }
  .wl-top { padding: 28px 16px 22px; }
  .wl-body { padding: 20px 16px calc(24px + env(safe-area-inset-bottom)); }
}
