/* components.css — кнопки, картки, бейджі, плашки */

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--ff-head);font-weight:600;font-size:.95rem;padding:14px 26px;border-radius:14px;transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--yellow-400);color:var(--ink);box-shadow:0 14px 30px -14px rgba(245,197,24,.9)}
.btn-primary:hover{transform:translateY(-3px);background:var(--yellow-300)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3)}
.btn-ghost:hover{background:rgba(255,255,255,.22);transform:translateY(-3px)}
.btn-dark{background:var(--blue-700);color:#fff}
.btn-dark:hover{background:var(--blue-800);transform:translateY(-3px)}

/* ===== Badge / tag ===== */
.badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--ff-head);font-weight:600;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 13px;border-radius:999px;background:var(--paper-2);color:var(--blue-700)}
.badge-yellow{background:var(--yellow-400);color:var(--ink)}
.badge-dark{background:rgba(255,255,255,.14);color:#fff}
.tag{font-size:.78rem;font-weight:600;color:var(--blue-600)}

/* ===== Cards ===== */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-media{position:relative;aspect-ratio:16/10;overflow:hidden}
.card-media .ph{position:absolute;inset:0;transition:transform .5s}
.card:hover .card-media .ph{transform:scale(1.06)}
.card-media .badge{position:absolute;top:14px;left:14px;z-index:2}
.card-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.card-body h3{transition:color .2s}
.card:hover .card-body h3{color:var(--blue-700)}
.card-body p{font-size:.96rem;color:var(--muted)}
.card-meta{margin-top:auto;display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--muted);padding-top:6px}
.card-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--yellow-500)}
.read-more{font-family:var(--ff-head);font-weight:600;font-size:.86rem;color:var(--blue-700);display:inline-flex;gap:6px;align-items:center}
.read-more svg{width:15px;height:15px;transition:transform .2s}
.card:hover .read-more svg{transform:translateX(4px)}

/* Photo placeholders built from CSS gradients (no broken images) */
.ph{background:linear-gradient(135deg,var(--blue-800),var(--blue-600));position:relative}
.ph::after{content:"";position:absolute;inset:0;background:radial-gradient(420px 220px at 80% 10%,rgba(255,212,0,.32),transparent 60%),repeating-linear-gradient(125deg,rgba(255,255,255,.06) 0 2px,transparent 2px 22px)}
.ph-pitch::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.04)),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 14px,transparent 14px 28px);z-index:1}
.ph-stripes{background:repeating-linear-gradient(135deg,var(--blue-700) 0 22px,var(--blue-800) 22px 44px)}
.ph-gold{background:linear-gradient(140deg,var(--blue-800),var(--blue-700) 60%,var(--yellow-500))}

/* ===== Stat tiles ===== */
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;box-shadow:var(--shadow-sm)}
.stat .num{font-family:var(--ff-head);font-weight:900;font-size:clamp(2.1rem,4vw,3rem);background:linear-gradient(120deg,var(--blue-700),var(--blue-500));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.stat .lbl{margin-top:8px;font-size:.92rem;color:var(--muted)}
.stat--dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.stat--dark .num{background:linear-gradient(120deg,var(--yellow-300),#fff);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat--dark .lbl{color:#bcc9f3}

/* ===== Cookie banner ===== */
.cookie{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(160%);width:min(720px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px 22px;z-index:90;display:flex;gap:18px;align-items:center;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.cookie.show{transform:translateX(-50%) translateY(0)}
.cookie p{font-size:.9rem;margin:0;color:var(--muted)}
.cookie p strong{color:var(--ink)}
.cookie-actions{display:flex;gap:10px;flex:none}
.cookie .btn{padding:11px 18px;font-size:.85rem;border-radius:11px}
.cookie .btn-link{background:none;color:var(--blue-700);font-family:var(--ff-head);font-weight:600;font-size:.85rem;padding:11px 8px}
@media(max-width:640px){.cookie{flex-direction:column;align-items:stretch;text-align:center}.cookie-actions{justify-content:center}}

/* ===== Pills / chips row ===== */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:.86rem;font-weight:500;color:var(--blue-800);box-shadow:var(--shadow-sm)}
.chip svg{width:14px;height:14px;color:var(--yellow-500)}

/* ===== Reveal on scroll ===== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ===== Real photos ===== */
/* Fills any media container (card-media, player .pp, figure, aside media) */
.media-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0}
.card-media .badge{z-index:3}
.card:hover .media-img{transform:scale(1.06);transition:transform .5s}
/* subtle brand tint over card photos so yellow badge/text stays legible */
.card-media .media-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,26,82,.05) 0%,rgba(7,26,82,.42) 100%)}
/* article figure photo replaces gradient .ph */
.article figure .fig-media{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.article figure .fig-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* hero background photo layer (sits under the existing gradient ::before/::after) */
.hero-bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.hero{isolation:isolate}
/* generic media block used in split/aside */
.photo-block{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3}
.photo-block img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
