/* НПК Грааль — видео */
.gv-section{margin:28px 0 36px;padding:24px;border-radius:20px;background:#f3f7f1;border:1px solid #dfe8dc}
.gv-section__head{margin:0 0 18px;max-width:720px}
.gv-section__kicker{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2f6b4f;margin-bottom:6px}
.gv-section__head h2{margin:0 0 6px;font-size:26px;line-height:1.2;color:#17221c}
.gv-section__head p{margin:0;color:#4f5d55;font-size:15px}
.gv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.gv-grid--one{grid-template-columns:minmax(0,640px)}
.gv-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;background:#fff;border:1px solid #dfe8dc;border-radius:16px;overflow:hidden;transition:box-shadow .2s,transform .2s}
.gv-card:hover{box-shadow:0 10px 28px rgba(23,48,35,.14);transform:translateY(-2px)}
.gv-card:focus-visible{outline:3px solid #9fcf4f;outline-offset:2px}
.gv-card__media{position:relative;display:block;aspect-ratio:16/9;background:#e8efe8}
.gv-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.gv-card__play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(31,77,58,.92);color:#c8ec7c;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.25);transition:transform .2s}
.gv-card__play svg{width:30px;height:30px;margin-left:4px}
.gv-card:hover .gv-card__play,.gv-teaser__open:hover .gv-card__play{transform:scale(1.08)}
.gv-card__dur{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.72);color:#fff;font-size:12px;font-weight:600;padding:3px 7px;border-radius:6px}
.gv-card__body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}
.gv-card__body strong{font-size:16px;line-height:1.3;color:#17221c}
.gv-card__body span{font-size:13px;line-height:1.4;color:#5d6b62}

.gv-modal{position:fixed;inset:0;z-index:100000;background:rgba(8,18,13,.82);display:flex;align-items:center;justify-content:center;padding:16px}
.gv-modal__box{position:relative;width:min(1100px,100%);background:#0d1712;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.gv-modal__video{display:block;width:100%;max-height:78vh;background:#000;aspect-ratio:16/9}
.gv-modal__cap{display:flex;flex-direction:column;gap:2px;padding:12px 16px 14px;color:#e8f2ea}
.gv-modal__cap strong{font-size:16px}
.gv-modal__cap span{font-size:13px;color:#a9bdb0}
.gv-modal__x{position:absolute;top:8px;right:8px;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:26px;line-height:40px;cursor:pointer}
.gv-modal__x:hover{background:rgba(0,0,0,.85)}
html.gv-lock{overflow:hidden}

.gv-teaser{position:fixed;right:20px;bottom:20px;z-index:99990;width:340px;max-width:calc(100vw - 32px);background:#fff;border:1px solid #dfe8dc;border-radius:18px;box-shadow:0 16px 44px rgba(23,48,35,.25);overflow:hidden;opacity:0;transform:translateY(24px);transition:opacity .3s,transform .3s}
.gv-teaser--in{opacity:1;transform:none}
.gv-teaser__open{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:100%}
.gv-teaser__open:focus-visible{outline:3px solid #9fcf4f;outline-offset:-3px}
.gv-teaser__media{position:relative;display:block;aspect-ratio:16/9;background:#e8efe8}
.gv-teaser__media img{width:100%;height:100%;object-fit:cover;display:block}
.gv-teaser__media .gv-card__play{width:56px;height:56px;margin:-28px 0 0 -28px}
.gv-teaser__body{display:flex;flex-direction:column;gap:3px;padding:12px 16px 14px}
.gv-teaser__kicker{font-size:12px;font-weight:700;color:#2f6b4f;text-transform:uppercase;letter-spacing:.06em}
.gv-teaser__body strong{font-size:17px;color:#17221c}
.gv-teaser__body span:last-child{font-size:13px;color:#5d6b62;line-height:1.4}
.gv-teaser__x{position:absolute;top:8px;right:8px;z-index:2;width:32px;height:32px;border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:20px;line-height:32px;cursor:pointer}
.gv-teaser__x:hover{background:rgba(0,0,0,.8)}
@media (max-width:640px){
  .gv-section{padding:16px;border-radius:16px}
  .gv-section__head h2{font-size:22px}
  .gv-teaser{right:16px;left:16px;bottom:16px;width:auto}
  .gv-teaser__media{aspect-ratio:21/9}
}
