/* V24.12 — precision-aligned canonical footer shared across every public tab */
footer{
  background:var(--ink);
  color:rgba(237,235,228,.68);
  padding:72px 0 82px;
  font-size:14px;
}
footer>.wrap{
  width:100%;
  max-width:1540px;
  margin:0 auto;
  padding:0 clamp(28px,3.2vw,56px);
}
footer .f-grid{
  display:grid;
  grid-template-columns:minmax(285px,1.34fr) minmax(145px,.66fr) minmax(265px,1.08fr) minmax(230px,.94fr) minmax(230px,.94fr);
  column-gap:clamp(34px,3.15vw,64px);
  align-items:start;
}
footer .f-grid>*{min-width:0}
footer h4{
  font-family:var(--ui);
  font-size:10.5px;
  line-height:1.2;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--brass-lt);
  margin:3px 0 24px;
  font-weight:600;
}
footer a{
  color:rgba(237,235,228,.68);
  text-decoration:none;
  transition:color .2s ease;
}
footer a:hover,footer a:focus-visible{color:var(--brass-lt)}

/* Brand column */
footer .footer-brand-col{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}
footer .f-brand-logo{
  display:block;
  width:100%;
  max-width:286px;
  height:auto;
  margin:0 0 18px;
  object-fit:contain;
}
footer .footer-brand-col p{
  max-width:31ch;
  margin:0;
  line-height:1.62;
}
footer .footer-brand-col .btn{margin-top:22px}
footer .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:54px;
  font-family:var(--ui);
  font-size:13px;
  font-weight:600;
  line-height:1;
  letter-spacing:.09em;
  text-transform:uppercase;
  text-decoration:none;
  padding:16px 25px;
  border:1px solid transparent;
  cursor:pointer;
  transition:background .25s,color .25s,border-color .25s,transform .25s;
  white-space:nowrap;
}
footer .btn-brass{background:var(--brass);color:#14100A;border-color:var(--brass)}
footer .btn-brass:hover,footer .btn-brass:focus-visible{
  background:var(--brass-lt);
  border-color:var(--brass-lt);
  color:#14100A;
}

/* Navigation column — controlled rhythm rather than inherited margins */
footer .f-grid>div:nth-child(2){
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
footer .f-grid>div:nth-child(2)>a{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  margin:0 0 10px;
  line-height:1.45;
}
footer .f-grid>div:nth-child(2)>a:last-child{margin-bottom:0}

/* Office column */
footer .office-list{display:grid;gap:24px}
footer .office-item{
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  gap:14px;
  align-items:start;
}
footer .office-item p{margin:0;line-height:1.58}
footer .office-map-link{
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr);
  gap:14px;
  align-items:start!important;
  margin:0!important;
  padding:0!important;
  text-decoration:none;
}
footer .office-map-link p{transition:color .2s ease}
footer .office-map-link:hover p,footer .office-map-link:focus-visible p{color:var(--brass-lt)}
footer .office-pin{
  display:inline-flex;
  align-items:flex-start;
  justify-content:center;
  color:var(--brass-lt);
  padding-top:3px;
}
footer .office-pin svg{width:16px;height:16px;display:block;fill:currentColor}

/* Contact and follow columns */
footer .footer-link-list{display:grid;gap:19px}
footer .footer-link-item{
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr);
  gap:14px;
  align-items:start;
  margin:0!important;
  min-width:0;
}
footer .footer-link-item + .footer-link-item{margin-top:0!important}
footer .footer-link-item span:last-child{
  min-width:0;
  line-height:1.5;
  overflow-wrap:anywhere;
}
footer .footer-link-item svg{width:17px;height:17px;display:block;fill:currentColor}
footer .footer-link-item .footer-icon{
  display:inline-flex;
  align-items:flex-start;
  justify-content:center;
  color:var(--brass-lt);
  padding-top:2px;
}

/* Bottom legal row */
footer .f-bot{
  margin-top:56px;
  padding-top:24px;
  border-top:1px solid rgba(237,235,228,.12);
  font-size:12px;
  line-height:1.5;
  display:flex;
  flex-wrap:wrap;
  gap:14px 28px;
  align-items:center;
  justify-content:space-between;
}
footer .f-bot a{margin:0}

/* Intermediate desktop: preserve five columns without cramped text */
@media(min-width:1180px) and (max-width:1399px){
  footer>.wrap{padding-left:28px;padding-right:28px}
  footer .f-grid{
    grid-template-columns:minmax(250px,1.2fr) minmax(130px,.62fr) minmax(235px,1.05fr) minmax(215px,.92fr) minmax(205px,.9fr);
    column-gap:28px;
  }
  footer .f-brand-logo{max-width:252px}
  footer .footer-link-item,footer .office-map-link{gap:11px}
}

/* Tablet: balanced two-column composition */
@media(min-width:720px) and (max-width:1179px){
  footer{padding-top:64px}
  footer>.wrap{max-width:900px;padding-left:32px;padding-right:32px}
  footer .f-grid{
    grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
    gap:46px 54px;
  }
  footer .footer-brand-col{grid-column:1 / -1;max-width:430px}
  footer .f-brand-logo{max-width:272px}
}

/* Mobile: one clean vertical sequence */
@media(max-width:719px){
  footer{padding-top:56px}
  footer>.wrap{padding-left:22px;padding-right:22px}
  footer .f-grid{grid-template-columns:minmax(0,1fr);gap:42px}
  footer h4{margin-bottom:20px}
  footer .f-brand-logo{max-width:246px;margin-bottom:15px}
  footer .footer-brand-col p{max-width:34ch}
  footer .footer-link-list{gap:17px}
  footer .office-list{gap:22px}
  footer .f-bot{margin-top:46px;flex-direction:column;align-items:flex-start}
}
@media(max-width:479px){footer>.wrap{padding-left:18px;padding-right:18px}}
@media(pointer:coarse){
  footer .f-bot a{display:inline-flex!important;min-width:44px;min-height:44px;align-items:center;padding:8px 2px}
  footer a:not(.btn){min-height:44px}
  footer .f-grid>div:nth-child(2)>a{margin-bottom:4px}
}
@media(max-width:767px){footer{padding-bottom:calc(118px + env(safe-area-inset-bottom,0px))}}
@media print{
  footer{background:#fff!important;color:#000!important}
  footer *{color:#000!important}
}
