/* =========================================================
   STARWEB PROHOST — PORTFOLIO PAGE
   Base-Lite Tokens • Global Reset • Unified Buttons
   Hero styles are not included here (hero.css handles that)
========================================================= */

/* ---------------------------
   BASE-LITE TOKENS
--------------------------- */
:root {
  --white-soft:#f9fafb;
  --blue:#0a1a33;
  --blue-600:#071327;
  --ink:#0a1a33;
  --ink-2:#12243b;
  --muted:#c5cbd3;

  --brand-gold:#FFD166;

  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:20px;

  --shadow-soft:0 8px 24px rgba(10,26,51,.08);
  --shadow-elev:0 10px 30px rgba(10,26,51,.16);

  --content-max:1280px;
  --section-max:1400px;
}

/* ---------------------------
   RESET — Local Only
--------------------------- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
img, video {
  display: block;
  max-width: 100%;
  height: auto;
}

html {
  font-family: 'Poppins', sans-serif;
  color: #111;
  line-height: 1.45;
  text-rendering: optimizeLegibility;
}

body {
  background:#fff;
  color:#111;
  overflow-x:hidden;
}

/* ---------------------------
   GLOBAL HEADINGS + LINKS
--------------------------- */
h1, h2, h3, h4 {
  font-weight:800;
  letter-spacing:.01em;
  color:var(--ink);
}

a {
  color:var(--blue);
  text-decoration:none;
}



/* =========================================================
   PORTFOLIO PAGE COMPONENTS
========================================================= */

/* ---------------------------------------------------------
   CASE STUDY DETAIL
--------------------------------------------------------- */
.portfolio-detail {
  background:#fff;
  color:var(--ink);
  padding:80px 20px 40px;
}

.portfolio-detail-inner {
  max-width:var(--content-max);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:56px;
  align-items:center;
  transition:opacity .22s ease, transform .22s ease;
}

.portfolio-detail.is-transitioning .portfolio-detail-inner {
  opacity:0;
  transform:translateY(4px);
}

.portfolio-media-frame {
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-elev);
  background:#000;
}

.portfolio-media-frame img,
.portfolio-media-frame video {
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}

.portfolio-copy-eyebrow {
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--muted);
  margin-bottom:6px;
}

.portfolio-detail-title {
  font-size:clamp(2rem,3vw,2.4rem);
  font-weight:800;
  color:var(--blue);
  margin-bottom:12px;
}

.portfolio-detail-lead {
  font-size:1.02rem;
  line-height:1.7;
  color:#333;
  margin-bottom:18px;
  max-width:640px;
}

.portfolio-role {
  font-size:.95rem;
  color:#555;
  margin-bottom:18px;
}

.portfolio-highlights-heading {
  font-size:1rem;
  font-weight:700;
  margin-bottom:8px;
  color:var(--blue);
}

.portfolio-detail-list {
  list-style:disc;
  padding-left:20px;
  margin-bottom:22px;
  font-size:.98rem;
  line-height:1.6;
  color:#333;
}

.portfolio-detail-list li {
  margin-bottom:8px;
}

@media (max-width:880px){
  .portfolio-detail-inner {
    grid-template-columns:1fr;
    gap:32px;
  }
}

/* ---------------------------------------------------------
   RECENT PROJECTS GRID
--------------------------------------------------------- */
.portfolio-showcase {
  background:#fff;
  color:var(--ink);
  padding:80px 20px 100px;
  text-align:center;
}

.portfolio-showcase h2 {
  font-size:clamp(32px,5vw,48px);
  color:var(--blue);
  margin-bottom:20px;
}

.portfolio-subtext {
  max-width:900px;
  margin:0 auto 45px;
  font-size:1.03rem;
  line-height:1.55;
  color:#4b5563;
  padding:0 20px;
}

@media (min-width:1024px){
  .portfolio-subtext { white-space:nowrap; }
}
@media (max-width:1023px){
  .portfolio-subtext { white-space:normal; }
}

.project-grid {
  display:flex;
  gap:32px;
  max-width:1320px;
  margin:0 auto;
  align-items:stretch;
  justify-content:center;
  flex-wrap:nowrap;
}

/* 🌟 WIDER, NORMAL HEIGHT CARDS */
.project {
  width:280px;                /* wider but not giant */
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-elev);
  border:1px solid rgba(0,0,0,.06);
  transition:transform .25s ease, box-shadow .25s ease;
  display:flex;
  flex-direction:column;
}

/* hover animation (restored) */
.project:hover {
  transform:translateY(-6px);
  box-shadow:0 16px 42px rgba(15,23,42,.26);
}

/* consistent preview area */
.project img {
  width:100%;
  height:150px;
  object-fit:cover;
}

/* CONTENT AREA — equalized using flex */
.project-content {
  padding:20px;
  flex:1;                     /* fills remaining space so buttons align */
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* Titles */
.project-content h3 {
  font-size:1.1rem;
  font-weight:800;
  color:var(--blue);
}

/* Description — equal height for all */
.project-content p {
  font-size:.92rem;
  line-height:1.45;
  min-height:3.4em;           /* SAME height across cards */
  color:#444;
  overflow:hidden;
}

/* Buttons always sit at EXACT same spot */
.project-actions {
  margin-top:auto;            /* pushes button down */
  display:flex;
  flex-direction:column;
  gap:8px;
}

.project-actions.single-action {
  align-items:flex-start;
}

.project-live-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 18px;
  font-size:.85rem;
  font-weight:700;
  background:var(--blue);
  color:#fff;
  border-radius:24px;
  box-shadow:0 8px 18px rgba(10,26,51,.25);
  text-decoration:none;
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.project-live-btn:hover {
  background:#0c1e3a;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(10,26,51,.3);
}

/* TABLET */
@media (max-width:1080px){
  .project-grid { flex-wrap:wrap; }
  .project { width:calc(50% - 16px); }
}

/* MOBILE — unchanged, perfect */
@media (max-width:680px){
  .project-grid {
    flex-direction:column;
    align-items:center;
  }
  .project {
    width:92%;
    max-width:360px;
  }
}

/* ---------------------------------------------------------
   METRICS SECTION
--------------------------------------------------------- */
.metrics {
  background:var(--blue);
  color:#fff;
  padding:100px 20px;
}

.metrics-inner {
  max-width:var(--content-max);
  margin:0 auto;
}

.metrics h2 {
  font-size:clamp(32px,5vw,48px);
  color:var(--white-soft);
  text-align:center;
  margin-bottom:18px;
}

.metrics p.lead {
  text-align:center;
  max-width:820px;
  margin:0 auto 48px;
  color:var(--muted);
  font-size:1.08rem;
  line-height:1.7;
}

.kpi-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:18px;
  margin-bottom:36px;
}

.kpi {
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-md);
  padding:18px 16px;
  text-align:center;
}

.kpi .label {
  font-weight:600;
  opacity:.95;
  margin-bottom:6px;
}

.kpi .value {
  font-weight:800;
  font-size:1.6rem;
}

.chart-card {
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-lg);
  padding:24px;
  box-shadow:0 10px 24px rgba(0,0,0,.25);
}

.chart-title {
  font-weight:700;
  margin-bottom:12px;
  color:#fff;
}

.chart-sub {
  color:var(--muted);
  margin-bottom:14px;
}

.bar-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin-top:22px;
}

.bar {
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  padding:12px;
}

.bar .bar-label {
  font-weight:600;
  margin-bottom:8px;
}

.bar-track {
  height:12px;
  background:rgba(255,255,255,.16);
  border-radius:8px;
  overflow:hidden;
}

.bar-fill {
  height:12px;
  background:#fff;
  width:0;
  border-radius:8px;
}

/* ---------------------------------------------------------
   WHITE INFO SECTION
--------------------------------------------------------- */
.portfolio-info {
  background:#fff;
  color:var(--ink);
  text-align:center;
  padding:100px 20px;
}

.portfolio-info h2 {
  color:var(--blue);
  font-size:clamp(32px,5vw,48px);
  margin-bottom:40px;
}

.portfolio-info p {
  max-width:800px;
  margin:0 auto;
  font-size:1.1rem;
  color:#444;
  line-height:1.7;
}

/* =========================================================
   CTA — Clean, Unified, Matches Homepage Style (Global-ish)
========================================================= */
.page-cta {
  position: relative;
  text-align: center;
  padding: 100px 20px;
  color: #fff;
  background: url('/images/cta-01.jpg') center/cover no-repeat;
  overflow: hidden;
}

/* Unified hero overlay (matches hero.css) */
.page-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      180deg,
      rgba(10,26,51,0.25) 0%,
      rgba(10,26,51,0.55) 40%,
      rgba(10,26,51,0.88) 100%
  );
  z-index: 0;
}

/* Inner wrapper for consistent width */
.page-cta .cta-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* Typography cleanup */
.page-cta h2 {
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 800;
  color: var(--white-soft);
  margin-bottom: 18px;
}

.page-cta p {
  max-width: 680px;
  margin: 0 auto 32px;
  color: var(--white-soft);
  opacity: 0.92;
  font-size: 1.1rem;
  line-height: 1.65;
}

/* Scoped CTA button tweak */
.page-cta .btn-primary {
  border: 1px solid rgba(255,255,255,0.15);
  background: var(--blue);
  color: #fff;
  border-radius: 40px;
  padding: 14px 32px;
  box-shadow: 0 10px 24px rgba(10,26,51,.30);
  transition: background .18s ease, transform .18s ease;
}

.page-cta .btn-primary:hover {
  background: #0c1e3a;
  transform: translateY(-2px);
}

@media (max-width: 768px) {
  .page-cta {
    padding: 72px 16px;              /* less vertical padding, tighter sides */
    background-position: center top; /* pulls the room up a bit */
  }

  .page-cta .cta-inner {
    max-width: 440px;                /* keeps text column nice and narrow */
  }

  .page-cta h2 {
    font-size: clamp(1.9rem, 6vw, 2.3rem);
    margin-bottom: 12px;             /* slightly tighter */
  }

  .page-cta p {
    max-width: 360px;
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0 auto 22px;             /* less gap under paragraph */
  }

  .page-cta .btn-primary {
    padding: 12px 24px;
    font-size: 0.95rem;
    border-radius: 999px;
  }
}

/* =========================================================
   BUTTON — Global Unified
========================================================= */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--blue);
  color: #fff;
  font-weight: 700;
  padding: 14px 32px;
  border-radius: 40px;
  border: 1px solid rgba(255,255,255,0.15);
  box-shadow: 0 10px 24px rgba(10,26,51,.30);
  transition: background .18s ease, transform .18s ease;
  text-decoration: none;
  cursor: pointer;
}

.btn-primary:hover {
  background: #0c1e3a;
  transform: translateY(-2px);
}


/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */
@media (max-width:1080px){
  .kpi-grid {
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:680px){
  .portfolio-showcase,
  .metrics,
  .portfolio-info,
  .portfolio-cta {
    padding:80px 16px;
  }

  .kpi-grid,
  .bar-grid {
    grid-template-columns:1fr;
  }
}
