/* AYANZO Phase 4 sections: Programs gallery, Quote deck, Offer cards, Social orbit, Particle globe. Theme tokens only. */
.p4-hide{opacity:0;transform:translateY(28px)}
[data-p4-reveal]{transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.qd,.co,.gl{overflow-x:clip}
.pg{overflow-x:visible}
:is(.pg,.qd,.co,.gl) .eyebrow{letter-spacing:.2em;font-weight:800}
:is(.pg,.qd,.co,.gl) h2{letter-spacing:-.035em}

/* ---------- Round controls ---------- */
.pg-ctrl,.qd-ctrl{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px}
.pg-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--text);cursor:pointer;transition:transform .2s,border-color .2s,background .2s}
.pg-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pg-btn:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--surface));transform:translateY(-2px)}
.pg-btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.pg-play .i-play{display:none}.pg-play.is-off .i-pause{display:none}.pg-play.is-off .i-play{display:block;fill:currentColor}

/* ---------- Programs media gallery v2 (full-width curved ring, Phase 4.1) ---------- */
.pg .section-head{position:relative;z-index:2}
.pg-stage{--cw:clamp(190px,15.5vw,310px);--ch:calc(var(--cw)*1.38);position:relative;width:100vw;margin-left:calc(50% - 50vw);overflow-x:clip;height:calc(var(--ch) + 70px);margin-top:clamp(18px,3vw,44px);margin-bottom:clamp(6px,1.5vw,18px);cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;perspective-origin:50% 45%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
.pg-stage.is-drag{cursor:grabbing}
.pg-stage:focus-visible{outline:2px solid var(--primary);outline-offset:-4px;border-radius:24px}
.pg-ring{position:absolute;left:50%;top:35px;width:0;height:var(--ch);transform-style:preserve-3d}
.pg-stage:not(.is-ready) .pg-card:nth-child(n+2){visibility:hidden}
.pg-card{position:absolute;left:calc(var(--cw)*-.5);top:0;width:var(--cw);height:100%;display:block;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,hsl(var(--hue) 55% 48%),hsl(calc(var(--hue) + 40) 50% 24%));border:1px solid color-mix(in srgb,var(--text) 16%,transparent);box-shadow:0 26px 60px -24px rgba(0,0,0,.6);color:#fff;text-decoration:none;will-change:transform;transition:scale .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.pg-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 38%);pointer-events:none}
.pg-card img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.pg-art{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(120% 80% at 20% 0%,hsl(var(--hue) 80% 66%),transparent 60%),linear-gradient(160deg,hsl(var(--hue) 62% 46%),hsl(calc(var(--hue) + 55) 58% 22%))}
.pg-art b{font-size:calc(var(--cw)*.42);font-weight:900;letter-spacing:-.06em;color:rgba(255,255,255,.9);text-shadow:0 8px 30px rgba(0,0,0,.35)}
.pg-label{position:absolute;left:0;right:0;bottom:0;padding:48px clamp(14px,1.2vw,22px) clamp(14px,1.2vw,22px);background:linear-gradient(to top,rgba(5,8,18,.86),transparent);font-weight:750;font-size:clamp(14px,1.05vw,19px);line-height:1.25;letter-spacing:-.01em}
.pg-label small{display:block;margin-bottom:4px;font-size:clamp(10.5px,.7vw,12.5px);font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.pg-card.is-front{scale:1.05;box-shadow:0 34px 70px -22px color-mix(in srgb,var(--primary) 45%,rgba(0,0,0,.6)),0 0 0 1px color-mix(in srgb,var(--primary) 50%,transparent)}
.pg-card:focus-visible{outline:2px solid var(--primary);outline-offset:3px}

/* ---------- Quote deck (success stories) ---------- */
.qd-stage{position:relative;max-width:1180px;margin:clamp(22px,3vw,40px) auto 0;min-height:260px;touch-action:pan-y;perspective:1400px}
.qd-stage:focus-visible{outline:2px solid var(--primary);outline-offset:6px;border-radius:24px}
.qd-card{position:absolute;left:50%;top:0;width:min(460px,80%);padding:26px 26px 22px;border-radius:24px;background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 13%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--tint) 32%,var(--border));box-shadow:0 30px 70px -34px rgba(0,0,0,.55);transition:transform .75s cubic-bezier(.2,.8,.2,1),opacity .55s,filter .55s;display:grid;gap:14px;will-change:transform}
.qd-card.is-on{box-shadow:0 40px 90px -30px color-mix(in srgb,var(--tint) 45%,rgba(0,0,0,.6))}
.qd-card .az-testimonial-identity{display:flex;align-items:center;gap:12px}
.qd-card .az-testimonial-identity strong{display:block;font-size:16px}
.qd-card .az-review-course-link,.qd-card .az-testimonial-identity small{font-size:12.5px;color:var(--primary-ink,var(--primary))}
.qd-card .az-testimonial-stars{display:flex;gap:3px}.qd-card .az-testimonial-stars svg{width:18px;height:18px;fill:none;stroke:var(--tint);stroke-width:1.6}.qd-card .az-testimonial-stars svg.rated{fill:var(--tint)}
.qd-text{margin:0;font-size:clamp(16px,1.5vw,19px);line-height:1.6;letter-spacing:-.005em;color:var(--text)}
.qd-card .az-testimonial-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--border)}
.qd-dots{display:flex;gap:7px}.qd-dots i{width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--text) 22%,transparent);transition:width .3s,background .3s}.qd-dots i.on{width:26px;border-radius:6px;background:var(--primary)}

/* ---------- Offer / plan cards: folder tab ---------- */
.offer-grid .pricing-plan{position:relative;overflow:visible;margin-top:14px;padding:30px 24px 24px;border-radius:0 22px 22px 22px;border:1px solid color-mix(in srgb,var(--offer-accent,var(--primary)) 38%,var(--border));background:linear-gradient(165deg,color-mix(in srgb,var(--offer-accent,var(--primary)) 13%,var(--surface)),var(--surface) 62%);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.offer-grid .pricing-plan::before{content:"";position:absolute;left:-1px;top:-15px;width:116px;height:16px;border-radius:12px 22px 0 0;background:color-mix(in srgb,var(--offer-accent,var(--primary)) 20%,var(--surface));border:1px solid color-mix(in srgb,var(--offer-accent,var(--primary)) 38%,var(--border));border-bottom:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),width .35s}
.offer-grid .pricing-plan:hover{transform:translateY(-8px);box-shadow:0 34px 70px -30px color-mix(in srgb,var(--offer-accent,var(--primary)) 55%,rgba(0,0,0,.5));border-color:var(--offer-accent,var(--primary))}
.offer-grid .pricing-plan:hover::before{transform:translateY(5px);width:150px}
.offer-grid .pricing-plan .offer-badge{top:-16px;right:16px;border-radius:999px;font-weight:800;letter-spacing:.04em}
.offer-grid .pricing-plan .offer-cta{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:999px;font-weight:800;background:var(--offer-accent,var(--primary));color:var(--on-primary,#111);border:0;text-decoration:none;transition:transform .2s,box-shadow .2s}
.offer-grid .pricing-plan .offer-cta:hover{transform:translateY(-2px);box-shadow:0 12px 28px -10px var(--offer-accent,var(--primary))}

/* ---------- Social orbit ---------- */
.co{text-align:center}
.co-copy p{max-width:520px;margin:8px auto 0;color:var(--text-muted)}
.co-stage{position:relative;height:clamp(300px,40vw,420px);max-width:1000px;margin:12px auto 0}
.co-core{position:absolute;left:50%;top:50%;width:112px;height:112px;margin:-56px 0 0 -56px;display:grid;place-items:center;z-index:5}
.co-logo{display:grid;place-items:center;width:84px;height:84px;border-radius:26px;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 85%,#fff),var(--primary));color:var(--on-primary,#111);font-weight:900;font-size:28px;letter-spacing:-.03em;box-shadow:0 0 60px color-mix(in srgb,var(--primary) 55%,transparent),inset 0 1px 0 rgba(255,255,255,.4);animation:coFloat 5s ease-in-out infinite}
.co-core i{position:absolute;inset:-14px;border-radius:34px;border:1px solid color-mix(in srgb,var(--primary) 50%,transparent);animation:coRing 3.6s ease-out infinite}.co-core i.co-r2{animation-delay:1.8s}
@keyframes coRing{from{transform:scale(.8);opacity:.9}to{transform:scale(1.9);opacity:0}}@keyframes coFloat{50%{transform:translateY(-6px) rotate(-2deg)}}
.co-node{--c:var(--primary);position:absolute;left:0;top:0;width:62px;height:62px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid var(--border);color:var(--text);box-shadow:0 18px 40px -16px rgba(0,0,0,.55);backdrop-filter:blur(10px);text-decoration:none;transition:border-color .25s,color .25s,box-shadow .25s;will-change:transform}
.co-node svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.co-node svg .f{fill:currentColor;stroke:none}
.co-node:hover,.co-node:focus-visible{color:var(--c);border-color:var(--c);box-shadow:0 18px 46px -12px color-mix(in srgb,var(--c) 60%,transparent);outline:none}
.co-whatsapp{--c:#25d366}.co-instagram{--c:#e1306c}.co-facebook{--c:#1877f2}.co-youtube{--c:#ff3b30}.co-tiktok{--c:#00c2bb}.co-telegram{--c:#229ed9}.co-discord{--c:#5865f2}.co-linkedin{--c:#0a66c2}
.co-tag{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(-4px);padding:4px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:11.5px;font-weight:700;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.co-node:hover .co-tag,.co-node:focus-visible .co-tag{opacity:1;transform:translateX(-50%)}

/* ---------- Particle globe ---------- */
/* Phase 4.1: brighter land, atmosphere glow, Globe / Map switch. Colours are theme tokens and follow Day / Night. */
.gl{text-align:center}
.gl-copy p{max-width:560px;margin:8px auto 0;color:var(--text-muted)}
[data-globe-wrap]{--globe-land:color-mix(in srgb,var(--primary-ink,var(--primary)) 62%,var(--text));--globe-ocean:var(--text);--globe-glow:var(--primary);--globe-spot:var(--secondary);--globe-body:var(--surface)}
.gl-wrap{position:relative;width:100%;margin:clamp(14px,2vw,26px) auto 0;display:grid;justify-items:center;gap:14px}
.gl-canvas-box{position:relative;width:min(780px,94vw);aspect-ratio:1;transition:width .5s cubic-bezier(.2,.8,.2,1),aspect-ratio .5s}
.gl-wrap[data-mode="flat"] .gl-canvas-box{width:min(1320px,100%);aspect-ratio:2.35/1}
.gl-wrap[data-mode="flat"] .gl-hint{display:none}
.gl-canvas{display:block;width:100%;height:100%;border-radius:20px}
.gl-canvas:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
.gl-switch{display:inline-flex;padding:4px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 80%,transparent);backdrop-filter:blur(10px)}
.gl-switch button{min-width:88px;min-height:44px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--text-muted);font:inherit;font-weight:750;cursor:pointer;transition:background .25s,color .25s}
.gl-switch button[aria-pressed="true"]{background:var(--primary);color:var(--on-primary,#111)}
.gl-switch button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.gl-tip{position:absolute;transform:translate(-50%,-100%);padding:5px 11px;border-radius:9px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:12.5px;font-weight:700;pointer-events:none;white-space:nowrap;box-shadow:0 10px 30px -12px rgba(0,0,0,.5);z-index:3}
.gl-hint{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--text-muted);opacity:.85}

/* ---------- Responsive ---------- */
@media(max-width:720px){
 .co-node{width:50px;height:50px}.co-node svg{width:22px;height:22px}
 .co-core{width:92px;height:92px;margin:-46px 0 0 -46px}.co-logo{width:68px;height:68px;font-size:23px;border-radius:21px}
 .qd-card{width:84%;padding:20px}
 .pg-btn{width:44px;height:44px}
 .pg-stage{--cw:clamp(176px,52vw,230px);-webkit-mask-image:none;mask-image:none}
 .gl-wrap[data-mode="flat"] .gl-canvas-box{aspect-ratio:1.6/1}
}
@media(prefers-reduced-motion:reduce){
 [data-p4-reveal]{transition:none}.p4-hide{opacity:1;transform:none}
 .co-logo,.co-core i{animation:none}
}
/* Phase 10.1: review cards - clean footer, Verified User pill, phone swipe row */
.qd-card{grid-template-rows:auto auto 1fr auto;align-content:start;gap:12px}
.qd-card:not(.is-on){box-shadow:none}
.qd-card .az-testimonial-stars svg{width:18px;height:18px;stroke:var(--tint);fill:none}
.qd-card .az-testimonial-stars svg.rated{fill:var(--tint)}
.qd-text{position:relative;padding-left:2px}
.qd-card .az-testimonial-foot{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--border) 80%,transparent);min-height:0}
.qd-card .az-testimonial-foot:not(:has(*)){display:none}
.qd-card .az-review-date{font-size:12.5px;color:var(--text-muted)}
.qd-card .az-verified{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;color:var(--success,#3ecf8e);background:color-mix(in srgb,var(--success,#3ecf8e) 12%,transparent);border:1px solid color-mix(in srgb,var(--success,#3ecf8e) 35%,transparent);white-space:nowrap}
.qd-card .az-verified svg{width:14px!important;height:14px!important;flex:none;fill:none!important;stroke:currentColor}
.qd-card .az-proof-button svg{width:16px!important;height:16px!important;fill:none!important}
/* phone: native swipe row */
.qd.qd-is-swipe .qd-stage{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;height:auto!important;min-height:0;perspective:none;padding:6px 16px 14px;margin-left:-16px;margin-right:-16px;scrollbar-width:none;touch-action:pan-x pan-y}
.qd.qd-is-swipe .qd-stage::-webkit-scrollbar{display:none}
.qd.qd-is-swipe .qd-card{position:relative;left:auto;top:auto;flex:0 0 86%;width:auto;min-height:0;transform:none;opacity:1;filter:none;scroll-snap-align:center;transition:none;box-shadow:0 18px 40px -28px rgba(0,0,0,.6)}
