/* kv3 project cards (kv3-projects + kv3-portfolio-grid) — source: V3.0/option-3-hive-v2.html (PROJECTS) */
.kv3-feat{position:relative;display:block;border-radius:30px;overflow:hidden;aspect-ratio:2/1;text-decoration:none;color:#fff;background:var(--navy);isolation:isolate;box-shadow:var(--shadow)}
.kv3-feat:hover,.kv3-feat:focus-visible{color:#fff}
.kv3-feat:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.kv3-feat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;z-index:-2;transition:transform 1s var(--ease)}
.kv3-feat::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to left,rgba(15,22,28,.88) 0%,rgba(15,22,28,.55) 38%,rgba(15,22,28,0) 70%),linear-gradient(to top,rgba(15,22,28,.5),transparent 40%)}
html[dir="ltr"] .kv3-feat::after{background:linear-gradient(to right,rgba(15,22,28,.88) 0%,rgba(15,22,28,.55) 38%,rgba(15,22,28,0) 70%),linear-gradient(to top,rgba(15,22,28,.5),transparent 40%)}
.kv3-feat:hover img,.kv3-feat:focus-visible img{transform:scale(1.04)}
.kv3-feat__body{position:absolute;inset-block:0;inset-inline-start:0;width:min(520px,52%);padding:48px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px}
.kv3-feat__body h3{font-size:clamp(30px,3.4vw,46px);font-weight:800;color:#fff}
.kv3-feat__body p{margin:0;color:#E3E7EA;font-size:18px}
.kv3-feat__label{display:inline-flex;align-items:center;gap:10px;align-self:flex-start}
.kv3-p-hex{width:46px;height:52px;display:grid;place-items:center;background:var(--orange);color:var(--navy);font-family:var(--f-head);font-weight:800;font-size:16px;flex-shrink:0;clip-path:var(--hex)}
.kv3-p-hex.hexclip{clip-path:url(#hexR)}
.kv3-p-tag{display:inline-block;font-family:var(--f-head);font-weight:600;font-size:14px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;max-width:100%}
.kv3-p-go{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--orange);color:var(--navy);font-weight:800;font-size:22px;transition:transform .3s var(--ease);flex-shrink:0}
html[dir="ltr"] .kv3-p-go{transform:scaleX(-1)}
.kv3-feat:hover .kv3-p-go,.kv3-feat:focus-visible .kv3-p-go,.kv3-pcard:hover .kv3-p-go,.kv3-pcard:focus-visible .kv3-p-go{transform:translateX(-6px)}
.kv3-feat .kv3-p-go{margin-top:8px}
.kv3-pgrid{display:grid;grid-template-columns:1fr 1fr;gap:32px 28px;list-style:none;margin:32px 0 0;padding:0}
.kv3-pgrid > li{margin:0}
.kv3-pcard{display:flex;flex-direction:column;gap:18px;text-decoration:none;color:var(--navy);border-radius:24px}
.kv3-pcard:hover,.kv3-pcard:focus-visible{color:var(--navy)}
.kv3-pcard:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.kv3-pc-media{position:relative;aspect-ratio:4/3;border-radius:24px;overflow:hidden;background:var(--grey);box-shadow:var(--shadow-s);transition:box-shadow .35s}
.kv3-pc-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.kv3-pcard:hover .kv3-pc-media img,.kv3-pcard:focus-visible .kv3-pc-media img{transform:scale(1.06)}
.kv3-pcard:hover .kv3-pc-media,.kv3-pcard:focus-visible .kv3-pc-media{box-shadow:var(--shadow)}
.kv3-pc-media .kv3-p-hex{position:absolute;top:16px;inset-inline-start:16px}
.kv3-pc-body{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-inline:4px}
.kv3-pc-body > div{min-width:0}
.kv3-pc-body .kv3-p-tag{background:var(--orange-soft);border-color:transparent;color:var(--orange-ink);font-size:12px;font-weight:600;padding:2px 9px;margin-top:8px;line-height:1.5}
.kv3-pc-body h3{font-size:clamp(22px,2vw,28px);font-weight:700;margin-top:10px;color:var(--navy)}
.kv3-pc-body p{margin:4px 0 0;color:var(--muted);font-size:17px}
.kv3-pc-body .kv3-p-go{width:46px;height:46px;font-size:20px;margin-top:4px}
.kv3-projects__more{display:flex;justify-content:center;margin-top:48px}
.kv3-empty{padding:40px;text-align:center;color:var(--muted);border:2px dashed var(--line);border-radius:var(--radius)}
@media (max-width:900px){
  .kv3-feat{aspect-ratio:auto;display:flex;flex-direction:column}
  .kv3-feat img{position:relative;aspect-ratio:4/3;height:auto;z-index:0}
  .kv3-feat::after{display:none}
  .kv3-feat__body{position:static;width:auto;padding:26px 24px 28px;background:var(--navy)}
}
@media (max-width:700px){.kv3-pgrid{grid-template-columns:1fr;gap:28px}}
@media (prefers-reduced-motion:reduce){
  .kv3-feat img,.kv3-pc-media img,.kv3-p-go{transition:none}
}
