/* =========================================================
   HURAK WEB — PORTFOLIO section (#work)
   Expandable cards → inline detail with live, scrollable
   device mockups (desktop / tablet / mobile).
   Reuses tokens from styles.css (--bg, --accent, --font-display…).
   ========================================================= */

/* ---------- section shell ---------- */
.work{position:relative;z-index:5;padding:clamp(70px,12vh,140px) 0}
.work__head{max-width:760px;margin-bottom:clamp(34px,5vh,60px)}
.work__label{display:inline-block;font-family:var(--font-body),sans-serif;font-weight:600;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);
  background:var(--accent);padding:6px 13px;margin-bottom:18px}
.work__title{font-family:var(--font-display),sans-serif;font-weight:700;text-transform:uppercase;
  font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.01em;line-height:1}
.work__lead{margin-top:16px;color:color-mix(in srgb,var(--text) 58%,var(--text-dim));font-weight:300;
  font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.6}

/* =========================================================
   DEVICE MOCKUPS
   ========================================================= */
.mock{position:relative;display:block}
.mock__screen{position:relative;width:100%;overflow:hidden;background:#0b1020;display:block}
.mock__screen iframe{position:absolute;top:0;left:0;border:0;transform-origin:top left;background:#fff}
.mock__shot{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:top center;display:block;background:#fff}
.mock__ph{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;
  font:500 .8rem/1 var(--font-body),sans-serif;color:#6a7596;letter-spacing:.04em;transition:opacity .3s;
  background:repeating-linear-gradient(45deg,#0b1020,#0b1020 12px,#0e1428 12px,#0e1428 24px)}

/* --- desktop browser --- */
.mock--desktop{border:1px solid color-mix(in srgb,var(--text) 16%,transparent);
  box-shadow:0 40px 90px -34px rgba(0,0,0,.75),0 8px 24px -12px rgba(0,0,0,.5)}
.mock--desktop .mock__bar{display:flex;align-items:center;gap:10px;height:36px;padding:0 13px;
  background:#161d33;border-bottom:1px solid color-mix(in srgb,var(--text) 10%,transparent)}
.mock__dots{display:flex;gap:7px;flex:0 0 auto}
.mock__dots i{width:11px;height:11px;border-radius:50%;display:block;background:#39425f}
.mock__dots i:nth-child(1){background:#ff5f57}.mock__dots i:nth-child(2){background:#febc2e}.mock__dots i:nth-child(3){background:#28c840}
.mock__url{flex:1;height:20px;display:flex;align-items:center;padding:0 10px;font:500 .68rem/1 var(--font-body),sans-serif;
  color:#9aa6c4;background:#0c1226;border:1px solid color-mix(in srgb,var(--text) 8%,transparent);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* --- tablet --- */
.mock--tablet{padding:13px 11px;border-radius:20px;background:#11182c;
  box-shadow:0 30px 70px -28px rgba(0,0,0,.7),inset 0 0 0 1px color-mix(in srgb,var(--text) 10%,transparent)}
.mock--tablet .mock__screen{border-radius:5px}

/* --- mobile (NO top notch / island) --- */
.mock--mobile{padding:8px;border-radius:26px;background:#11182c;
  box-shadow:0 26px 60px -24px rgba(0,0,0,.7),inset 0 0 0 1px color-mix(in srgb,var(--text) 12%,transparent)}
.mock--mobile .mock__screen{border-radius:18px}

/* live (interactive) frame affordance */
.mock.is-live .mock__screen{cursor:default}
.mock.is-live{outline:1px solid color-mix(in srgb,var(--accent) 0%,transparent)}

/* =========================================================
   INFO BLOCK
   ========================================================= */
.pf-info__top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.pf-idx{font-family:var(--font-display),sans-serif;font-weight:700;font-size:1.1rem;color:var(--red)}
.pf-cat{font:600 .72rem/1 var(--font-body),sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.pf-title{font-family:var(--font-display),sans-serif;font-weight:700;text-transform:uppercase;
  font-size:clamp(1.5rem,2.6vw,2.2rem);letter-spacing:-.01em;line-height:1.02;margin-bottom:14px}
.pf-desc{color:color-mix(in srgb,var(--text) 62%,var(--text-dim));font-weight:300;line-height:1.6;
  font-size:clamp(.98rem,1.15vw,1.08rem);max-width:48ch;margin-bottom:18px}
.pf-tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin-bottom:24px}
.pf-tags li{font:500 .76rem/1 var(--font-body),sans-serif;color:var(--text);padding:7px 12px;
  border:1px solid color-mix(in srgb,var(--text) 16%,transparent)}
.pf-link{text-decoration:none}
.pf-link .ic{transition:transform .25s ease}
.pf-link:hover .ic{transform:translateX(4px)}

/* ---- stack chips ---- */
.pf-stack{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.pf-stack li{font:600 .72rem/1 var(--font-body),sans-serif;color:var(--text);padding:6px 11px;
  background:color-mix(in srgb,var(--text) 7%,transparent);
  border:1px solid color-mix(in srgb,var(--text) 12%,transparent)}

/* ---- quick facts (Тип · Термін · PageSpeed) ---- */
.pf-facts{display:flex;flex-wrap:wrap;gap:14px 26px;margin-bottom:18px;padding-bottom:18px;
  border-bottom:1px solid color-mix(in srgb,var(--text) 10%,transparent)}
.pf-facts > div{display:flex;flex-direction:column;gap:4px}
.pf-facts span{font:600 .6rem/1.2 var(--font-body),sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}
.pf-facts span em{font-style:normal;opacity:.7}
.pf-facts b{font:600 1rem/1 var(--font-body),sans-serif;color:var(--text)}
.pf-psi{display:inline-flex;align-items:baseline}
.pf-psi i{font-size:.62em;font-style:normal;color:var(--text-dim);margin-left:1px}
.pf-psi.is-green{color:#0cce6b}
.pf-psi.is-orange{color:#ffa400}
.pf-psi.is-red{color:#ff4e42}

/* ---- case study blocks ---- */
.pf-case{margin-bottom:22px}
.pf-case__item{margin-bottom:16px}
.pf-case__item h4{font:600 .66rem/1 var(--font-body),sans-serif;letter-spacing:.1em;text-transform:uppercase;
  color:var(--red);margin-bottom:7px}
.pf-case__item p{font:300 .94rem/1.55 var(--font-body),sans-serif;color:color-mix(in srgb,var(--text) 64%,var(--text-dim))}
.pf-feat{list-style:none;display:flex;flex-direction:column;gap:5px}
.pf-feat li{position:relative;padding-left:15px;font:300 .92rem/1.45 var(--font-body),sans-serif;
  color:color-mix(in srgb,var(--text) 64%,var(--text-dim))}
.pf-feat li::before{content:"";position:absolute;left:0;top:.58em;width:6px;height:6px;background:var(--accent)}
/* short fields side by side */
.pf-case__row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 20px;
  padding-top:14px;border-top:1px solid color-mix(in srgb,var(--text) 8%,transparent)}
.pf-case__row .pf-case__item{margin-bottom:0}

.pf-actions{display:flex;flex-wrap:wrap;gap:10px}
.pf-actions .btn{flex:0 0 auto}

/* =========================================================
   CARD GRID + EXPANDABLE DETAIL
   ========================================================= */
.pf-v4__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px)}

.pf-v4__card{cursor:pointer;border:1px solid color-mix(in srgb,var(--text) 12%,transparent);
  background:color-mix(in srgb,var(--bg-2) 55%,transparent);
  transition:border-color .25s,transform .25s,box-shadow .25s}
.pf-v4__card:hover{border-color:color-mix(in srgb,var(--accent) 55%,transparent);transform:translateY(-4px);
  box-shadow:0 24px 50px -28px rgba(0,0,0,.6)}
.pf-v4__card.is-active{border-color:var(--accent)}

.pf-v4__thumb{height:clamp(170px,21vw,232px);overflow:hidden;border-bottom:1px solid color-mix(in srgb,var(--text) 10%,transparent)}
.pf-v4__thumb .mock--desktop{border:0;box-shadow:none}
.pf-v4__meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px}
.pf-v4__meta-txt h3{font-family:var(--font-display),sans-serif;font-weight:700;text-transform:uppercase;font-size:1.12rem;line-height:1.1}
.pf-v4__meta-txt .pf-cat{display:block;margin-top:5px}
.pf-v4__toggle{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  font:600 .82rem/1 var(--font-body),sans-serif;color:var(--accent)}
.pf-v4__toggle i{font-style:normal;transition:transform .3s ease}
.pf-v4__card.is-active .pf-v4__toggle i{transform:rotate(180deg)}

/* drawer spans the whole grid row, pushing following cards down */
.pf-v4__detail{grid-column:1 / -1;overflow:hidden;max-height:0;opacity:0;
  transition:max-height .55s ease,opacity .4s ease,margin .4s ease,border-color .4s ease;
  border:1px solid transparent;margin:0}
.pf-v4__detail.is-open{max-height:1600px;opacity:1;margin:4px 0 8px;
  border-color:color-mix(in srgb,var(--accent) 35%,transparent);
  background:color-mix(in srgb,var(--bg-2) 60%,transparent)}
.pf-v4__detail-inner{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(26px,3.4vw,52px);
  align-items:stretch;padding:clamp(24px,3.2vw,46px)}

/* media column fills the row height (no empty space under the screenshot) */
.pf-v4__media{position:relative;display:flex;flex-direction:column}
.pf-v4__media .mock--desktop{width:100%;flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.pf-v4__media .mock__bar{flex:0 0 auto}
.pf-v4__hint{flex:0 0 auto;margin-top:14px;font:600 .74rem/1 var(--font-body),sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-dim);display:flex;align-items:center;gap:7px}
.pf-v4__side{align-self:start}

/* detail: scrollable full-page screenshot inside the browser frame */
.mock__scroll{position:relative;width:100%;flex:1 1 0;min-height:clamp(360px,46vh,520px);
  overflow-y:auto;overflow-x:hidden;background:#fff;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 70%,transparent) transparent}
.mock__full{display:block;width:100%;height:auto}
.mock__scroll::-webkit-scrollbar{width:10px}
.mock__scroll::-webkit-scrollbar-track{background:rgba(0,0,0,.06)}
.mock__scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 65%,#888);
  border:2px solid transparent;background-clip:padding-box}
.mock__scroll::-webkit-scrollbar-thumb:hover{background:var(--accent)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:980px){
  .pf-v4__grid{grid-template-columns:repeat(2,1fr)}
  .pf-v4__detail-inner{grid-template-columns:1fr;gap:28px}
  .pf-v4__side{align-self:stretch}
  /* stacked layout → fixed-height screenshot again (don't flex-fill) */
  .pf-v4__media{display:block}
  .pf-v4__media .mock--desktop{flex:none;display:block}
  .mock__scroll{flex:none;min-height:0;height:clamp(380px,56vh,560px)}
}
@media (max-width:620px){
  .pf-v4__grid{grid-template-columns:1fr}
  .pf-v4__thumb{height:clamp(180px,52vw,260px)}
  .mock__scroll{height:clamp(320px,50vh,480px)}
}
