/* ===== Hero parallax ===== */
.hero-scroll{position:relative;height:100vh;width:100%;overflow:hidden;background:var(--paper)}
.hero-scroll::after{content:'';position:absolute;bottom:0;left:0;right:0;height:45%;background:linear-gradient(to bottom,transparent 0%,rgba(255,255,255,.25) 50%,rgba(255,255,255,.55) 100%);z-index:4;pointer-events:none}
.hero-scroll .stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.hero-slogan{
  position:absolute;z-index:1;
  font-family:"Montserrat",sans-serif;font-weight:800;
  font-size:clamp(44px,6.5vw,110px);line-height:.92;letter-spacing:-0.03em;
  color:var(--green-900);text-align:center;white-space:nowrap;
  will-change:transform;
}
.hero-slogan em{font-style:italic;color:var(--green-700);display:block}
.hero-building{
  position:absolute;z-index:2;
  width:100%;height:100%;
  object-fit:contain;
  object-position:center bottom;
  will-change:transform;
}
.hero-meta-overlay{position:absolute;top:120px;left:44px;right:44px;display:flex;justify-content:space-between;z-index:3;font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);line-height:1.8;pointer-events:none}
.hero-meta-overlay b{color:var(--ink);font-weight:500;display:block}
.hero-below{padding:80px 44px 120px;background:var(--paper);border-top:1px solid var(--rule-light)}
.hero-below-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:end;max-width:1440px;margin:0 auto}
.hero-below-lede{font-size:17px;line-height:1.55;color:var(--ink-60);max-width:520px}
.hero-below-actions{display:flex;gap:14px;justify-content:flex-end;flex-wrap:wrap}

/* ===== Hero ===== */
.hero{
  position:relative;min-height:100vh;padding:140px 44px 80px;
  background:var(--paper);overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
}
.hero-grid{position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(15,79,63,0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(15,79,63,0.06) 1px, transparent 1px);
  background-size:90px 90px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.8), rgba(0,0,0,.3));
}
.hero-top{display:flex;justify-content:space-between;align-items:flex-end;position:relative;z-index:2;padding-top:40px}
.hero-meta{font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);line-height:1.8}
.hero-meta b{color:var(--ink);font-weight:500;display:block}

.hero h1{
  font-family:"Montserrat",sans-serif;font-weight:800;
  font-size:clamp(80px,14.5vw,260px);line-height:.85;letter-spacing:-0.035em;
  color:var(--green-900);position:relative;z-index:2;
}
.hero h1 .line{display:block;overflow:hidden;}
.hero h1 .line > span{display:block;transform:translateY(105%);animation:rise 1.1s cubic-bezier(.2,.7,.2,1) forwards}
.hero h1 .l2 > span{animation-delay:.12s}
.hero h1 .l3 > span{animation-delay:.24s}
.hero h1 em{font-style:italic;color:var(--green-700);font-family:"Montserrat",sans-serif}
@keyframes rise{to{transform:translateY(0)}}

.hero-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:end;margin-top:60px;position:relative;z-index:2}
.hero-lede{font-family:"Montserrat";font-size:17px;line-height:1.55;color:var(--ink-60);max-width:520px;opacity:0;animation:fadeUp .9s .5s cubic-bezier(.2,.7,.2,1) forwards}
.hero-actions{display:flex;gap:14px;justify-content:flex-end;opacity:0;animation:fadeUp .9s .7s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* Orbit disc */
.orbit{position:absolute;top:50%;right:-120px;transform:translateY(-52%);width:620px;height:620px;z-index:1;opacity:.9}
.orbit::before,.orbit::after{content:"";position:absolute;inset:0;border:1.5px solid var(--green-800);border-radius:50%}
.orbit::after{inset:80px;opacity:.35}
.orbit .dot{position:absolute;left:50%;top:0;width:14px;height:14px;margin-left:-7px;background:var(--accent);border-radius:50%;transform-origin:50% 310px;animation:spin 18s linear infinite}
.orbit .dot.d2{background:var(--green-800);animation-duration:24s;animation-direction:reverse}
.orbit .num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:"Montserrat",sans-serif;font-size:190px;color:var(--green-800);font-style:italic}
@keyframes spin{to{transform:rotate(360deg)}}

.scroll-ind{position:absolute;left:44px;bottom:40px;font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);display:flex;align-items:center;gap:14px;z-index:3}
.scroll-ind .line{display:block;width:50px;height:1px;background:var(--ink-60);position:relative;overflow:hidden}
.scroll-ind .line::after{content:"";position:absolute;left:-100%;top:0;width:100%;height:100%;background:var(--green-800);animation:slide 2.6s infinite}
@keyframes slide{to{left:100%}}

/* ===== Intro Wow ===== */
.intro{padding:200px 44px;background:var(--paper);position:relative;overflow:hidden}
.intro::before{content:'';position:absolute;top:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle, rgba(126,208,168,0.06) 0%, transparent 70%);pointer-events:none;filter:blur(40px)}
.intro-wow-text{
  font-family:"Montserrat",sans-serif;
  font-size:clamp(36px,5vw,72px);
  line-height:1.1;
  font-weight:700;
  letter-spacing:-0.025em;
  color:var(--green-900);
}
.intro-wow-text span{
  opacity:0.15;
  transition:opacity 0.2s;
}
.intro-wow-text em span{
  font-style:italic;
  color:var(--green-700);
}
.intro-text-img{display:grid;grid-template-columns:9fr 4fr;gap:80px;align-items:center}
.intro-text-img .anim-img{aspect-ratio:3/4;border-radius:24px;box-shadow:0 30px 80px -20px rgba(0,0,0,0.15)}
.intro-media{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:80px}
.intro-media .anim-img{aspect-ratio:5/3}
.intro-media .anim-img.tall{aspect-ratio:3/4;align-self:end}

/* Stats */
.intro-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:120px}
.stat{
  background:#fff;
  border:1px solid var(--rule-light);
  border-radius:20px;
  padding:44px 32px 36px;
  position:relative;
  overflow:hidden;
  transition:all .5s cubic-bezier(.2,.85,.2,1);
}
.stat::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg, var(--green-600), var(--accent));
  opacity:0;transition:opacity .4s;
}
.stat::after{
  content:"";position:absolute;inset:-50%;
  background:radial-gradient(circle at center, rgba(126,208,168,0.08) 0%, transparent 60%);
  opacity:0;transition:opacity .5s;pointer-events:none;
}
.stat:hover{transform:translateY(-6px);box-shadow:0 30px 60px -20px rgba(12,26,22,.08);border-color:var(--rule)}
.stat:hover::before{opacity:1}
.stat:hover::after{opacity:1}
.stat .n{
  font-family:"Montserrat",sans-serif;font-weight:700;
  font-size:clamp(52px,6vw,80px);line-height:1;
  color:var(--green-900);letter-spacing:-0.04em;
  background:linear-gradient(135deg, var(--green-900) 0%, var(--green-600) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.stat .n em{font-style:italic}
.stat .t{
  font-family:"Montserrat",sans-serif;font-weight:600;
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--green-900);margin-top:20px;line-height:1.3;
}
.stat .d{font-size:14px;color:var(--ink-60);margin-top:10px;line-height:1.6}

/* ===== Services split ===== */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:80vh;background:var(--green-900);color:var(--cream);position:relative}
.split > div{padding:100px 60px;position:relative;overflow:hidden;transition:background .5s}
.split > div:first-child{border-right:1px solid rgba(255,255,255,.1)}
.split > div:hover{background:var(--green-800)}
.split h3{font-family:"Montserrat",sans-serif;font-size:clamp(40px,4.5vw,76px);line-height:.95;letter-spacing:-0.02em;margin-bottom:50px}
.split ul{list-style:none;display:flex;flex-direction:column;gap:0}
.split ul li{padding:22px 0;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;align-items:center;font-size:18px;transition:padding .3s, color .3s}
.split ul li:last-child{border-bottom:1px solid rgba(255,255,255,.12)}
.split ul li:hover{padding-left:14px;color:#fff}
.split ul li .n{font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.split .eyebrow{color:rgba(255,255,255,.7)}
.split .eyebrow::before{background:rgba(255,255,255,.5)}
.split .link{margin-top:44px;display:inline-flex;align-items:center;gap:14px;font-family:"Montserrat",sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#fff;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.3);transition:border-color .3s}
.split .link:hover{border-color:var(--accent)}
.split .decor{position:absolute;right:-40px;bottom:-40px;font-family:"Montserrat",sans-serif;font-size:240px;line-height:1;color:rgba(255,255,255,.05);font-style:italic;pointer-events:none}

/* ===== Featured projects ===== */
.projects{padding:150px 44px;background:var(--paper)}
.projects-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:80px}
.projects-head h2{font-family:"Montserrat",sans-serif;font-size:clamp(38px,4.2vw,66px);line-height:.94;letter-spacing:-0.03em;color:var(--green-900);max-width:900px}
.projects-head h2 em{font-style:italic;color:var(--green-700)}
.project-list{display:flex;flex-direction:column}
.project-item{display:grid;grid-template-columns:1.5fr 1fr 1fr 80px;gap:30px;padding:50px 0;border-top:1px solid var(--rule-light);align-items:center;text-decoration:none;position:relative;transition:background 0.4s;}
.project-item::before{content:"";position:absolute;inset:0;background:var(--ivory);z-index:-1;opacity:0;transform:scaleY(0);transform-origin:bottom;transition:transform .5s cubic-bezier(.2,.85,.2,1),opacity .5s}
.project-item:hover::before{opacity:1;transform:scaleY(1);transform-origin:top}
.project-item:last-child{border-bottom:1px solid var(--rule-light)}
.project-item .ttl{font-family:"Montserrat",sans-serif;font-size:clamp(28px,2.5vw,40px);line-height:1.1;color:var(--green-900);letter-spacing:-0.02em;transition:transform .5s cubic-bezier(.2,.85,.2,1);font-weight:600;padding-left:10px;}
.project-item:hover .ttl{transform:translateX(20px);}
.project-item .meta{font-family:"Montserrat",sans-serif;font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);border:1px solid var(--rule);padding:10px 18px;border-radius:40px;justify-self:start;background:var(--paper)}
.project-item .loc{font-size:16px;color:var(--ink-60);font-family:"Montserrat",sans-serif;}
.project-item .go{width:64px;height:64px;border-radius:50%;background:transparent;border:1px solid var(--rule);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;transition:transform .5s cubic-bezier(.2,.85,.2,1), background .4s, color .4s, border-color .4s;justify-self:end;font-size:0;margin-right:10px;}
.project-item .go::after{content:"";display:block;width:24px;height:24px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='4' y1='12' x2='20' y2='12'%3E%3C/line%3E%3Cpolyline points='13 5 20 12 13 19'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center;-webkit-mask-size:contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='4' y1='12' x2='20' y2='12'%3E%3C/line%3E%3Cpolyline points='13 5 20 12 13 19'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center;mask-size:contain;}
.project-item:hover .go{background:var(--green-900);color:#fff;border-color:var(--green-900);transform:rotate(-45deg) scale(1.05);}


/* ===== Process timeline ===== */
.process{padding:160px 44px;background:var(--ivory);position:relative;overflow:hidden}
.process::before{content:'';position:absolute;bottom:-100px;left:-100px;width:500px;height:500px;background:radial-gradient(circle, rgba(126,208,168,0.06) 0%, transparent 70%);pointer-events:none;filter:blur(40px)}
.process-head{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-bottom:60px;align-items:end}
.process-head h2{font-family:"Montserrat",sans-serif;font-size:clamp(34px,3.8vw,60px);line-height:.96;letter-spacing:-0.025em;color:var(--green-900)}
.process-head p{color:var(--ink-60);line-height:1.6;font-size:17px;max-width:460px;justify-self:end}

/* Progress bar */
.steps-progress{position:relative;height:3px;background:var(--rule-light);border-radius:3px;margin-bottom:40px}
.steps-progress-fill{position:absolute;top:0;left:0;height:100%;width:0;background:linear-gradient(90deg, var(--green-600), var(--accent));border-radius:3px;transition:width .3s ease}

/* Steps grid */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.step{
  background:#fff;
  border:1px solid var(--rule-light);
  border-radius:20px;
  padding:40px 28px 32px;
  min-height:300px;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:all .5s cubic-bezier(.2,.85,.2,1);
}
.step::before{
  content:"";position:absolute;inset:-50%;
  background:radial-gradient(circle at center, rgba(126,208,168,0.08) 0%, transparent 60%);
  opacity:0;transition:opacity .5s ease;pointer-events:none;
}
.step:hover{transform:translateY(-6px);box-shadow:0 30px 60px -20px rgba(12,26,22,.08);border-color:var(--rule)}
.step:hover::before{opacity:1}
.step:hover .step-num{background:var(--green-600);color:#fff;border-color:var(--green-600);box-shadow:0 4px 16px rgba(126,208,168,.3)}

/* Step number badge */
.step-num{
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:13px;
  letter-spacing:.05em;
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  border:2px solid var(--rule);
  color:var(--green-900);
  background:var(--paper);
  margin-bottom:28px;
  transition:all .4s cubic-bezier(.2,.85,.2,1);
}
.step h4{font-family:"Montserrat",sans-serif;font-weight:600;font-size:22px;color:var(--green-900);margin-bottom:14px;letter-spacing:-0.01em}
.step p{font-size:14px;color:var(--ink-60);line-height:1.6;flex:1}
.step .duration{
  margin-top:20px;
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:9px;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--green-600);
  padding:6px 14px;
  border:1px solid var(--green-200);
  border-radius:40px;
  background:rgba(126,208,168,.06);
  display:inline-block;
  align-self:flex-start;
}

/* ===== Philosophy ===== */
.philo{background:var(--green-900);color:var(--cream);padding:240px 44px 180px;position:relative;overflow:hidden}
.philo-grid{display:grid;grid-template-columns:10fr 8fr;gap:120px;position:relative;z-index:2;align-items:start}
.philo h2{font-family:"Montserrat",sans-serif;font-size:clamp(48px,6vw,96px);font-weight:700;line-height:1;letter-spacing:-0.03em;margin-top:30px}
.philo h2 em{font-style:italic;color:var(--green-300);font-weight:600}
.philo-right{font-size:18px;color:rgba(255,255,255,.8);line-height:1.65;max-width:520px;}
.philo .eyebrow{font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,.5);display:flex;align-items:center;gap:16px}
.philo .eyebrow::before{content:"";display:block;width:30px;height:1px;background:rgba(255,255,255,.3)}
.philo-img-wrap{margin-top:60px;border-radius:24px;overflow:hidden;box-shadow:0 60px 100px -20px rgba(0,0,0,0.4);transform:translateZ(0)}
.philo-img-wrap .anim-img{aspect-ratio:4/3;border-radius:0}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:140px;position:relative;z-index:2}
.value{padding:40px 32px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);border-radius:24px;display:flex;flex-direction:column;justify-content:flex-start;transition:all .5s cubic-bezier(.2,.85,.2,1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.value:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);box-shadow:0 30px 60px -20px rgba(0,0,0,0.5)}
.value .num{font-family:"Montserrat",sans-serif;font-size:12px;font-weight:700;letter-spacing:0.1em;color:var(--green-900);background:#7ED0A8;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:40px;box-shadow:0 4px 12px rgba(126,208,168,.2)}
.value .v{font-family:"Montserrat",sans-serif;font-size:24px;font-weight:600;color:#fff;letter-spacing:-0.01em;line-height:1.2;margin-bottom:16px}
.value .d{font-size:15px;color:rgba(255,255,255,.65);line-height:1.6}
.philo-bg{position:absolute;top:-20%;left:-20%;width:80%;height:100%;background:radial-gradient(ellipse at center, rgba(126,208,168,0.12) 0%, transparent 60%);pointer-events:none;filter:blur(60px)}
.philo-bg-2{position:absolute;bottom:-10%;right:0;width:50%;height:70%;background:radial-gradient(ellipse at center, rgba(200,131,91,0.06) 0%, transparent 60%);pointer-events:none;filter:blur(60px)}

/* ===== Testimonials ===== */
.quotes{padding:150px 44px;background:var(--paper)}
.quote-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-bottom:60px}
.quote-strip .anim-img{aspect-ratio:4/3}
.quotes-head{margin-bottom:80px;display:flex;justify-content:space-between;align-items:end}
.quotes-head h2{font-family:"Montserrat",sans-serif;font-size:clamp(40px,5vw,80px);line-height:.95;letter-spacing:-0.025em;color:var(--green-900);max-width:780px}
.quotes-head h2 em{font-style:italic}
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border:none}
.quote{background:var(--paper);padding:48px 40px;min-height:340px;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .4s cubic-bezier(.2,.85,.2,1), box-shadow .4s cubic-bezier(.2,.85,.2,1);border:1px solid var(--rule-light)}
.quote:hover{transform:translateY(-6px);box-shadow:0 24px 60px -20px rgba(12,26,22,.08)}
.quote .mark{font-family:"Montserrat",sans-serif;font-size:110px;line-height:.6;color:var(--green-100);font-style:italic}
.quote p{font-family:"Montserrat",sans-serif;font-size:22px;line-height:1.45;letter-spacing:-0.005em;color:var(--green-900);margin-top:10px;flex:1}
.quote .who{margin-top:34px;padding-top:24px;border-top:1px solid var(--rule-light)}
.quote .who b{font-weight:600;font-size:15px;color:var(--ink)}
.quote .who span{font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);display:block;margin-top:6px}

/* ===== CTA closer ===== */
.cta-closer{padding:160px 44px;background:var(--ivory);position:relative;overflow:hidden}
.cta-closer h2{font-family:"Montserrat",sans-serif;font-size:clamp(50px,7.5vw,130px);line-height:.88;letter-spacing:-0.035em;color:var(--green-900);text-align:center}
.cta-closer h2 em{font-style:italic;color:var(--green-700)}
.cta-closer .sub{text-align:center;font-size:18px;color:var(--ink-60);max-width:520px;margin:50px auto 40px;line-height:1.55}
.cta-closer .actions{display:flex;justify-content:center;gap:14px}
/* Responsive */
@media (max-width:900px){
  /* Hero — stack vertical, no absolute parallax */
  .hero-scroll{
    position:relative;height:auto;min-height:100svh;
    width:100%;overflow-x:hidden;overflow-y:visible;background:var(--paper);
    padding:100px 20px 40px;display:flex;flex-direction:column;
  }
  .hero-scroll::after{display:none} /* no gradient overlay on mobile */
  .hero-scroll .stage{
    position:relative;display:flex;flex-direction:column;align-items:stretch;
    flex:1;inset:auto;
  }
  .hero-meta-overlay{
    position:relative;top:auto;left:auto;right:auto;
    display:flex;justify-content:space-between;
    margin-bottom:32px;font-size:9px;letter-spacing:.12em;gap:20px;
    text-align:left;
  }
  .hero-slogan{
    position:relative;top:auto;left:auto;right:auto;
    white-space:normal;text-align:left;
    font-size:clamp(44px,11vw,64px);line-height:.97;
    margin:0;word-break:break-word;
    z-index:1;animation:none;
  }
  .hero-slogan span,.hero-slogan em{display:block}
  .hero-building{
    position:relative;z-index:2;
    top:auto;left:auto;width:100%;height:auto;
    max-height:none;
    object-fit:contain;object-position:center;
    transform: scale(1.3);
    transform-origin: center center;
    /* Push to exact vertical center of the available space below the slogan */
    margin:auto 0;
  }

  .hero-below{padding:36px 20px 60px}
  .hero-below-grid{grid-template-columns:1fr;gap:28px;align-items:start}
  .hero-below-lede{font-size:15px}
  .hero-below-actions{justify-content:flex-start;width:100%}
  .hero-below-actions .btn{flex:1;justify-content:center;min-width:0}

  .intro{padding:80px 24px}
  .intro-wow-text{font-size:clamp(28px,8vw,50px)}
  .intro-text-img{grid-template-columns:1fr;gap:40px}
  .intro-text-img .anim-img{aspect-ratio:5/4}
  .intro-media{grid-template-columns:1fr;gap:14px;margin-top:40px}
  .intro-media .anim-img,.intro-media .anim-img.tall{aspect-ratio:5/4}
  .intro-foot{grid-template-columns:1fr 1fr;margin-top:50px;gap:14px}
  .stat{padding:28px 20px;border-radius:16px}
  .stat .n{font-size:44px}

  .philo-media{grid-template-columns:1fr;gap:14px;margin-bottom:40px}
  .philo-media .anim-img,.philo-media .anim-img.portrait{aspect-ratio:5/4}

  .quote-strip{grid-template-columns:1fr;gap:1px;margin-bottom:30px}
  .quote-strip .anim-img{aspect-ratio:5/3}

  .split{grid-template-columns:1fr;min-height:auto}
  .split > div{padding:60px 24px}
  .split > div:first-child{border-right:none;border-bottom:1px solid rgba(255,255,255,.1)}
  .split h3{font-size:clamp(30px,8vw,48px);margin-bottom:30px}
  .split ul li{font-size:15px;padding:16px 0}
  .split .decor{font-size:140px;right:-20px;bottom:-20px}

  .projects,.process,.philo,.quotes,.cta-closer{padding:70px 20px}
  .projects-head{flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:40px}
  .projects-head h2{font-size:clamp(28px,7vw,42px);line-height:1}
  .project-item {
    display: grid;
    grid-template-columns: 1fr 50px;
    grid-template-rows: auto auto auto;
    gap: 4px 16px;
    padding: 32px 0;
  }
  .project-item:hover { padding-left: 0; padding-right: 0; }
  .project-item::before { display: none; }
  .project-item .meta {
    display: inline-flex;
    grid-column: 1 / 3;
    grid-row: 1;
    font-size: 9px;
    padding: 6px 12px;
    margin-bottom: 8px;
  }
  .project-item .ttl {
    grid-column: 1 / 2;
    grid-row: 2;
    font-size: 20px;
    line-height: 1.2;
    padding-left: 0;
  }
  .project-item:hover .ttl { transform: none; }
  .project-item .loc {
    display: block;
    grid-column: 1 / 2;
    grid-row: 3;
    font-size: 13px;
    margin-top: 4px;
  }
  .project-item .go {
    grid-column: 2 / 3;
    grid-row: 2 / 4;
    width: 48px;
    height: 48px;
    margin-right: 0;
    align-self: center;
  }
  .project-item:hover .go { transform: none; }

  .process-head{grid-template-columns:1fr;gap:20px;margin-bottom:40px}
  .process-head h2{font-size:clamp(36px,9vw,56px);line-height:1}
  .process-head p{justify-self:start;font-size:15px}
  .steps-progress{margin-bottom:24px}
  .steps{grid-template-columns:1fr;gap:14px}
  .step{min-height:auto;padding:28px 20px 24px;border-radius:16px;flex-direction:row;flex-wrap:wrap;gap:0}
  .step-num{width:36px;height:36px;font-size:12px;margin-bottom:16px;margin-right:14px}
  .step h4{flex:1;margin-bottom:0;display:flex;align-items:center;font-size:18px}
  .step p{width:100%;margin-top:12px}
  .step .duration{margin-top:14px}

  .philo-grid{grid-template-columns:1fr;gap:40px}
  .philo h2{font-size:clamp(44px,9vw,60px);line-height:1}
  .philo-right{font-size:15px;max-width:100%}
  .philo-img-wrap{margin-top:40px;}
  .values{grid-template-columns:1fr;margin-top:80px;gap:16px;border-top:none}
  .value{border-right:none;border-bottom:none;padding:32px 24px;border:1px solid rgba(255,255,255,.05);}
  .value:last-child{border-bottom:1px solid rgba(255,255,255,.05)}
  .value .v{font-size:22px}
  .value .d{font-size:14px}
  .value .num{margin-bottom:24px}

  .quotes-head{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:40px}
  .quotes-head h2{font-size:clamp(28px,7vw,42px);line-height:1}
  .quote-grid{grid-template-columns:1fr;border:none;background:transparent;gap:20px}
  .quote{min-height:auto;padding:32px 24px;border:1px solid var(--rule-light);border-radius:20px}
  .quote p{font-size:18px}

  .cta-closer h2{font-size:clamp(48px,12vw,80px)}
  .cta-closer .sub{margin:30px auto;font-size:15px}
  .cta-closer .actions{flex-direction:column;align-items:stretch}
  .cta-closer .actions .btn{justify-content:center}
}