/* Zomg The Handyman app download section. Loaded once per page, shared by every page and /app/. */
.zapp{padding:64px 20px;background:linear-gradient(180deg,rgba(15,79,92,.0) 0%,rgba(15,79,92,.35) 30%,rgba(15,79,92,.35) 70%,rgba(15,79,92,0) 100%);color:#fff;font-family:'Manrope',system-ui,sans-serif}
.zapp-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.zapp-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fbbc04;font-family:'Montserrat',sans-serif;margin-bottom:14px}
.zapp-kicker i{width:8px;height:8px;border-radius:50%;background:#fbbc04;box-shadow:0 0 0 4px rgba(251,188,4,.25)}
.zapp h2{font-family:'Montserrat',sans-serif;font-weight:800;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.12;margin:0 0 12px;color:#fff}
.zapp h2 em{font-style:normal;color:#fbbc04}
.zapp .zapp-lead{font-size:1.06rem;line-height:1.6;color:rgba(255,255,255,.82);margin:0 0 22px;max-width:520px}
.zapp ul{list-style:none;margin:0 0 26px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.zapp li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;line-height:1.4;color:rgba(255,255,255,.9)}
.zapp li b{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:rgba(251,188,4,.16);color:#fbbc04;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}
.zapp-stores{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.zapp-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 14px;border-radius:12px;background:#000;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.28);min-width:180px;transition:transform .15s,border-color .15s}
.zapp-badge:hover{transform:translateY(-2px);border-color:#fbbc04}
.zapp-badge svg{width:28px;height:28px;flex-shrink:0}
.zapp-badge span{display:block;line-height:1.1}
.zapp-badge small{display:block;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.zapp-badge strong{display:block;font-family:'Montserrat',sans-serif;font-size:1.05rem;font-weight:700}
.zapp-badge.soon{opacity:.72;cursor:default;border-style:dashed}
.zapp-badge.soon:hover{transform:none;border-color:rgba(255,255,255,.28)}
.zapp-more{display:block;margin-top:14px;font-size:.88rem;color:#fbbc04;font-weight:700;text-decoration:none}
.zapp-more:hover{text-decoration:underline}
.zapp-phones{display:flex;justify-content:center;align-items:flex-end;gap:22px;min-height:420px;padding-top:34px}
.zapp-phone{position:relative;width:216px;aspect-ratio:216/414;border-radius:38px;background:#111;padding:9px;box-shadow:0 30px 60px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.12) inset;flex-shrink:0}
.zapp-phone.iphone{width:232px;aspect-ratio:232/479;border-radius:46px;padding:10px;transform:translateY(-16px)}
.zapp-screen{position:relative;width:100%;height:100%;border-radius:30px;overflow:hidden;background:#e9eef1}
.zapp-phone.iphone .zapp-screen{border-radius:38px}
.zapp-screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;animation:zapp-cycle 16s infinite}
.zapp-screen img:nth-child(1){animation-delay:0s}
.zapp-screen img:nth-child(2){animation-delay:4s}
.zapp-screen img:nth-child(3){animation-delay:8s}
.zapp-screen img:nth-child(4){animation-delay:12s}
.zapp-phone.iphone .zapp-screen img{animation-delay:calc(var(--d,0s) + 2s)}
.zapp-phone.iphone .zapp-screen img:nth-child(1){--d:0s}
.zapp-phone.iphone .zapp-screen img:nth-child(2){--d:4s}
.zapp-phone.iphone .zapp-screen img:nth-child(3){--d:8s}
.zapp-phone.iphone .zapp-screen img:nth-child(4){--d:12s}
@keyframes zapp-cycle{0%{opacity:0;transform:scale(1.02)}4%{opacity:1;transform:scale(1)}25%{opacity:1}30%{opacity:0}100%{opacity:0}}
.zapp-hole{position:absolute;top:16px;left:50%;transform:translateX(-50%);width:12px;height:12px;border-radius:50%;background:#000;z-index:2;box-shadow:0 0 0 2px rgba(0,0,0,.35)}
.zapp-island{position:absolute;top:18px;left:50%;transform:translateX(-50%);width:76px;height:22px;border-radius:14px;background:#000;z-index:2}
.zapp-tag{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);padding:5px 12px;border-radius:999px;background:#fbbc04;color:#0a2a30;font-family:'Montserrat',sans-serif;font-weight:800;font-size:.7rem;letter-spacing:.06em;white-space:nowrap;z-index:3;box-shadow:0 6px 16px rgba(0,0,0,.35)}
.zapp-step{position:absolute;top:-30px;left:0;right:0;text-align:center;font-size:.78rem;font-weight:700;color:rgba(255,255,255,.75);letter-spacing:.04em}
@media (prefers-reduced-motion:reduce){.zapp-screen img{animation:none}.zapp-screen img:nth-child(1){opacity:1}.zapp-phone.iphone .zapp-screen img:nth-child(1){opacity:0}.zapp-phone.iphone .zapp-screen img:nth-child(3){opacity:1}}
@media (max-width:900px){.zapp-in{grid-template-columns:1fr;gap:34px}.zapp-phones{order:-1;min-height:0;gap:14px}.zapp-phone{width:46%;max-width:200px}.zapp-phone.iphone{width:49%;max-width:214px}.zapp ul{grid-template-columns:1fr}.zapp{padding:52px 18px}}
@media (max-width:480px){.zapp-badge{min-width:0;flex:1 1 46%;justify-content:center}.zapp-tag{font-size:.62rem;padding:4px 9px}}

/* on a phone show only the store for that phone */
.zapp-android .zapp-badge[data-zapp="ios"],.zapp-android .zapp-badge[data-zapp="ios-soon"],.zapp-ios .zapp-badge[data-zapp="play"]{display:none}
.zapp-android .zapp-phone.iphone,.zapp-ios .zapp-phone.android{display:none}
.zapp-android .zapp-phone,.zapp-ios .zapp-phone{max-width:240px;width:60%}
