/* ==========================================================================
   Country West Construction Ltd.
   Rebuilt 1:1 from the Framer design (countrywestconstruction.framer.website)
   Breakpoints: desktop >=1200 | tablet 810-1199.98 | phone <=809.98
   ========================================================================== */

/* ---------- Fonts ---------- */
@font-face{
  font-family:"Geist";
  src:url("../fonts/geist-latin.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Geist";
  src:url("../fonts/geist-latin-ext.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Hooskai Chamfered Square";
  src:url("../fonts/hooskai-chamfered-square.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}

/* ---------- Tokens ---------- */
:root{
  --white:#fff;
  --black:#050505;
  --green:#0f2a1f;          /* Dark green   */
  --lime:#41f241;           /* Bright green */
  --grey-050:#f5f5f5;
  --grey-100:#eee;
  --grey-200:#e0e0e0;
  --grey-300:#ccc;
  --grey-400:#999;
  --grey-500:#888;
  --grey-600:#666;
  --grey-700:#555;
  --grey-800:#444;
  --yellow:#ff0;
  --scrim:rgba(0,0,0,.45);
  --shadow-card:rgba(0,0,0,.03) 5px 3px 10px 0px;

  --maxw:1400px;
  --pad-x:40px;
  --section-y:100px;
  --section-gap:100px;

  /* Framer Motion springs, sampled exactly */
  --ease-reveal:linear(0.0000 0.0%,0.0191 3.3%,0.0667 6.7%,0.1313 10.0%,0.2048 13.3%,0.2816 16.7%,0.3577 20.0%,0.4308 23.3%,0.4991 26.7%,0.5620 30.0%,0.6189 33.3%,0.6700 36.7%,0.7154 40.0%,0.7554 43.3%,0.7905 46.7%,0.8210 50.0%,0.8475 53.3%,0.8704 56.7%,0.8900 60.0%,0.9069 63.3%,0.9213 66.7%,0.9336 70.0%,0.9441 73.3%,0.9529 76.7%,0.9605 80.0%,0.9668 83.3%,0.9722 86.7%,0.9767 90.0%,0.9805 93.3%,0.9837 96.7%,1.0000 100.0%);
  --ease-spring:linear(0.0000 0.0%,0.0510 3.1%,0.1704 6.2%,0.3190 9.4%,0.4710 12.5%,0.6107 15.6%,0.7300 18.8%,0.8260 21.9%,0.8993 25.0%,0.9521 28.1%,0.9879 31.2%,1.0102 34.4%,1.0225 37.5%,1.0277 40.6%,1.0281 43.8%,1.0258 46.9%,1.0219 50.0%,1.0176 53.1%,1.0134 56.2%,1.0096 59.4%,1.0065 62.5%,1.0040 65.6%,1.0022 68.8%,1.0009 71.9%,1.0001 75.0%,0.9995 78.1%,0.9993 81.2%,0.9992 84.4%,0.9992 87.5%,0.9993 90.6%,0.9994 93.8%,0.9995 96.9%,1.0000 100.0%);
  --dur-reveal:1.2s;
  --dur-spring:.8s;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--white);
  color:var(--black);
  font-family:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:500;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5,h6,p,figure{margin:0;font-weight:inherit}
ul{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button,input,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}

/* ---------- Typography scale ---------- */
.h1{font-size:58px;font-weight:500;line-height:104%;letter-spacing:-.038em;color:var(--white)}
.h2{font-size:44px;font-weight:500;line-height:114%;letter-spacing:-.03em;color:var(--black)}
.h2--center{text-align:center}
.eyebrow{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--black)}
.lead{font-size:18px;font-weight:500;line-height:150%;letter-spacing:-.01em}
.lead--light{color:var(--grey-200)}
.lead--muted{color:var(--grey-700)}
.lead--footer{color:var(--grey-300)}
.card-title{font-size:20px;font-weight:500;line-height:120%;letter-spacing:-.02em;color:var(--black)}
.card-body{font-size:16px;font-weight:500;line-height:150%;color:var(--grey-500)}
.card-body--dim{color:var(--grey-600)}

/* ---------- Layout primitives ---------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;position:relative}
.container--bleed{overflow:visible}
.section{
  position:relative;
  display:flex;flex-direction:column;align-items:center;
  gap:var(--section-gap);
  padding:var(--section-y) var(--pad-x);
  overflow:clip;
  background:var(--white);
}
.section--about{background:transparent}
.section--grey{background:var(--grey-050)}
.head{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.head--center{align-items:center;text-align:center}
.stack-60{display:flex;flex-direction:column;align-items:center;gap:60px}
.stack-30{display:flex;flex-direction:column;gap:30px;width:100%}
.stack-30--center{align-items:center}
.grid{display:grid;width:100%}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.grid--services{gap:30px 20px}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:flex-start;
  gap:30px;padding:6px 6px 6px 20px;
  background:var(--lime);border-radius:30px;
  width:max-content;overflow:clip;cursor:pointer;
  transition:gap var(--dur-spring) var(--ease-spring);
}
.btn__label{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  height:17px;overflow:hidden;
}
.btn__label>span{
  flex:none;white-space:pre;line-height:18px;
  font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--green);
  transition:transform var(--dur-spring) var(--ease-spring);
}
.btn__icon{
  flex:none;display:flex;align-items:center;justify-content:center;
  width:39px;height:39px;border-radius:50%;background:var(--white);
}
.btn__icon svg{width:13px;height:10px;fill:var(--black);overflow:visible}
@media (hover:hover){
  .btn:hover{gap:40px}
  .btn:hover .btn__label>span{transform:translateY(-18px)}
  .work:hover .btn--float{gap:40px}
  .work:hover .btn--float .btn__label>span{transform:translateY(-18px)}
}

/* ==========================================================================
   Nav
   ========================================================================== */
.nav-holder{position:absolute;top:0;left:0;right:0;z-index:10}
.nav{position:relative;width:100%}
.nav__bar{display:flex;align-items:center;justify-content:center;width:100%}
.nav__row{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;max-width:var(--maxw);margin-inline:auto;padding:24px var(--pad-x);
  min-height:130px;
}
.nav__logo{
  font-family:"Hooskai Chamfered Square","Geist",sans-serif;
  font-size:33px;font-weight:400;line-height:120%;color:var(--white);
}
.nav__toggle{display:none}
.nav__links{display:flex;align-items:center;gap:20px}
.nav__links a{
  font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--white);
  transition:color .2s ease;
}
.nav__links a:hover{color:var(--grey-400)}
.nav__panel{display:none}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  gap:10px;padding:24px 40px 60px;overflow:clip;
}
.hero__bg{position:absolute;inset:0;overflow:clip;z-index:0}
.hero__bg-layer{position:absolute;top:-5%;left:-5%;width:110%;height:110%;overflow:clip;will-change:transform}
.hero__bg-layer img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero__scrim{position:absolute;inset:0;background:var(--scrim)}
.hero__inner{
  position:relative;z-index:1;
  width:100%;max-width:var(--maxw);margin-inline:auto;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;
  gap:10px;padding-top:100px;
}
.hero__content{display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:650px}
.hero__top{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px}
.hero__bottom{display:flex;flex-direction:column;align-items:flex-start;gap:40px}
.hero__text{display:flex;flex-direction:column;gap:20px}
.hero__bottom .lead{max-width:630px}

.stars{display:flex;align-items:center;gap:3px;padding:2px 0}
.stars svg{width:15px;height:15px}
.stars--yellow svg{fill:var(--yellow)}
.stars--dark svg{fill:var(--grey-800)}

/* ==========================================================================
   About
   ========================================================================== */
.about__head{display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:650px}
.about__body{display:flex;flex-direction:column;align-items:flex-start;gap:40px}
.about__body .lead{max-width:565px}

/* Ticker (Framer Ticker: speed 100px/s, left, overflow visible) */
.ticker{width:100%;overflow:visible}
.ticker__track{display:flex;flex-direction:row;align-items:flex-start;gap:15px;width:max-content;will-change:transform}
.ticker__track>li{flex:none;width:320px;height:350px;border-radius:14px;overflow:clip}
.ticker__track>li img{width:100%;height:100%;object-fit:cover}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 20px;width:100%}
.stat{
  position:relative;overflow:clip;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  height:220px;padding:20px;border-radius:20px;background:var(--green);
}
.stat__pattern{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;pointer-events:none}
.stat__num{position:relative;font-size:58px;font-weight:500;line-height:104%;letter-spacing:-.038em;color:var(--white)}
.stat__label{position:relative;font-size:18px;font-weight:500;line-height:150%;letter-spacing:-.01em;color:var(--grey-300);text-align:center}

/* ==========================================================================
   Services
   ========================================================================== */
.svc{
  background:var(--white);border-radius:22px;padding:7px 7px 16px;
  box-shadow:var(--shadow-card);
}
.svc__inner{display:flex;flex-direction:column;gap:15px}
.svc__media{height:280px;border-radius:15px;overflow:clip}
.svc__media img{width:100%;height:100%;object-fit:cover}
.svc__text{display:flex;flex-direction:column;justify-content:space-between;height:150px;padding:0 9px}
.svc__group{display:flex;flex-direction:column;gap:7px}

/* ==========================================================================
   Why us
   ========================================================================== */
.why{
  display:flex;flex-direction:column;align-items:flex-start;gap:40px;
  padding:16px;border-radius:14px;background:var(--grey-050);overflow:clip;
}
.why__icon{
  flex:none;display:flex;align-items:center;justify-content:center;
  width:41px;height:41px;border-radius:9px;background:var(--grey-200);
}
.why__icon img{width:25px;height:25px}
.why__text{display:flex;flex-direction:column;gap:9px}

/* ==========================================================================
   Works
   ========================================================================== */
.works{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%}
.work{
  display:flex;flex-direction:column;gap:40px;width:100%;
  padding:6px;border-radius:23px;background:var(--grey-100);
}
.work__head{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:20px;padding:30px 24px 0;overflow:clip}
.work__text{display:flex;flex-direction:column;gap:10px;overflow:clip}
.work__text .card-body{max-width:560px;color:var(--grey-700)}
.work__title{font-size:25px;font-weight:500;line-height:130%;letter-spacing:-.025em;color:var(--black)}
.tags{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:7px;flex-shrink:0}
.tag{
  display:flex;align-items:center;justify-content:center;
  padding:6px 14px;border-radius:30px;background:var(--green);
  font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--white);white-space:nowrap;
}
.work__media{position:relative;height:700px;border-radius:17px;overflow:hidden;isolation:isolate}
.work__media>img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1);transition:transform var(--dur-spring) var(--ease-spring);
}
.work__scrim{position:absolute;inset:0;background:var(--scrim);opacity:0;transition:opacity var(--dur-spring) var(--ease-spring)}
.btn--float{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity var(--dur-spring) var(--ease-spring),gap var(--dur-spring) var(--ease-spring)}
@media (hover:hover){
  .work:hover .work__media>img{transform:scale(1.02)}
  .work:hover .work__scrim{opacity:1}
  .work:hover .btn--float{opacity:1}
}

/* ==========================================================================
   Testimonial
   ========================================================================== */
.testi{display:flex;flex-direction:column;align-items:center;gap:40px;width:100%}
.testi__card{width:100%;background:var(--white);border-radius:15px;padding:160px 60px;display:flex;justify-content:center}
.testi__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;width:100%;max-width:550px;overflow:hidden}
.testi__block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;width:100%}
.testi__quote-wrap{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%}
.testi__quote{font-size:25px;font-weight:500;line-height:130%;letter-spacing:-.025em;color:var(--black);text-align:center}
.testi__who{display:flex;flex-direction:column;align-items:center;gap:6px}
.testi__name{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--black);text-align:center}
.testi__loc{font-size:14px;font-weight:400;line-height:90%;letter-spacing:-.01em;color:var(--grey-500);text-align:center}
.testi__avatars{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;height:48px}
.avatar{
  flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;
  transition:width var(--dur-spring) var(--ease-spring),height var(--dur-spring) var(--ease-spring);
}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.is-active{width:48px;height:48px}

/* ==========================================================================
   Contact
   ========================================================================== */
.contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;width:100%}
.contact__left{display:flex;flex-direction:column;align-items:flex-start;gap:50px}
.contact__details{display:flex;flex-direction:column;align-items:flex-start;gap:33px}
.cdetail{display:flex;flex-direction:row;align-items:center;gap:18px}
.cdetail__icon{
  flex:none;display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:6px;background:var(--grey-200);
}
.cdetail__icon--phone{width:35px;height:35px}
.cdetail__icon img{width:18px;height:18px}
.cdetail__body{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}
.cdetail__label{font-size:16px;font-weight:500;line-height:120%;letter-spacing:-.02em;color:var(--black)}
.cdetail__value{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--grey-700)}
.cdetail__value--phone{font-weight:400;line-height:150%;color:var(--black)}
.cdetail__value a{transition:color .2s ease}
.cdetail__value a:hover{color:var(--grey-400)}
.contact__follow{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.socials{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:14px}
.social{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:2px}
.social img{width:16px;height:16px;transition:opacity .2s ease}
.social:hover img{opacity:.6}

.contact__card{background:var(--white);border-radius:17px;box-shadow:var(--shadow-card);overflow:clip}
.cform{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding:30px 20px}
.field{display:flex;flex-direction:column;align-items:flex-start;gap:11px}
.field__label{font-size:16px;font-weight:500;line-height:120%;letter-spacing:-.02em;color:var(--black)}
.field__wrap{display:flex;align-items:center;width:100%;height:50px;padding:12px;border-radius:7px;background:var(--grey-050);overflow:hidden}
.field__wrap--area{height:200px;padding:0;align-items:stretch}
.field__wrap input,.field__wrap textarea{
  width:100%;border:0;background:none;outline:none;
  font-family:inherit;font-size:16px;font-weight:400;color:var(--black);
}
.field__wrap textarea{padding:12px;resize:none;height:100%;line-height:150%}
.field__wrap ::placeholder{color:var(--grey-400);opacity:1}
.submit{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:50px;border-radius:7px;background:var(--green);
  font-size:15px;font-weight:600;line-height:120%;letter-spacing:-.01em;color:var(--white);
  transition:background-color var(--dur-spring) var(--ease-spring);
}
.submit:hover{background:var(--grey-800)}
.cform.is-sent .submit{background:var(--lime);color:var(--green)}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{
  position:relative;overflow:clip;background:var(--green);
  display:flex;flex-direction:column;align-items:center;
  padding:50px 40px 30px;
}
.footer__pattern{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.8;pointer-events:none}
.footer__logo{
  position:absolute;top:11px;left:40px;
  font-family:"Hooskai Chamfered Square","Geist",sans-serif;
  font-size:33px;font-weight:400;line-height:120%;color:var(--white);opacity:.8;
}
.footer__inner{display:flex;flex-direction:column;justify-content:center;gap:130px;z-index:1}
.footer__row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:40px}
.footer__brand{display:flex;flex-direction:column;align-items:flex-start;gap:40px;width:320px}
.footer__nav{display:grid;grid-template-columns:100px 100px;gap:10px 110px}
.footer__nav a{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--white);transition:color .2s ease}
.footer__nav a:hover{color:var(--grey-400)}
.footer__bottom{position:relative;display:flex;flex-direction:row;align-items:center;padding:25px 0 27px}
.footer__copy{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--grey-500)}
.footer__by{position:absolute;right:46px;top:50%;transform:translateY(-50%);font-size:16px;font-weight:400;line-height:120%;color:#f7f7f7;transition:color .2s ease}
.footer__by:hover{color:var(--lime)}

/* ==========================================================================
   Scroll reveal (Framer appear effect: y 60 -> 0, opacity 0 -> 1)
   ========================================================================== */
[data-appear]{opacity:0;transform:translateY(60px);will-change:transform}
[data-appear="fade"]{transform:none;opacity:.001}
.js-ready [data-appear]{
  transition:opacity var(--dur-reveal) var(--ease-reveal),transform var(--dur-reveal) var(--ease-reveal);
}
[data-appear].is-in{opacity:1;transform:none}
.no-js [data-appear]{opacity:1;transform:none}

/* ==========================================================================
   Tablet — 810px to 1199.98px
   ========================================================================== */
@media (max-width:1199.98px){
  :root{--pad-x:30px}
  .h1{font-size:46px}
  .h2{font-size:36px}
  .lead{font-size:17px}
  .work__title{font-size:22px}

  .hero{padding:30px 30px 50px}
  .nav__row{padding:24px 30px}

  .grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid--services{gap:40px 20px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}

  .work__media{height:500px}
  .testi__card{padding:120px 40px}
  .contact{grid-template-columns:minmax(0,1fr);gap:50px}
}

/* ==========================================================================
   Phone — up to 809.98px
   ========================================================================== */
@media (max-width:809.98px){
  :root{--pad-x:20px;--section-y:60px;--section-gap:60px}
  .h1{font-size:36px}
  .h2{font-size:28px}
  .lead{font-size:16px}
  .work__title{font-size:20px}

  /* --- Nav becomes a fixed floating card --- */
  .nav-holder{position:fixed;top:15px;left:15px;right:15px}
  .nav{
    background:var(--green);border-radius:10px;overflow:hidden;
    transition:height var(--dur-spring) var(--ease-spring);
  }
  .nav__bar{
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:48px;padding:18px 20px;overflow:hidden;user-select:none;
    transition:gap var(--dur-spring) var(--ease-spring);
  }
  .nav.is-open .nav__bar{gap:34px}
  .nav__row{padding:0;width:100%;max-width:none;min-height:82px}
  .nav__links{display:none}
  .nav__toggle{
    display:block;font-size:15px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--white);
  }
  .nav__panel{
    display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
    gap:20px;padding:40px 20px;width:100%;
  }
  .nav__panel a{font-size:16px;font-weight:500;line-height:150%;color:var(--white)}
  .nav:not(.is-open) .nav__panel{
    position:absolute;top:100px;left:24px;right:24px;width:auto;
  }

  .hero{padding:30px 20px}
  .hero__inner{padding-top:100px}
  .hero__content{max-width:none}

  .grid--3{grid-template-columns:minmax(0,1fr)}
  .grid--services{gap:40px 20px}
  .stats{grid-template-columns:minmax(0,1fr);gap:10px 20px}

  .about__head{max-width:none}
  .about__body .lead{max-width:none}

  .work__head{flex-direction:column;align-items:flex-start;gap:20px;padding:24px 16px 0}
  .tags{justify-content:flex-start;flex-wrap:wrap}
  .work__media{height:300px}
  .work{gap:24px}

  .testi__card{padding:70px 20px}
  .contact{grid-template-columns:minmax(0,1fr);gap:40px}
  .contact__left{gap:40px}

  .footer{padding:40px 20px 30px}
  .footer__logo{top:14px;left:20px;font-size:28px}
  .footer__inner{gap:60px}
  .footer__row{flex-direction:column;gap:40px}
  .footer__brand{width:100%}
  .footer__nav{grid-template-columns:100px 100px;gap:10px 40px}
  .footer__bottom{padding:20px 0}
  .footer__by{right:0}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  [data-appear]{opacity:1!important;transform:none!important}
  .ticker__track{transform:none!important}
}

/* ==========================================================================
   Project detail pages
   ========================================================================== */
.hero--project .hero__content{max-width:none;width:100%}
.hero--project .hero__titlerow{
  display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;
  gap:20px;width:100%;overflow:clip;
}
.hero--project .h1{max-width:650px}
.hero__scrollhint{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--white);flex:none}
.hero__back{
  display:flex;align-items:center;justify-content:center;gap:10px;padding:5px;
  width:max-content;transition:transform var(--dur-spring) var(--ease-spring);
}
.hero__back svg{width:17px;height:14px;fill:var(--white)}
.hero__back:hover{transform:translateX(-4px)}

.pdetails{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;width:100%}
.pdetails__left{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:30px;overflow:clip}
.pdetails__lead{font-size:25px;font-weight:500;line-height:130%;letter-spacing:-.025em;color:var(--black);max-width:500px}
.pdetails__right{display:flex;flex-direction:column;align-items:flex-start;gap:30px;width:100%}
.pdetails__media{width:100%;height:380px;border-radius:8px;overflow:clip}
.pdetails__media img{width:100%;height:100%;object-fit:cover}
.pmeta{display:flex;flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap}
.pmeta__chip{
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:7px;
  padding:8px 16px;border-radius:8px;background:var(--grey-050);
}
.pmeta__chip img{width:14px;height:14px;flex:none}
.pmeta__chip span{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--green);white-space:nowrap}

.pgallery{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;width:100%}
.pgallery__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:800px 460px;gap:10px;width:100%}
.pgallery__grid figure{margin:0;border-radius:10px;overflow:clip}
.pgallery__grid figure img{width:100%;height:100%;object-fit:cover;display:block}
.pgallery__grid figure:first-child{grid-column:span 2;height:800px}
.pgallery__grid figure:nth-child(2){height:450px;align-self:start}
.pnav{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;width:100%}
.pnav a{font-size:14px;font-weight:500;line-height:120%;letter-spacing:-.01em;color:var(--black);transition:color .2s ease}
.pnav a:hover{color:var(--grey-400)}
.pnav__spacer{flex:1}

.pcta{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;height:700px;border-radius:20px;overflow:clip}
.pcta__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pcta__scrim{position:absolute;inset:0;background:var(--scrim)}
.pcta__inner{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;width:600px;max-width:100%;overflow:clip}
.pcta__inner .h2{color:var(--white);text-align:center}

@media (max-width:1199.98px){
  .pdetails{grid-template-columns:minmax(0,1fr);gap:40px}
  .pdetails__left{justify-content:flex-start}
  .pgallery__grid{grid-template-rows:520px 340px}
  .pgallery__grid figure:first-child{height:520px}
  .pgallery__grid figure:nth-child(2){height:340px}
  .pcta{height:560px}
}
@media (max-width:809.98px){
  .hero--project .hero__titlerow{flex-direction:column;align-items:flex-start;gap:12px}
  .hero__scrollhint{display:none}
  .pdetails{gap:30px}
  .pdetails__lead{font-size:20px}
  .pdetails__media{height:240px}
  .pgallery__grid{grid-template-columns:minmax(0,1fr);grid-template-rows:320px 230px}
  .pgallery__grid figure:first-child{grid-column:span 1;height:320px}
  .pgallery__grid figure:nth-child(2){height:230px}
  .pcta{height:500px}
  .pcta__inner{width:100%}
}
