/* Variant A only: align the CTA's technical rules to the footer column grid.
   The same container width makes these real shared axes at every desktop size. */
:root {
  --footer-rule: rgba(255,255,255,.22);
  --grid-axis-three: 57.2916667%;
  --grid-axis-four: 78.125%;
}
.project-cta { border-top:0; }
.project-cta__inner::before {
  content:"";
  position:absolute;
  top:calc(-1 * var(--section-pad));
  left:0;
  right:0;
  height:1px;
  background:var(--line);
}
.project-cta__inner > .project-cta__rule {
  top:calc(-1 * var(--section-pad));
  bottom:calc(-1 * var(--section-pad));
  z-index:1;
  pointer-events:none;
  background:var(--line);
}
.project-cta__rule--one { left:var(--grid-axis-three); }
.project-cta__rule--two { left:var(--grid-axis-four); }
.site-footer__main {
  grid-template-columns:minmax(0,1.35fr) minmax(0,.7fr) minmax(0,.7fr) minmax(0,1fr) minmax(0,1.05fr);
}
.site-footer__column {
  padding:0 clamp(20px,2vw,34px) 30px;
  border-left:1px solid var(--footer-rule);
  min-height:340px;
}
.site-footer__brand { padding-right:clamp(28px,3.2vw,56px); }
.site-footer__column-title { gap:12px; }
.site-footer__column-title > span { width:24px; }
.site-footer__geometry .site-footer__line { display:none; }
.site-footer__bottom { border-top-color:var(--footer-rule); }
@media(max-width:1180px) {
  .project-cta__rule--one { left:50%; }
  .project-cta__rule--two { display:none; }
  .site-footer__main { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-footer__brand { grid-column:1 / -1; padding:0 0 48px; border-bottom:1px solid var(--footer-rule); }
  .site-footer__column { min-height:0; padding:36px 30px; border:0; border-bottom:1px solid var(--footer-rule); }
  .site-footer__column:nth-child(even) { padding-left:0; border-right:1px solid var(--footer-rule); }
  .site-footer__column:nth-child(odd) { padding-right:0; }
  .site-footer__column--contact, .site-footer__column--newsletter { border-bottom:0; }
}
@media(max-width:900px) {
  .project-cta__inner > .project-cta__rule { top:auto; height:430px; }
}
@media(max-width:650px) {
  .project-cta__inner > .project-cta__rule { display:none; }
  .site-footer__main { display:block; }
  .site-footer__brand { padding-bottom:40px; }
  .site-footer__column { padding:32px 0; border-bottom:1px solid var(--footer-rule); }
  .site-footer__column--newsletter { border-bottom:0; }
}
