:root{
  --baby:#BFD7ED;
  --grotto:#60A3D9;
  --royal:#0074B7;
  --navy:#003B73;
  --white:#fff;
  --ink:#0B3154;
  --muted:#607487;
  --soft:#F5FAFE;
  --line:rgba(0,59,115,.14);
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:#fff;color:var(--ink);
  font-family:"DM Sans",sans-serif;line-height:1.65;
  -webkit-font-smoothing:antialiased
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
h1,h2,h3{
  font-family:"Manrope",sans-serif;
  letter-spacing:-.035em;margin-top:0
}
h1{
  margin-bottom:0;color:var(--navy);
  font-size:clamp(3.4rem,7vw,6.8rem);line-height:.95
}
h2{
  margin-bottom:8px;color:var(--navy);
  font-size:clamp(2.2rem,4.4vw,4.3rem);line-height:1.02
}
h3{font-size:1.35rem}
p{margin-top:0}
.section{
  width:min(var(--max),calc(100% - 48px));
  margin:auto;padding:105px 0
}
.eyebrow{
  display:inline-block;margin-bottom:18px;color:var(--royal);
  font-size:.74rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase
}
.eyebrow.light{color:var(--baby)}

/* header */
.site-header{background:var(--navy)}
.nav-wrap{
  width:min(var(--max),calc(100% - 48px));min-height:88px;margin:auto;
  display:flex;align-items:center;justify-content:space-between;gap:30px
}
.brand img{width:255px;max-height:54px;object-fit:contain}
.nav{display:flex;gap:32px;color:white;font-size:.92rem;font-weight:700}
.nav a{opacity:.86}
.nav a:hover,.nav a.active{color:var(--baby);opacity:1}
.menu-toggle{
  display:none;width:44px;height:44px;background:transparent;
  border:1px solid rgba(255,255,255,.24);border-radius:10px
}
.menu-toggle span{display:block;width:20px;height:2px;background:white;margin:5px auto}

/* hero */
.portfolio-hero{padding-top:120px;padding-bottom:120px}
.hero-grid{
  display:grid;grid-template-columns:1.25fr .75fr;
  gap:70px;align-items:end
}
.hero-intro{padding-bottom:6px}
.hero-intro p{color:var(--muted);font-size:1.04rem}
.hero-intro p:last-child{margin-bottom:0}

/* projects */
.project{
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:1.08fr .92fr;
  gap:70px;align-items:center
}
.project-reverse .project-image{order:2}
.project-reverse .project-content{order:1}
.project-image{
  position:relative;overflow:hidden;
  min-height:520px;border-radius:24px;
  background:linear-gradient(145deg,var(--baby),var(--grotto))
}
.project-image img{
  width:100%;height:100%;position:absolute;inset:0;
  object-fit:cover;object-position:center
}
.project-image:after{
  content:"";position:absolute;inset:0;
  border:1px solid rgba(0,59,115,.12);border-radius:24px;pointer-events:none
}
.placeholder{
  display:none;position:absolute;inset:0;padding:28px;
  flex-direction:column;justify-content:center;align-items:center;
  text-align:center;color:var(--navy)
}
.project-image.missing .placeholder{display:flex}
.placeholder span{font-size:.7rem;font-weight:800;letter-spacing:.14em}
.placeholder strong{font-family:"Manrope";font-size:1.3rem}
.project-meta{
  display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px
}
.project-meta span{
  padding:7px 10px;border-radius:999px;background:var(--soft);
  color:var(--navy);font-size:.72rem;font-weight:800
}
.subtitle{
  color:var(--royal);font-family:"Manrope";
  font-size:1.05rem;font-weight:800;margin-bottom:24px
}
.description{color:var(--muted);font-size:1.02rem}
.project-details{
  margin:32px 0;display:grid;grid-template-columns:1fr;
  border-top:1px solid var(--line)
}
.project-details>div{
  padding:13px 0;display:grid;grid-template-columns:.8fr 1.2fr;
  gap:20px;border-bottom:1px solid var(--line)
}
.project-details span{color:var(--muted);font-size:.78rem}
.project-details strong{font-size:.82rem;color:var(--navy)}
.project-link{
  display:inline-flex;gap:8px;align-items:center;
  color:var(--royal);font-weight:800
}

/* range */
.range-band{background:var(--navy)}
.range-heading{max-width:850px;margin-bottom:50px}
.range-heading h2{color:white}
.range-heading>p{max-width:700px;color:var(--baby);font-size:1.03rem}
.range-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.range-card{
  min-height:290px;padding:28px;display:flex;flex-direction:column;
  color:white;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);border-radius:18px
}
.range-card>span{margin-bottom:auto;color:var(--grotto);font-weight:800}
.range-card h3{color:white;margin-bottom:10px}
.range-card p{color:var(--baby);font-size:.92rem;margin-bottom:0}

/* CTA */
.cta-section{padding-top:65px}
.cta{
  padding:clamp(42px,7vw,78px);border-radius:28px;
  color:white;background:linear-gradient(145deg,var(--royal),var(--navy))
}
.cta h2{max-width:900px;color:white}
.cta>p{max-width:700px;color:var(--baby);font-size:1.03rem}
.cta-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.button{
  min-height:52px;padding:0 20px;display:inline-flex;
  align-items:center;justify-content:center;border-radius:12px;
  font-weight:800;transition:transform .2s ease
}
.button:hover{transform:translateY(-2px)}
.white{background:white;color:var(--navy)}
.outline{border:1px solid rgba(255,255,255,.28);color:white}

/* footer */
.footer{
  width:min(var(--max),calc(100% - 48px));margin:auto;
  padding:36px 0 44px;border-top:1px solid var(--line);
  display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center
}
.footer img{width:220px}
.footer-links{display:flex;gap:18px;flex-wrap:wrap;font-size:.86rem;font-weight:700}
.footer p{grid-column:1/-1;margin:0;color:var(--muted);font-size:.78rem}

/* reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:1000px){
  .hero-grid,.project{grid-template-columns:1fr}
  .project-reverse .project-image,.project-reverse .project-content{order:initial}
  .project-image{min-height:460px}
  .range-grid{grid-template-columns:1fr}
  .range-card{min-height:230px}
}
@media(max-width:760px){
  .section,.nav-wrap,.footer{width:calc(100% - 30px)}
  .brand img{width:205px}
  .menu-toggle{display:block}
  .nav{
    display:none;position:absolute;z-index:20;top:78px;left:15px;right:15px;
    flex-direction:column;padding:12px;background:var(--navy);
    border:1px solid rgba(255,255,255,.15)
  }
  .nav.open{display:flex}
  .nav a{padding:10px}
  .project{gap:38px}
}
@media(max-width:560px){
  .section{padding:76px 0}
  .portfolio-hero{padding-top:90px;padding-bottom:90px}
  h1{font-size:clamp(3rem,14vw,4.2rem)}
  .project-image{min-height:330px}
  .project-details>div{grid-template-columns:1fr;gap:2px}
  .cta-actions{flex-direction:column}
  .button{width:100%}
  .footer{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
