
/* =========================================================
   UTECH Projects Archive
   Built directly on frozen Home V4 design system.
   ========================================================= */

.projects-page{
  background:var(--bg);
  color:var(--text);
}

.projects-intro{
  padding:calc(var(--header-h) + 58px) 0 58px;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}

.projects-intro__inner{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:64px;
  align-items:end;
}

.projects-breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:10.7px;
}

.projects-breadcrumb a{
  color:var(--muted);
  transition:color .2s ease;
}

.projects-breadcrumb a:hover{
  color:var(--blue);
}

.projects-intro__copy{
  max-width:780px;
}

.projects-intro__copy h1{
  margin:0 0 10px;
  color:var(--text);
  font-size:clamp(36px,4vw,54px);
  line-height:1.55;
  font-weight:700;
  letter-spacing:-.4px;
}

.projects-intro__copy p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:2.1;
}

/* Archive */
.projects-archive{
  padding-top:68px;
  padding-bottom:92px;
}

.projects-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:28px;
}

.projects-toolbar__copy h2{
  margin:0 0 4px;
  color:var(--text);
  font-size:24px;
  line-height:1.7;
}

.projects-toolbar__copy p{
  margin:0;
  color:var(--muted);
  font-size:11.5px;
}

.projects-filter-shell{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}

.projects-filters{
  display:flex;
  align-items:center;
  gap:7px;
  overflow-x:auto;
  scroll-behavior:smooth;
  scrollbar-width:none;
}

.projects-filters::-webkit-scrollbar{
  display:none;
}

.projects-filters button{
  flex:0 0 auto;
  min-height:36px;
  padding:7px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface);
  color:var(--muted);
  font:inherit;
  font-size:10.6px;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.projects-filters button:hover,
.projects-filters button.is-active{
  background:var(--text);
  border-color:var(--text);
  color:var(--bg);
}

.projects-filter-arrow{
  display:none;
  flex:0 0 34px;
  width:34px;
  height:34px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--surface);
  color:var(--text);
  font:inherit;
  cursor:pointer;
}

.projects-filter-shell.is-overflowing .projects-filter-arrow{
  display:grid;
}

.projects-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:19px;
}

.project-card{
  display:block;
  width:100%;
  padding:0;
  border:0;
  border-radius:14px;
  overflow:hidden;
  background:var(--surface);
  color:inherit;
  text-align:right;
  font:inherit;
  cursor:pointer;
  box-shadow:0 10px 32px rgba(22,31,38,.045);
  transition:transform .28s ease,box-shadow .28s ease;
}

.project-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 46px rgba(22,31,38,.095);
}

.project-card[hidden]{
  display:none;
}

.project-card__media{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--surface-2);
}

.project-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .55s cubic-bezier(.22,.61,.36,1);
}

.project-card:hover .project-card__media img{
  transform:scale(1.035);
}

.project-card__shade{
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(8,12,15,.22),transparent 55%);
}

.project-card__open{
  position:absolute;
  left:14px;
  bottom:14px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  background:rgba(10,14,18,.28);
  color:#fff;
  font-size:14px;
  backdrop-filter:blur(8px);
  opacity:0;
  transform:translateY(5px);
  transition:opacity .25s ease,transform .25s ease;
}

.project-card:hover .project-card__open{
  opacity:1;
  transform:none;
}

.project-card__body{
  display:block;
  padding:17px 18px 19px;
}

.project-card__type{
  display:block;
  margin-bottom:4px;
  color:var(--blue);
  font-size:9.8px;
  font-weight:700;
}

.project-card__body strong{
  display:block;
  color:var(--text);
  font-size:15px;
  line-height:1.85;
}

.project-card__location{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:10.7px;
}

/* Modal */
.project-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:28px;
}

.project-modal.is-open{
  display:flex;
}

.project-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(7,10,13,.78);
  backdrop-filter:blur(7px);
}

.project-modal__dialog{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  width:min(1100px,calc(100vw - 56px));
  max-height:min(760px,calc(100vh - 56px));
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:var(--surface);
  box-shadow:0 34px 110px rgba(0,0,0,.38);
}

.project-modal__close{
  position:absolute;
  top:14px;
  left:14px;
  z-index:3;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:rgba(9,13,17,.72);
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(8px);
}

.project-modal__media{
  min-height:560px;
  background:#0e1318;
}

.project-modal__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.project-modal__content{
  padding:42px 40px 38px;
  overflow-y:auto;
}

.project-modal__meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
  color:var(--blue);
  font-size:10.3px;
  font-weight:700;
}

.project-modal__meta span+span::before{
  content:"•";
  margin-left:8px;
  color:var(--muted);
}

.project-modal__content h2{
  margin:0 0 18px;
  color:var(--text);
  font-size:clamp(28px,3vw,40px);
  line-height:1.65;
}

.project-modal__location{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
  padding:12px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.project-modal__location span{
  color:var(--muted);
  font-size:10.5px;
}

.project-modal__location strong{
  color:var(--text);
  font-size:11.3px;
}

.project-modal__content p{
  margin:0;
  color:var(--muted);
  font-size:12.5px;
  line-height:2.15;
}

.project-modal__actions{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:26px;
}

.project-modal__secondary{
  border:1px solid var(--line)!important;
  background:transparent!important;
  color:var(--text)!important;
}

body.project-modal-open{
  overflow:hidden;
}

/* Dark mode */
html[data-theme="dark"] .project-card{
  box-shadow:none;
}

html[data-theme="dark"] .projects-filters button.is-active{
  background:#f4f6f7;
  border-color:#f4f6f7;
  color:#111519;
}

/* Tablet */
@media(max-width:1080px){
  .projects-intro__inner{
    grid-template-columns:.62fr 1.38fr;
    gap:40px;
  }

  .projects-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Mobile */
@media(max-width:780px){
  .projects-intro{
    padding:calc(var(--header-h) + 38px) 0 44px;
  }

  .projects-intro__inner{
    grid-template-columns:1fr;
    gap:18px;
  }

  .projects-intro__copy h1{
    font-size:33px;
  }

  .projects-intro__copy p{
    font-size:12.3px;
  }

  .projects-archive{
    padding-top:52px;
    padding-bottom:68px;
  }

  .projects-toolbar{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
    margin-bottom:22px;
  }

  .projects-filter-shell{
    width:100%;
  }

  .projects-filters{
    width:100%;
  }

  .projects-filter-shell.is-overflowing .projects-filter-arrow{
    display:none;
  }

  .projects-grid{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  .project-card{
    border-radius:12px;
  }

  .project-card__body{
    padding:13px 13px 15px;
  }

  .project-card__body strong{
    font-size:13.2px;
  }

  .project-card__open{
    display:none;
  }

  .project-modal{
    padding:12px;
  }

  .project-modal__dialog{
    grid-template-columns:1fr;
    width:100%;
    max-height:calc(100vh - 24px);
    overflow-y:auto;
    border-radius:15px;
  }

  .project-modal__media{
    min-height:0;
    aspect-ratio:16/10;
  }

  .project-modal__content{
    padding:26px 21px 25px;
    overflow:visible;
  }

  .project-modal__content h2{
    font-size:26px;
  }
}

@media(max-width:520px){
  .projects-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .project-card__media{
    aspect-ratio:16/11;
  }

  .project-card__body{
    padding:15px 16px 17px;
  }

  .project-card__body strong{
    font-size:14.4px;
  }

  .project-modal__actions{
    flex-direction:column;
    align-items:stretch;
  }

  .project-modal__actions .button{
    width:100%;
    justify-content:center;
  }
}
