/* Sponsors: small, clearly labeled, never covers the app. */
.sp-slot{margin:14px 0}
.sp-slot[hidden]{display:none!important}
.sp-label{display:inline-block;font:600 11px/1 system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#5d6b60;background:#eef2ee;border:1px solid #d6ddd6;border-radius:6px;padding:4px 6px;margin-bottom:8px}
.sp-card{background:#fff;color:#1d2a20;border:1px solid #d8e2d9;border-radius:14px;padding:12px;margin:0 0 10px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.sp-head{display:flex;gap:10px;align-items:center}
.sp-logo{width:44px;height:44px;border-radius:10px;object-fit:cover;flex:none;background:#f3f6f3}
.sp-name{display:block;font-size:16px}
.sp-tag{margin:2px 0 0;font-size:14px;color:#4a574d}
.sp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sp-btn{display:inline-block;padding:10px 14px;border-radius:10px;background:#2f8f46;color:#fff;text-decoration:none;font-weight:600;font-size:14px}
.sp-ghost{background:#eef2ee;color:#1d2a20}
.sp-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.sp-title h2{margin:0 0 8px;font-size:18px}
.sp-more{font-size:13px;color:#2f8f46}
.sp-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,82%);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}
.sp-row .sp-card{scroll-snap-align:start;margin:0}
.sp-stage{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:10px;overflow:hidden;background:#1b2a1f;padding:0;cursor:pointer}
.sp-poster{width:100%;height:100%;object-fit:cover;display:block}
.sp-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.65);color:#fff;font-weight:700;padding:10px 14px;border-radius:999px;font-size:14px;white-space:nowrap}
.sp-player{width:100%;aspect-ratio:16/9;border-radius:10px;background:#000;display:block}
.sp-video .sp-text{margin-top:8px}
.sp-banner{display:flex;align-items:center;gap:8px;background:#f6f8f6;color:#1d2a20;border:1px solid #dfe6df;border-radius:12px;padding:6px 6px 6px 10px;font-size:13px}
.sp-banner .sp-label{margin:0;flex:none}
.sp-banner-link{flex:1;color:inherit;text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.sp-x{flex:none;border:0;background:transparent;font-size:20px;line-height:1;padding:6px 8px;color:#5d6b60;cursor:pointer}

/* carousel (3-6 rotating sponsor cards + "Your Brand Here" fillers) */
.sp-carousel { margin: 12px 0; font-family: inherit; }
.sp-ctop { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.sp-carousel .sp-x { background: none; border: 0; font-size: 1.3rem; line-height: 1; padding: 4px 8px; color: #64748b; cursor: pointer; }
.sp-track { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 2px; }
.sp-track::-webkit-scrollbar { display: none; }
.sp-ccard { flex: 0 0 78%; max-width: 300px; scroll-snap-align: start; box-sizing: border-box; display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 14px; background: #fff; border: 1px solid #e2e8f0; color: #0f172a; text-decoration: none; min-height: 96px; }
.sp-ccard .sp-head { display: flex; gap: 8px; align-items: center; }
.sp-ccard .sp-logo { width: 32px; height: 32px; border-radius: 8px; object-fit: cover; }
.sp-ccard .sp-name { font-weight: 800; font-size: .98rem; }
.sp-ccard .sp-tag, .sp-ccard .sp-phone { font-size: .82rem; color: #475569; }
.sp-filler { background: linear-gradient(135deg, #fef9c3, #dcfce7); border: 1px dashed #16a34a; }
.sp-filler .sp-btn { align-self: flex-start; margin-top: auto; font-size: .8rem; font-weight: 800; color: #166534; }

/* Southern Greenery — full-width premium sponsor banner */
.sp-premium{position:relative;overflow:hidden;box-sizing:border-box;width:100%;margin:0;padding:16px 16px 14px;border-radius:22px;color:#f4fff6;border:1px solid rgba(232,196,106,.55);
 background:linear-gradient(155deg,#06331c 0%,#0f6b34 46%,#148a42 100%);
 box-shadow:0 12px 28px rgba(6,40,20,.28)}
.sp-premium::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
 background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 13px),radial-gradient(ellipse at 80% 120%,rgba(170,220,90,.28),transparent 58%)}
.sp-leaves{position:absolute;right:-8px;top:-10px;width:150px;height:112px;color:rgba(210,245,170,.28);pointer-events:none}
.sp-premium .sp-proud,.sp-premium .sp-name,.sp-premium .sp-tag,.sp-premium .sp-detail,.sp-premium .sp-price,.sp-premium .sp-flyer-btn,.sp-premium .sp-calls,.sp-premium .sp-call,.sp-premium .sp-note{position:relative;z-index:1}
.sp-proud{display:inline-flex;align-items:center;font:800 11px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#14331f;background:#f3e2a2;border-radius:999px;padding:5px 10px}
.sp-premium .sp-name{display:block;margin:10px 0 4px;font:800 26px/1.1 Georgia,"Times New Roman",serif;color:#fff;letter-spacing:-.01em}
.sp-premium .sp-tag{margin:0 0 14px;font:500 16px/1.35 system-ui,sans-serif;color:#e7f8ec}
.sp-premium .sp-tag:has(+ .sp-detail){margin-bottom:4px}
.sp-detail{margin:0 0 8px;font:600 14.5px/1.35 system-ui,sans-serif;color:#f4ffe8}
.sp-price{margin:0 0 12px;font:800 22px/1.15 system-ui,sans-serif;color:#f3e2a2;letter-spacing:-.01em}
.sp-flyer-btn{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}
.sp-flyer-btn img{width:68px;height:auto;aspect-ratio:750/1624;object-fit:contain;object-position:center;border-radius:12px;border:2px solid rgba(255,255,255,.9);box-shadow:0 6px 14px rgba(0,0,0,.28);background:#111}
.sp-flyer-cap{font:800 13px/1.2 system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#f3e2a2}
body.sp-flyer-open{overflow:hidden}
.sp-flyer{position:fixed;inset:0;z-index:400;background:rgba(5,16,10,.88);display:flex;flex-direction:column;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom));overflow:auto;-webkit-overflow-scrolling:touch}
.sp-flyer-x{position:sticky;top:0;align-self:flex-end;flex:none;width:44px;height:44px;margin:0 0 8px;border:0;border-radius:999px;background:#fff;color:#0d3b22;font:800 30px/1 system-ui;box-shadow:0 4px 14px rgba(0,0,0,.35);cursor:pointer}
.sp-flyer-img{display:block;width:min(100%,440px);height:auto;border-radius:16px;background:#fff}
.sp-premium + .sp-premium{margin-top:12px}
.sp-premium.sp-meadow{border-color:rgba(226,196,92,.55);
 background:linear-gradient(155deg,#1c3a0c 0%,#4d7a16 48%,#6e9a28 100%);
 box-shadow:0 12px 28px rgba(40,50,8,.28)}
.sp-premium.sp-meadow::before{background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 13px),radial-gradient(ellipse at 18% 120%,rgba(220,230,90,.35),transparent 55%)}
.sp-premium.sp-meadow .sp-leaves{color:rgba(236,245,150,.34)}
.sp-call{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;padding:12px 16px;border-radius:18px;background:#fff;color:#0d3b22;text-decoration:none;font:800 18px/1.2 system-ui,sans-serif;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.sp-calls{display:flex;gap:8px}
.sp-calls .sp-call{flex:1;width:auto;min-width:0;min-height:62px;padding:8px 6px;flex-direction:column;gap:2px;font-size:15px;line-height:1.15}
.sp-call-k{font:800 12px/1.15 system-ui,sans-serif}
.sp-call-n{font:800 15px/1.15 system-ui,sans-serif}
.sp-call:active{transform:scale(.99)}
.sp-note{margin:10px 0 0;font:500 13px/1.35 system-ui,sans-serif;color:#e7f6ea;text-align:center}
.sp-banner .sp-call{width:auto;min-height:44px;padding:10px 14px;font-size:15px;flex:none}
