/*
 * Shared footer refresh
 * Inspired by an inset CTA-over-footer composition while preserving the
 * W Development Group color, type, and image system.
 */

.contact-band,
.project-next {
  isolation:isolate;
  position:relative;
  z-index:2;
  width:min(1372px, calc(100% - 128px));
  margin:clamp(72px, 8vw, 120px) auto -132px;
  padding:clamp(68px, 7vw, 104px);
  overflow:hidden;
  border:1px solid rgba(181,154,106,.38);
  border-radius:24px;
  background:#171614;
  box-shadow:0 28px 80px rgba(0,0,0,.2);
  text-align:left;
}

.contact-band::before,
.project-next::before {
  content:'';
  position:absolute;
  inset:-2%;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(8,8,8,.96) 0%,rgba(8,8,8,.86) 48%,rgba(8,8,8,.3) 100%),
    #171614;
  background-position:center;
  background-size:cover;
  opacity:1;
  transform:scale(1.02);
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
}

.contact-band.footer-media-ready::before,
.project-next.footer-media-ready::before {
  background-image:
    linear-gradient(90deg,rgba(8,8,8,.96) 0%,rgba(8,8,8,.86) 48%,rgba(8,8,8,.3) 100%),
    var(--footer-media);
}

.contact-band::after,
.project-next::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at 12% 115%,rgba(181,154,106,.22),transparent 34%),
    linear-gradient(90deg,transparent 0 72%,rgba(181,154,106,.08));
}

.contact-band:hover::before,
.project-next:hover::before {
  transform:scale(1.055);
}

.contact-band .contact-inner {
  position:relative;
  z-index:1;
  width:min(660px, 100%);
  margin:0;
  text-align:left;
}

.contact-band .label {
  display:block!important;
  margin-bottom:22px;
  text-align:left!important;
}

.contact-band .heading,
.project-next .heading {
  max-width:720px;
  margin:0 0 22px;
  color:#fff;
  font-size:clamp(42px,4.3vw,68px);
  line-height:1.02;
  white-space:normal!important;
}

.contact-band .body-text {
  max-width:550px;
  margin:0 0 38px!important;
  color:rgba(255,255,255,.62)!important;
  font-size:14px;
}

.contact-band .contact-details {
  display:none;
}

.contact-band .btn-gold,
.project-next .btn-gold {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:15px 34px;
  border:1px solid var(--gold, #B59A6A);
  background:var(--gold, #B59A6A);
  color:#fff;
  transition:background .25s ease,color .25s ease,transform .25s ease;
}

.contact-band .btn-gold:hover,
.project-next .btn-gold:hover {
  background:#fff;
  border-color:#fff;
  color:#171614;
  transform:translateY(-3px);
}

footer {
  position:relative;
  z-index:1;
  padding:96px 64px 38px!important;
  background:#070707!important;
}

.contact-band + footer,
.project-next + footer {
  padding-top:220px!important;
}

footer .footer-grid {
  display:grid;
  grid-template-columns:minmax(250px,1.05fr) minmax(180px,.7fr) minmax(260px,.85fr)!important;
  align-items:start;
  gap:clamp(52px,7vw,120px)!important;
  width:min(1372px, 100%);
  margin:0 auto 34px!important;
  padding:0 0 68px!important;
  border-bottom:1px solid rgba(255,255,255,.1)!important;
}

footer .footer-logo-wrap {
  order:1;
  text-align:left!important;
}

footer .footer-logo-wrap img {
  height:90px!important;
  margin:0 0 28px!important;
  opacity:.92!important;
}

footer .footer-logo-wrap::after {
  content:'Built on trust. Defined by craftsmanship.';
  display:block;
  max-width:260px;
  font-family:var(--serif, Georgia, serif);
  color:rgba(255,255,255,.52);
  font-size:19px;
  font-weight:300;
  line-height:1.45;
}

footer .footer-col-left {
  order:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px!important;
}

footer .footer-col-right {
  order:3;
  text-align:left!important;
}

footer .footer-col-title {
  margin-bottom:20px!important;
  color:var(--gold, #B59A6A)!important;
  font-size:10px!important;
  font-weight:600!important;
  letter-spacing:3px!important;
}

footer .footer-col-left a,
footer .footer-col-right p,
footer .footer-col-right a {
  color:rgba(255,255,255,.58)!important;
  font-size:13px!important;
  font-weight:300!important;
  line-height:1.8!important;
}

footer .footer-col-left a {
  position:relative;
  padding-bottom:2px;
}

footer .footer-col-left a::after {
  content:'';
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:1px;
  background:var(--gold, #B59A6A);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .3s ease;
}

footer .footer-col-left a:hover,
footer .footer-col-right a:hover {
  color:#fff!important;
}

footer .footer-col-left a:hover::after {
  transform:scaleX(1);
  transform-origin:left;
}

footer .footer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  width:min(1372px, 100%);
  margin:0 auto;
}

footer .footer-copy {
  color:rgba(255,255,255,.28)!important;
  font-size:10px!important;
  letter-spacing:.4px;
}

footer .footer-socials {
  display:flex;
  gap:28px!important;
}

footer .footer-socials a {
  color:rgba(255,255,255,.38)!important;
  font-size:9px!important;
  letter-spacing:2.2px!important;
}

footer .footer-socials a:hover {
  color:var(--gold, #B59A6A)!important;
}

@media (max-width:960px) {
  .contact-band,
  .project-next {
    width:calc(100% - 32px);
    margin:56px auto -72px;
    padding:60px 34px;
    border-radius:19px;
  }

  .contact-band::before,
  .project-next::before {
    background:
      linear-gradient(90deg,rgba(8,8,8,.94),rgba(8,8,8,.72)),
      #171614;
    background-position:center;
    background-size:cover;
  }

  .contact-band.footer-media-ready::before,
  .project-next.footer-media-ready::before {
    background-image:
      linear-gradient(90deg,rgba(8,8,8,.94),rgba(8,8,8,.72)),
      var(--footer-media);
  }

  .contact-band .heading,
  .project-next .heading {
    font-size:clamp(38px,10vw,54px);
  }

  .contact-band + footer,
  .project-next + footer {
    padding-top:132px!important;
  }

  footer {
    padding:78px 28px 30px!important;
  }

  footer .footer-grid {
    grid-template-columns:1fr 1fr!important;
    gap:54px 40px!important;
    padding-bottom:50px!important;
    text-align:left!important;
  }

  footer .footer-logo-wrap {
    grid-column:1 / -1;
  }

  footer .footer-logo-wrap img {
    height:82px!important;
  }

  footer .footer-col-left,
  footer .footer-col-right {
    align-items:flex-start;
    text-align:left!important;
  }

  footer .footer-bottom {
    align-items:flex-start;
    flex-direction:column;
    text-align:left!important;
  }
}

@media (max-width:580px) {
  .contact-band,
  .project-next {
    padding:52px 26px;
  }

  .contact-band .body-text {
    font-size:13px;
  }

  .contact-band .btn-gold,
  .project-next .btn-gold {
    width:100%;
  }

  footer .footer-grid {
    grid-template-columns:1fr!important;
    gap:42px!important;
  }

  footer .footer-logo-wrap {
    grid-column:auto;
  }

  footer .footer-socials {
    flex-wrap:wrap;
    gap:18px 24px!important;
  }
}

@media (prefers-reduced-motion:reduce) {
  .contact-band::before,
  .project-next::before,
  .contact-band .btn-gold,
  .project-next .btn-gold,
  footer .footer-col-left a::after {
    transition:none;
  }
}
