.ftd{background:#101010;font-family:Geist,sans-serif;color:#C3C3C3}.ftd .ft__in{max-width:1728px;margin:0 auto;padding:31px 96px 0;display:flex;align-items:flex-start}.ftd .ft__brand{flex:0 0 597px;padding-right:96px;border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;align-items:center;text-align:center;min-height:470px}.ftd img.ft__logo{width:206px;height:auto;display:block;margin:0 0 55px}.ftd p.ft__desc{margin:0;max-width:420px;font-weight:300;font-size:18px;line-height:28px;color:#C3C3C3}.ftd p.ft__addr{margin:44px 0 0;font-weight:400;font-size:14px;line-height:1;letter-spacing:.06em;color:#A8ADAF}.ftd .ft__socs{display:flex;gap:16px;margin-top:40px}.ftd a.ft-soc{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.05);display:inline-flex;align-items:center;justify-content:center;transition:background .25s}.ftd a.ft-soc{color:#fff;transition:background .25s,color .25s}.ftd a.ft-soc:hover{background:rgba(255,255,255,.10);color:#FEBA4F}.ftd .ft__cols{flex:1;display:flex;gap:48px;padding-left:13.5px}.ftd .ft__col:nth-child(1){flex:0 0 240px}.ftd .ft__col:nth-child(2){flex:0 0 380px}.ftd .ft__col:nth-child(3){flex:0 0 310px}.ftd h4.ft__h{margin:0 0 59px!important;font-family:Geist,sans-serif!important;font-weight:400!important;font-size:14px!important;line-height:1!important;letter-spacing:.08em!important;text-transform:uppercase;color:#FFF!important}.ftd .ft__col:nth-child(2)>h4.ft__h,.ftd .ft__col:nth-child(3)>h4.ft__h{position:relative}.ftd .ft__col:nth-child(2)>h4.ft__h::after,.ftd .ft__col:nth-child(3)>h4.ft__h::after{content:"";position:absolute;left:0;width:55px;height:1px;background:rgba(255,255,255,.5);top:100%;margin-top:11.5px}.ftd .ft__acc-btn{display:flex;align-items:center;justify-content:space-between;gap:12px;width:fit-content;background:none;border:0;padding:0 0 10px;margin:0 0 34px;cursor:default;position:relative;font-family:Geist,sans-serif;font-weight:400;font-size:14px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:#FFF}.ftd .ft__acc-btn::after{content:"";position:absolute;left:0;width:55px;height:1px;background:rgba(255,255,255,.5);bottom:0}.ftd .ft__chev{display:none}.ftd .ft__col:nth-child(2) .ft__acc-btn,.ftd .ft__col:nth-child(3) .ft__acc-btn{display:none}.ftd .ft__acc-p{display:block}.ftd a.ft__sub{display:block;width:fit-content;font-weight:400;font-size:14px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:#FFF;text-decoration:none;padding-bottom:10px;margin:0 0 34px;position:relative}.ftd a.ft__sub::after{content:"";position:absolute;left:0;width:55px;height:1px;background:rgba(255,255,255,.5);bottom:0}.ftd a.ft__sub:hover{color:#FEBA4F}.ftd a.ft__sub:hover::after{background:#FEBA4F}.ftd ul.ft__l{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:12px}.ftd ul.ft__l li{margin:0;padding:0}.ftd ul.ft__l a{display:block;font-weight:300;font-size:16px;line-height:26px;color:#C3C3C3;text-decoration:none;transition:color .25s}.ftd ul.ft__l a:hover{color:#FEBA4F}.ftd .ft__bar{max-width:1728px;margin:56px auto 0;padding:24px 96px 28px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;gap:16px;font-weight:300;font-size:14px;line-height:20px;color:#8B8F93}.ftd .ft__legal{display:flex;align-items:center;gap:14px}.ftd .ft__legal a{color:#8B8F93;text-decoration:none}.ftd .ft__legal a:hover{color:#FEBA4F}.ftd .ft__legal i{color:#FEBA4F;font-style:normal}@media(max-width:1024px) and (min-width:768px){.ftd .ft__in{flex-direction:column;padding:56px 40px 0;gap:56px}.ftd .ft__brand{flex:0 0 auto;width:100%;padding-right:0;border-right:0;min-height:0}.ftd .ft__cols{padding-left:0;flex-wrap:wrap;gap:40px;width:100%}.ftd .ft__col{flex:1 1 240px!important}.ftd .ft__bar{padding:20px 40px 24px;margin-top:40px}}.ftm{background:#101010;font-family:Geist,sans-serif;color:#C3C3C3}.ftm .ft__in{display:flex;flex-direction:column;padding:0 16px;gap:0}.ftm .ft__brand{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 0 40px;border-bottom:1px solid rgba(255,255,255,.12)}.ftm img.ft__logo{width:165px;height:auto;display:block;margin:0 0 30px}.ftm p.ft__desc{margin:0;max-width:356px;font-weight:300;font-size:14px;line-height:22px;color:#C3C3C3}.ftm p.ft__addr{margin:22px 0 0;font-weight:400;font-size:14px;line-height:1;letter-spacing:.04em;color:#A8ADAF}.ftm .ft__socs{display:flex;gap:14px;margin-top:42px}.ftm a.ft-soc{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.05);display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:background .25s,color .25s}.ftm a.ft-soc:hover{background:rgba(255,255,255,.10);color:#FEBA4F}.ftm .ft__cols{display:flex;flex-direction:column;margin-top:34px}.ftm .ft__col{width:100%;text-align:left}.ftm h4.ft__h{margin:0 0 43px!important;font-family:Geist,sans-serif!important;font-weight:400!important;font-size:14px!important;line-height:1!important;letter-spacing:.08em!important;text-transform:uppercase;color:#FFF!important}.ftm h4.ft__h--d{display:none}.ftm .ft__acc{margin-bottom:20px}.ftm .ft__acc-btn{display:flex;width:100%;justify-content:space-between;align-items:flex-start;gap:12px;background:none;border:0;padding:0;margin:0 0 20px;cursor:pointer;font-family:Geist,sans-serif;font-weight:400;font-size:14px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:#FFF}.ftm .ft__acc-btn span{border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:11px}.ftm .ft__chev{display:block;flex:none;transition:transform .3s}.ftm .ft__acc-btn[aria-expanded="true"] .ft__chev{transform:rotate(180deg)}.ftm .ft__acc-p{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s ease;overflow:hidden}.ftm .ft__acc-btn[aria-expanded="true"]+.ft__acc-p{grid-template-rows:1fr}.ftm .ft__acc-p>ul{min-height:0;overflow:hidden}.ftm ul.ft__l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.ftm ul.ft__l li{margin:0;padding:0}.ftm ul.ft__l a{display:block;font-weight:300;font-size:16px;line-height:24px;color:#C3C3C3;text-decoration:none;padding:7px 0}.ftm a.ft__sub{display:block;width:100%;font-weight:400;font-size:14px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:#FFF;text-decoration:none;margin:0 0 20px;padding:0;border:0}.ftm a.ft__sub::after{content:"";display:block;width:52px;height:1px;background:rgba(255,255,255,.35);margin-top:11px}.ftm .ft__bar{display:flex;flex-direction:column-reverse;align-items:center;text-align:center;gap:20px;padding:26px 16px 30px;margin-top:22px;border-top:1px solid rgba(255,255,255,.1);font-weight:300;font-size:14px;line-height:20px;color:#8B8F93}.ftm .ft__legal{display:flex;align-items:center;gap:12px}.ftm .ft__legal a{color:#8B8F93;text-decoration:none}.ftm .ft__legal i{color:#FEBA4F;font-style:normal}
/* footer column alignment + vertical tightening (desktop)
   Column 1 opens with a.ft__sub (ABOUT) while columns 2-3 open with
   h4.ft__h. The two had different rhythms - sub = 14 text + 10 rule gap
   + 34 margin = 58px, head = 14 + 59 = 73px - so column 1's first link
   sat 15px higher than its neighbours. Match the head rhythm, but only
   for the FIRST sub in a column so PORTFOLIO / CONTACT US keep their
   tighter spacing further down. */
.ftd .ft__col > .ft__acc:first-of-type > a.ft__sub{padding-bottom:11.5px;margin-bottom:47.5px}

/* The brand block is much taller than the link columns, which left a
   large dead band under them. Trim the brand's internal rhythm and the
   gap before the bottom bar rather than shrinking the type. */
.ftd .ft__brand{min-height:0}
.ftd img.ft__logo{margin:0 0 40px}
.ftd p.ft__addr{margin:32px 0 0}
.ftd .ft__socs{margin-top:32px}
.ftd .ft__bar{margin-top:40px}

/* footer brand height pass 2 (desktop)
   The dead band to the right of the brand is the brand column simply being
   taller than the link columns - ~452px against ~313px. Nothing is padding
   it, so the only way to close it is to shorten the brand. Logo 206->150px
   (=120.9px tall, down from 166) plus a tighter vertical rhythm. */
.ftd img.ft__logo{width:150px;margin:0 0 28px}
.ftd p.ft__desc{line-height:26px}
.ftd p.ft__addr{margin:22px 0 0}
.ftd .ft__socs{margin-top:22px;gap:14px}
.ftd a.ft-soc{width:46px;height:46px}

/* mid-width fluidity (desktop)
   brand 597 + cols 930 + 96 gaps + 192 page padding = 1828px minimum, with
   no breakpoint until 1024 - so the footer overflowed on every screen
   between those two numbers, a wider band than the section above it.
   Each clamp maximum equals the original value at the 1728 design width
   (96/1728 = 5.55vw, 48/1728 = 2.78vw), so >=1728 renders exactly as before. */
@media(min-width:1025px){
  .ftd .ft__in{padding-left:clamp(28px,5.55vw,96px);padding-right:clamp(28px,5.55vw,96px)}
  .ftd .ft__brand{flex:0 1 597px;min-width:0;padding-right:clamp(28px,5.55vw,96px)}
  .ftd .ft__cols{gap:clamp(22px,2.78vw,48px);padding-left:clamp(0px,.78vw,13.5px)}
  .ftd .ft__col:nth-child(1){flex:0 1 240px;min-width:0}
  .ftd .ft__col:nth-child(2){flex:0 1 380px;min-width:0}
  .ftd .ft__col:nth-child(3){flex:0 1 310px;min-width:0}
  .ftd .ft__bar{padding-left:clamp(28px,5.55vw,96px);padding-right:clamp(28px,5.55vw,96px)}
}

/* mid-width fix 2: the wrapper itself must be allowed to shrink.
   .ft__cols is a flex ITEM of .ft__in as well as a flex container, and a
   flex item defaults to min-width:auto - so it would not go below its
   min-content width no matter how shrinkable its children were. */
@media(min-width:1025px){
  .ftd .ft__in{min-width:0}
  .ftd .ft__cols{min-width:0;flex:1 1 0}
  .ftd .ft__col{min-width:0}
  .ftd .ft__col .ft__l a,.ftd .ft__col .ft__sub,.ftd .ft__col .ft__h{overflow-wrap:break-word}
}
