/* NicAlliance Quality & Supply — Step 3 visual refinement */

/* HERO: make the convergence the visual payoff without changing the logic. */
.qs-venn-brand-step3 { color:var(--citron); transform-box:fill-box; transform-origin:center; animation:qsCenterBreathe 4.8s ease-in-out infinite; }
.qs-venn-brand-step3 .qs-center-mark { filter:drop-shadow(0 0 8px rgba(182,216,90,.22)); }
.qs-venn-brand-step3 .qs-center-wordmark { font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:22px; font-weight:750; letter-spacing:-.045em; text-transform:none; }
.qs-venn-brand-step3 .ink { fill:#f4f4ee; }
.qs-venn-brand-step3 .accent { fill:var(--citron); }
.qs-venn-coreglow-v21 { animation:qsCoreGlow 4.8s ease-in-out infinite; }
.qs-venn-stage-v21::after { content:""; position:absolute; inset:16% 21%; border-radius:50%; background:radial-gradient(circle,rgba(182,216,90,.065),rgba(39,75,58,.025) 42%,transparent 66%); pointer-events:none; animation:qsVennAura 7s ease-in-out infinite; }
@keyframes qsCenterBreathe { 0%,100%{opacity:.92;transform:translateY(-12px) scale(.985)} 50%{opacity:1;transform:translateY(-12px) scale(1.025)} }
@keyframes qsCoreGlow { 0%,100%{opacity:.055} 50%{opacity:.14} }
@keyframes qsVennAura { 0%,100%{transform:scale(.94);opacity:.45} 50%{transform:scale(1.05);opacity:.95} }

/* RESPONSIBLE SOURCING: photography becomes evidence context, not a decorative gallery. */
.qs-responsible-grid { align-items:start; }
.qs-responsible-list-step3 { display:grid; gap:0; }
.qs-responsible-list-step3 .qs-source-card { display:grid; grid-template-columns:132px 38px minmax(0,1fr); gap:20px; align-items:center; min-height:148px; padding:18px 0; position:relative; overflow:hidden; transition:padding .32s ease, background .32s ease, transform .32s ease; }
.qs-responsible-list-step3 .qs-source-card::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:linear-gradient(90deg,rgba(114,145,55,.55),rgba(28,42,35,.13)); transform-origin:left; transition:transform .45s ease; }
.qs-source-image { height:108px; overflow:hidden; border-radius:4px; background:#dfe2d7; position:relative; }
.qs-source-image::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(21,35,29,.03),rgba(143,174,67,.08)); pointer-events:none; }
.qs-source-image img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.76) contrast(.96); transform:scale(1.005); transition:transform .65s cubic-bezier(.2,.75,.25,1),filter .45s ease; }
.qs-source-card:hover { padding-left:10px; background:linear-gradient(90deg,rgba(178,210,92,.08),transparent 74%); }
.qs-source-card:hover .qs-source-image img { transform:scale(1.055); filter:saturate(.96) contrast(1); }
.qs-source-card:hover::after { transform:scaleX(.72); }
.qs-source-card > span { align-self:start; padding-top:8px; }
.qs-source-card h3 { margin-top:0; }

/* DOCUMENTATION: turn the old stack into a coherent proof matrix. */
.qs-compliance { position:relative; overflow:hidden; }
.qs-compliance::before { content:""; position:absolute; width:520px; height:520px; right:-250px; top:90px; border-radius:50%; background:radial-gradient(circle,rgba(167,201,79,.09),transparent 70%); pointer-events:none; }
.qs-proof-grid-step3 { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 !important; margin-top:42px; border-top:1px solid rgba(28,42,35,.2); border-left:1px solid rgba(28,42,35,.14); }
.qs-proof-grid-step3 .qs-doc-layer { position:relative !important; inset:auto !important; transform:none !important; min-height:154px; margin:0 !important; border-radius:0 !important; border:0 !important; border-right:1px solid rgba(28,42,35,.14) !important; border-bottom:1px solid rgba(28,42,35,.14) !important; box-shadow:none !important; padding:28px 26px !important; background:rgba(255,255,255,.18) !important; display:grid !important; grid-template-columns:40px minmax(0,1fr) auto !important; gap:14px !important; align-items:start !important; overflow:hidden; transition:background .32s ease,transform .32s ease; }
.qs-proof-grid-step3 .qs-doc-layer:nth-child(5) { grid-column:1 / -1; }
.qs-proof-grid-step3 .qs-doc-layer::before { content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(195,222,104,.16),rgba(195,222,104,0) 48%); transform:translateX(-105%); transition:transform .5s cubic-bezier(.2,.75,.25,1); }
.qs-proof-grid-step3 .qs-doc-layer:hover { background:rgba(240,244,225,.72) !important; transform:translateY(-2px) !important; }
.qs-proof-grid-step3 .qs-doc-layer:hover::before { transform:translateX(0); }
.qs-proof-grid-step3 .qs-doc-layer > span,.qs-proof-grid-step3 .qs-doc-layer > div,.qs-proof-grid-step3 .qs-doc-layer > em,.qs-proof-grid-step3 .qs-doc-layer > strong { position:relative; z-index:1; }
.qs-proof-grid-step3 .qs-doc-layer > span { color:#78933f; font-weight:700; }
.qs-proof-grid-step3 .qs-doc-layer b { font-size:1.1rem; }
.qs-proof-grid-step3 .qs-doc-layer p { margin:.48rem 0 0; }
.qs-proof-grid-step3 .qs-doc-layer em { border:1px solid rgba(82,108,57,.18); border-radius:999px; padding:5px 9px; font-style:normal; font-size:.67rem; letter-spacing:.08em; text-transform:uppercase; color:#65725f; }
.qs-proof-grid-step3 .qs-doc-layer strong { position:absolute; right:22px; bottom:18px; transition:transform .3s ease,color .3s ease; }
.qs-proof-grid-step3 .qs-doc-layer:hover strong { transform:translate(3px,-3px); color:#78933f; }
.qs-compliance-foot { margin-top:24px; border-top:0 !important; background:rgba(239,243,226,.58); padding:22px 24px !important; }

/* COMMERCIAL SUPPLY: read as one connected route, not four independent boxes. */
.qs-commercial-flow-step3 { position:relative; gap:14px !important; }
.qs-commercial-flow-step3::before { content:""; position:absolute; left:6%; right:6%; top:31px; height:1px; background:linear-gradient(90deg,rgba(139,169,66,.15),rgba(139,169,66,.75),rgba(139,169,66,.15)); z-index:0; }
.qs-commercial-flow-step3::after { content:""; position:absolute; top:28px; width:7px; height:7px; border-radius:50%; background:#a6c950; box-shadow:0 0 0 5px rgba(166,201,80,.1); animation:qsRoutePulse 6s linear infinite; z-index:1; }
@keyframes qsRoutePulse { from{left:6%;opacity:0} 8%{opacity:1} 92%{opacity:1} to{left:93%;opacity:0} }
.qs-commercial-flow-step3 article { position:relative; z-index:2; min-height:210px; background:rgba(249,249,243,.6); border:1px solid rgba(42,56,46,.13); border-radius:6px; padding:24px 22px; transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease,background .32s ease; overflow:hidden; }
.qs-commercial-flow-step3 article::before { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,#8eaa48,#c9dc78); transform:scaleX(0); transform-origin:left; transition:transform .38s ease; }
.qs-commercial-flow-step3 article > span { display:inline-flex; width:34px; height:34px; border-radius:50%; align-items:center; justify-content:center; background:#1d2c24; color:#dcef81; font-size:.7rem; margin-bottom:34px; box-shadow:0 0 0 7px #efefe8; }
.qs-commercial-flow-step3 article:hover { transform:translateY(-6px); border-color:rgba(121,151,62,.35); background:rgba(245,248,232,.95); box-shadow:0 14px 34px rgba(28,42,35,.08); }
.qs-commercial-flow-step3 article:hover::before { transform:scaleX(1); }
.qs-commercial-foot { margin-top:26px !important; }

@media (max-width:900px){
  .qs-responsible-list-step3 .qs-source-card{grid-template-columns:112px 30px minmax(0,1fr);gap:14px}.qs-source-image{height:92px}
  .qs-proof-grid-step3{grid-template-columns:1fr}.qs-proof-grid-step3 .qs-doc-layer:nth-child(5){grid-column:auto}
  .qs-commercial-flow-step3::before,.qs-commercial-flow-step3::after{display:none}
}
@media (max-width:620px){
  .qs-responsible-list-step3 .qs-source-card{grid-template-columns:1fr 32px;}.qs-source-image{grid-column:1/-1;height:170px}.qs-source-card>div:last-child{grid-column:2/-1}.qs-source-card>span{grid-column:1/2;grid-row:2}
}
@media (prefers-reduced-motion:reduce){.qs-venn-brand-step3,.qs-venn-coreglow-v21,.qs-venn-stage-v21::after,.qs-commercial-flow-step3::after{animation:none!important}}
