/* ==========================================================================
   PORTFOLIO SHOWCASE — style
   Shares ERKYLA GROUP tokens (navy / gold / cream) for brand continuity.
   Signature: 3D tilt case-study cards with a gold corner "visit" reveal —
   an Awwwards/Webflow-showcase feel built with vanilla JS tilt math.
   ========================================================================== */

:root{
  --navy:#1f2a44;
  --navy-deep:#141c30;
  --navy-soft:#2a3757;
  --cream:#e8dcc8;
  --cream-soft:#f4eee2;
  --gold:#c6a75e;
  --gold-light:#dcc084;
  --gold-deep:#a8843c;
  --white:#ffffff;
  --ink:#1f2a44;
  --ink-soft:#5b6480;
  --ink-faint:#8a91a8;
  --line:#e2dccb;

  --font-display:'Poppins', sans-serif;
  --font-body:'Inter', sans-serif;

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-pill:999px;

  --shadow-sm:0 4px 16px rgba(20,28,48,0.08);
  --shadow-md:0 16px 40px rgba(20,28,48,0.14);
  --shadow-lg:0 30px 70px rgba(20,28,48,0.22);

  --container:1280px;
  --ease:cubic-bezier(.22,.8,.28,1);
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream-soft);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font:inherit; border:none; background:none; cursor:pointer;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

.container{width:100%; max-width:var(--container); margin:0 auto; padding:0 28px;}
.text-gold{color:var(--gold-deep);}

.grid-overlay{
  position:fixed; inset:0; pointer-events:none; z-index:9999; opacity:.02; mix-blend-mode:multiply;
  background-image:radial-gradient(circle, #1f2a44 1px, transparent 1px);
  background-size:26px 26px;
}

.eyebrow{
  font-family:var(--font-display); font-size:12.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-deep); font-weight:700; margin-bottom:14px;
}

/* ============ BUTTONS ============ */
.btn{
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:14px 28px; border-radius:var(--radius-pill); font-weight:600; font-size:15px;
  font-family:var(--font-display); transition:transform .35s var(--ease), box-shadow .35s var(--ease);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-3px);}
.btn-lg{padding:16px 34px; font-size:15.5px;}
.btn-gold{
  background:linear-gradient(135deg, var(--gold-light), var(--gold) 60%, var(--gold-deep));
  color:var(--navy-deep);
  box-shadow:0 12px 28px rgba(198,167,94,.4);
}
.btn-outline-navy{
  border:1.5px solid var(--navy);
  color:var(--navy);
  padding:10px 20px;
  font-size:13.5px;
  gap:8px;
}
.btn-outline-navy svg{width:15px; height:15px; transition:transform .3s var(--ease);}
.btn-outline-navy:hover{background:var(--navy); color:var(--white);}
.btn-outline-navy:hover svg{transform:translateX(3px);}

/* ============ FADE ANIMATIONS ============ */
.fade-up{opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.fade-up.in-view{opacity:1; transform:none;}
.fade-up[style*="--d"]{transition-delay:calc(var(--d,0) * 120ms);}

/* ============ HEADER ============ */
.pf-header{
  background:linear-gradient(165deg, var(--navy-deep) 0%, var(--navy) 60%, var(--navy-soft) 100%);
  color:var(--white);
  padding:110px 0 60px;
  position:relative;
  overflow:hidden;
}
.pf-header::before{
  content:'';
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(198,167,94,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(198,167,94,.07) 1px, transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse at 75% 20%, black 5%, transparent 65%);
}
.pf-header-inner{position:relative; z-index:1; text-align:center; max-width:640px; margin:0 auto;}
.pf-title{font-family:var(--font-display); font-weight:800; font-size:clamp(34px,5vw,52px); margin-bottom:16px;}
.pf-subtitle{font-size:16px; color:rgba(255,255,255,.75); line-height:1.7;}

.stat-strip{
  position:relative; z-index:1;
  display:flex; justify-content:center; gap:0;
  margin-top:56px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(198,167,94,.25);
  border-radius:var(--radius-lg);
  backdrop-filter:blur(8px);
  overflow:hidden;
}
.stat-card{
  flex:1; text-align:center; padding:28px 20px;
  border-right:1px solid rgba(255,255,255,.1);
}
.stat-card:last-child{border-right:none;}
.stat-num, .stat-suffix{font-family:var(--font-display); font-weight:800; font-size:clamp(24px,3vw,32px); color:var(--gold-light);}
.stat-label{display:block; margin-top:6px; font-size:12.5px; color:rgba(255,255,255,.65); letter-spacing:.03em;}

@media (max-width:700px){
  .stat-strip{flex-direction:column;}
  .stat-card{border-right:none; border-bottom:1px solid rgba(255,255,255,.1);}
  .stat-card:last-child{border-bottom:none;}
}

/* ============ TOOLBAR ============ */
.pf-toolbar-section{padding:56px 0 0;}
.pf-toolbar{
  display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between;
  margin-bottom:14px;
}
.pf-search{
  display:flex; align-items:center; gap:10px;
  background:var(--white); border:1.5px solid var(--line); border-radius:var(--radius-pill);
  padding:12px 20px; min-width:260px; flex:1; max-width:360px;
  transition:border-color .3s, box-shadow .3s;
}
.pf-search:focus-within{border-color:var(--gold); box-shadow:0 0 0 4px rgba(198,167,94,.15);}
.pf-search svg{width:18px; height:18px; color:var(--ink-faint); flex-shrink:0;}
.pf-search input{border:none; outline:none; font-family:var(--font-body); font-size:14.5px; width:100%; background:transparent; color:var(--ink);}

.pf-filters{display:flex; flex-wrap:wrap; gap:10px;}
.pf-filter-btn{
  padding:10px 20px; border-radius:var(--radius-pill); font-size:13.5px; font-weight:600;
  font-family:var(--font-display); background:var(--white); border:1.5px solid var(--line); color:var(--ink-soft);
  transition:all .3s var(--ease);
}
.pf-filter-btn:hover{border-color:var(--gold); color:var(--navy);}
.pf-filter-btn.active{
  background:var(--navy); border-color:var(--navy); color:var(--white);
}

.pf-result-count{font-size:13.5px; color:var(--ink-faint); margin-bottom:30px; font-weight:500;}

/* ============ GRID / CARDS ============ */
.pf-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:30px;
  padding-bottom:40px;
}

.pf-card{
  opacity:0; transform:translateY(36px) scale(.98);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
  perspective:1200px;
}
.pf-card.pf-in{opacity:1; transform:none;}
.pf-card.pf-hidden{display:none;}

.pf-card-tilt{
  background:var(--white);
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  transition:box-shadow .4s var(--ease), transform .12s linear;
  transform-style:preserve-3d;
  will-change:transform;
  height:100%;
  display:flex;
  flex-direction:column;
}
.pf-card-tilt:hover{box-shadow:var(--shadow-lg);}

.pf-shot-wrap{position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--cream);}
.pf-shot{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease);}
.pf-card-tilt:hover .pf-shot{transform:scale(1.08);}

.pf-shot-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,28,48,0) 40%, rgba(20,28,48,.82) 100%);
  display:flex; align-items:flex-end; justify-content:center;
  padding-bottom:24px;
  opacity:0; transition:opacity .4s var(--ease);
}
.pf-card-tilt:hover .pf-shot-overlay{opacity:1;}

.pf-visit-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--gold); color:var(--navy-deep);
  font-family:var(--font-display); font-weight:700; font-size:13.5px;
  padding:11px 22px; border-radius:var(--radius-pill);
  transform:translateY(14px); transition:transform .4s var(--ease);
  box-shadow:0 10px 24px rgba(0,0,0,.25);
}
.pf-card-tilt:hover .pf-visit-btn{transform:translateY(0);}
.pf-visit-btn svg{width:15px; height:15px;}

.pf-industry-badge{
  position:absolute; top:16px; left:16px;
  background:rgba(20,28,48,.82); color:var(--gold-light);
  font-family:var(--font-display); font-weight:700; font-size:11px; letter-spacing:.04em; text-transform:uppercase;
  padding:7px 14px; border-radius:var(--radius-pill);
  backdrop-filter:blur(4px);
}

.pf-card-body{padding:24px 24px 26px; display:flex; flex-direction:column; flex:1;}
.pf-card-title{font-family:var(--font-display); font-weight:700; font-size:18px; color:var(--navy); margin-bottom:8px;}
.pf-card-desc{font-size:13.5px; color:var(--ink-soft); line-height:1.65; margin-bottom:16px; flex:1;}

.pf-tech-row{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:20px;}
.pf-tech-badge{
  font-size:11px; font-weight:600; color:var(--gold-deep);
  background:rgba(198,167,94,.12); border:1px solid rgba(198,167,94,.3);
  padding:5px 11px; border-radius:var(--radius-pill);
}

.pf-card-cta{align-self:flex-start;}

@media (max-width:1080px){ .pf-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){
  .pf-grid{grid-template-columns:1fr;}
  .pf-toolbar{flex-direction:column; align-items:stretch;}
  .pf-search{max-width:none;}
}

.pf-empty{text-align:center; padding:60px 0; color:var(--ink-faint); font-size:15px;}

/* ============ CTA STRIP ============ */
.pf-cta{
  background:linear-gradient(120deg, var(--gold-light), var(--gold) 55%, var(--gold-deep));
  padding:80px 0; text-align:center;
}
.pf-cta-inner{max-width:520px; margin:0 auto;}
.pf-cta h2{font-family:var(--font-display); font-weight:800; font-size:clamp(24px,3.4vw,32px); color:var(--navy-deep); margin-bottom:12px;}
.pf-cta p{color:rgba(31,42,68,.75); margin-bottom:26px; font-size:15.5px;}

/* ============ FOOTER ============ */
.pf-footer{background:var(--navy-deep); color:rgba(255,255,255,.7); padding:30px 0;}
.pf-footer-inner{text-align:center; font-size:13.5px;}
.pf-footer a{color:var(--gold-light); font-weight:600;}
.pf-footer a:hover{text-decoration:underline;}
.pf-copyright{margin-top:8px; color:rgba(255,255,255,.45); font-size:12.5px;}
