
.cv-section{ background:#fff; padding:54px 22px; }
.cv-wrap{ max-width:1120px; margin:0 auto; }
.cv-eyebrow{ font-size:0.68rem; font-weight:800; letter-spacing:0.15em; text-transform:uppercase; color:#7d9e77; margin-bottom:8px; }
.cv-section h2{ font-family:Georgia,serif; font-weight:700; color:#243447; font-size:clamp(1.6rem,3.3vw,2.2rem); margin:0; line-height:1.15; }
.cv-sub{ margin:11px 0 0; font-size:1rem; color:#5a6a78; line-height:1.6; max-width:680px; }
.cv-intro{ margin-top:22px; background:#f3f7f1; border:1px solid #dde6d8; border-radius:18px; padding:20px 24px; }
.cv-intro p{ margin:0; font-size:0.95rem; color:#46566a; line-height:1.65; }
.cv-intro strong{ color:#243447; }
/* share form */
.cv-share{ margin-top:26px; background:#fff; border:1px solid #dde6d8; border-radius:22px; box-shadow:0 6px 26px rgba(36,52,71,0.05); padding:26px; }
.cv-share-head{ font-weight:800; color:#243447; font-size:1.05rem; margin-bottom:18px; display:flex; align-items:center; gap:8px; }
.cv-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cv-field{ display:flex; flex-direction:column; }
.cv-field.cv-full{ grid-column:1 / -1; }
.cv-label{ font-size:0.74rem; font-weight:700; color:#46566a; margin-bottom:6px; }
.cv-input, .cv-select, .cv-textarea{ width:100%; box-sizing:border-box; border:1.5px solid #dde6d8; border-radius:11px; padding:11px 13px; font-size:0.9rem; font-family:inherit; color:#243447; background:#fff; transition:border-color .15s; }
.cv-input:focus, .cv-select:focus, .cv-textarea:focus{ outline:none; border-color:#7d9e77; }
.cv-textarea{ resize:vertical; min-height:70px; }
.cv-submit{ margin-top:18px; background:#2f5d3a; color:#fff; border:none; border-radius:999px; padding:13px 28px; font-size:0.92rem; font-weight:800; cursor:pointer; font-family:inherit; transition:.18s; }
.cv-submit:hover{ filter:brightness(0.93); transform:translateY(-1px); }
.cv-note{ margin-top:16px; display:flex; gap:9px; align-items:flex-start; background:#f6f9f5; border:1px dashed #cdd9ce; border-radius:13px; padding:12px 15px; font-size:0.82rem; color:#5a6a78; line-height:1.55; }
/* toolbar */
.cv-toolbar{ margin-top:30px; display:flex; flex-direction:column; gap:14px; }
.cv-search{ width:100%; box-sizing:border-box; border:1.5px solid #dde6d8; border-radius:999px; padding:12px 18px; font-size:0.92rem; font-family:inherit; color:#243447; background:#fff; }
.cv-search:focus{ outline:none; border-color:#7d9e77; }
.cv-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.cv-filterbtn{ font-size:0.78rem; font-weight:700; color:#46566a; background:#fff; border:1.5px solid #e3e8ea; border-radius:999px; padding:7px 14px; cursor:pointer; font-family:inherit; transition:.15s; white-space:nowrap; }
.cv-filterbtn:hover{ border-color:#7d9e77; }
.cv-filterbtn.cv-filteron{ background:#243447; border-color:#243447; color:#fff; }
/* grid + cards */
.cv-grid{ margin-top:22px; display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.cv-vid{ background:#fff; border:1px solid #e8eef0; border-radius:20px; overflow:hidden; box-shadow:0 4px 20px rgba(36,52,71,0.05); display:flex; flex-direction:column; transition:transform .18s, box-shadow .18s; }
.cv-vid:hover{ transform:translateY(-3px); box-shadow:0 14px 32px rgba(36,52,71,0.10); }
.cv-vid.cv-reported{ opacity:0.6; }
.cv-thumb{ position:relative; aspect-ratio:16/9; background:linear-gradient(135deg,#e7efe4,#dfeaf3); cursor:pointer; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.cv-thumb-ph{ font-size:2.6rem; opacity:0.85; }
.cv-thumb-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cv-play{ position:absolute; width:54px; height:54px; border-radius:50%; background:rgba(36,52,71,0.82); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.2rem; padding-left:3px; box-shadow:0 4px 14px rgba(0,0,0,0.25); }
.cv-thumb:hover .cv-play{ background:#2f5d3a; }
.cv-vid-body{ padding:16px 17px 17px; display:flex; flex-direction:column; flex:1; }
.cv-cat{ align-self:flex-start; font-size:0.64rem; font-weight:800; letter-spacing:0.03em; text-transform:uppercase; color:#4a7a4e; background:rgba(125,164,126,0.15); border-radius:8px; padding:4px 9px; margin-bottom:10px; }
.cv-vid-title{ font-weight:800; font-size:0.98rem; color:#243447; line-height:1.32; }
.cv-creator{ font-size:0.8rem; color:#5a6a78; margin-top:5px; }
.cv-creator strong{ color:#243447; }
.cv-vid-desc{ font-size:0.84rem; color:#5a6a78; line-height:1.5; margin-top:9px; }
.cv-kws{ display:flex; flex-wrap:wrap; gap:6px; margin-top:11px; }
.cv-kw{ font-size:0.68rem; font-weight:600; color:#5b8db8; }
.cv-actions{ display:flex; flex-wrap:wrap; gap:7px; margin-top:15px; padding-top:14px; border-top:1px solid #eef2f0; }
.cv-btn{ font-size:0.74rem; font-weight:700; border-radius:9px; padding:7px 11px; cursor:pointer; font-family:inherit; border:1.5px solid #dde6d8; background:#fff; color:#46566a; transition:.14s; }
.cv-btn:hover{ border-color:#7d9e77; color:#243447; }
.cv-btn-watch{ background:#2f5d3a; border-color:#2f5d3a; color:#fff; }
.cv-btn-watch:hover{ filter:brightness(0.92); color:#fff; }
.cv-btn-save.on, .cv-btn-follow.on{ background:#5a8a55; border-color:#5a8a55; color:#fff; }
.cv-btn-report.on{ background:#b9532f; border-color:#b9532f; color:#fff; }
/* empty + cta */
.cv-empty{ margin-top:22px; text-align:center; background:#f6f9f5; border:1px dashed #cdd9ce; border-radius:20px; padding:48px 24px; }
.cv-empty-ico{ font-size:2.4rem; }
.cv-empty-t{ font-family:Georgia,serif; font-weight:700; color:#243447; font-size:1.2rem; margin:10px 0 6px; }
.cv-empty-p{ font-size:0.92rem; color:#5a6a78; max-width:440px; margin:0 auto; line-height:1.55; }
.cv-cta{ margin-top:34px; background:linear-gradient(135deg,#243447,#2f4a40); border-radius:24px; padding:34px 30px; display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.cv-cta-title{ font-family:Georgia,serif; font-weight:700; color:#fff; font-size:1.5rem; }
.cv-cta-text{ margin:8px 0 0; color:rgba(255,255,255,0.82); font-size:0.95rem; line-height:1.6; max-width:560px; }
.cv-cta-l{ flex:1; min-width:240px; }
.cv-cta-btn{ background:#fff; color:#243447; border:none; border-radius:999px; padding:14px 26px; font-size:0.92rem; font-weight:800; cursor:pointer; font-family:inherit; white-space:nowrap; transition:.18s; }
.cv-cta-btn:hover{ transform:translateY(-1px); filter:brightness(0.96); }
/* toast */
#cvToast{ position:fixed; left:50%; bottom:28px; transform:translateX(-50%) translateY(20px); background:#243447; color:#fff; padding:13px 22px; border-radius:999px; font-size:0.88rem; font-weight:600; box-shadow:0 10px 30px rgba(0,0,0,0.25); opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; z-index:9999; max-width:90vw; text-align:center; }
#cvToast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
@media(max-width:680px){ .cv-form-grid{ grid-template-columns:1fr; } }
