.promo-shell{max-width:1120px;margin:0 auto;padding:24px 20px 56px;color:var(--ink,#172b25)}
.promo-shell h1{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.16}.promo-shell h2{margin:20px 0 12px}
.promo-lead{font-size:1.05rem;line-height:1.65;color:var(--ink-soft,#485c56);max-width:760px}
.promo-hero{border-radius:20px;padding:clamp(18px,3vw,35px);background:#e8f5ee;border:1px solid #bedecd;margin:18px 0}
.promo-hero p{max-width:760px}.promo-hero a,.promo-button{display:inline-block;background:#10614a;color:white!important;border-radius:12px;padding:12px 17px;font-weight:700;text-decoration:none;margin:10px 0}
.promo-hero a:hover,.promo-button:hover{background:#0b4535}
.promo-disclosure{color:#5d6661;font-size:.84rem;line-height:1.45;margin:5px 0 15px}
.promo-controls{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;margin:25px 0;background:#f3f7f4;padding:18px;border-radius:16px}
.promo-controls label{font-size:.82rem;color:#3f5348;display:grid;gap:4px}
.promo-controls input,.promo-controls select{min-width:0;width:100%;font:inherit;padding:11px;border:1px solid #b9cabe;border-radius:10px;background:#fff;color:#172b25}
.promo-count{font-size:.92rem;color:#52665c}
.promo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:15px 0}
.promo-card{background:#fff;border:1px solid #dfe9e0;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:7px;min-width:0;box-shadow:0 2px 7px #091b1111}
.promo-card h3{font-size:1.05rem;line-height:1.35;margin:4px 0}.promo-card .promo-tag{font-size:.78rem;color:#496e5d;font-weight:700}
.promo-card .promo-desc{font-size:.92rem;line-height:1.5;overflow-wrap:anywhere}
.promo-card code{font-weight:700;color:#154f3c;padding:6px;border-radius:6px;background:#eef6f0}
.promo-card button{border:1px solid #10614a;background:#fff;color:#10614a;cursor:pointer;border-radius:10px;padding:8px;margin-left:8px}
.promo-card .promo-bottom{margin-top:auto}.promo-card .promo-small{color:#5d6b64;font-size:.78rem;overflow-wrap:anywhere}
.promo-empty{padding:25px;border:1px dashed #adbfaf;border-radius:12px;color:#465f50}
@media(max-width:800px){.promo-controls{grid-template-columns:1fr 1fr}.promo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.promo-shell{padding:18px 12px}.promo-controls,.promo-grid{grid-template-columns:1fr}}
