/* Shared branded footer system for all current and future theme packs. */
.cms-theme .site-footer{
  position:relative;
  isolation:isolate;
  display:block!important;
  margin-top:0;
  padding:clamp(60px,8vw,112px) 0 0;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--t-accent) 22%,transparent),transparent 30%),
    linear-gradient(135deg,color-mix(in srgb,var(--t-primary) 94%,#050505),color-mix(in srgb,var(--t-primary) 72%,#111827));
  color:white;
}
.cms-theme .site-footer:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,transparent,black 16%,black 84%,transparent);
  opacity:.32;
}
.cms-theme .site-footer:after{
  content:"";
  position:absolute;
  right:max(-130px,calc((100vw - 1180px)/2 - 220px));
  top:38px;
  width:420px;
  height:420px;
  border-radius:999px;
  z-index:-1;
  border:1px solid rgba(255,255,255,.12);
  background:color-mix(in srgb,var(--t-soft) 18%,transparent);
}
.cms-theme .footer-shell{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(180px,.52fr) minmax(250px,.72fr);
  gap:clamp(28px,5vw,72px);
  align-items:start;
}
.cms-theme .footer-brand-panel{
  display:grid;
  gap:22px;
  max-width:760px;
}
.cms-theme .footer-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:max-content;
  max-width:100%;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.82);
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cms-theme .footer-kicker i{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  color:white;
  font-size:16px;
}
.cms-theme .footer-brand-panel h2{
  color:white;
  font-size:clamp(44px,7vw,92px);
  line-height:.96;
  letter-spacing:-.07em;
  max-width:860px;
  text-wrap:balance;
}
.cms-theme .footer-brand-panel p{
  color:rgba(255,255,255,.72);
  font-size:clamp(17px,1.45vw,20px);
  line-height:1.75;
  max-width:620px;
}
.cms-theme .footer-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  margin-top:8px;
}
.cms-theme .footer-primary-action{
  min-height:52px;
  background:white;
  color:var(--t-primary)!important;
  box-shadow:0 22px 70px rgba(0,0,0,.22);
}
.cms-theme .footer-email-link{
  display:inline-flex;
  min-height:52px;
  align-items:center;
  padding:0 18px;
  border-radius:999px;
  color:white!important;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  font-weight:850;
}
.cms-theme .footer-links,
.cms-theme .footer-contact-panel{
  display:grid;
  gap:12px;
  align-content:start;
  min-width:0;
}
.cms-theme .footer-links h3,
.cms-theme .footer-contact-panel h3{
  color:white;
  font-size:14px;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin:0 0 12px;
}
.cms-theme .footer-links a,
.cms-theme .footer-contact-panel>a,
.cms-theme .footer-mini-links a{
  color:rgba(255,255,255,.72)!important;
  text-decoration:none;
  font-weight:780;
  line-height:1.35;
}
.cms-theme .footer-links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,.11);
}
.cms-theme .footer-links a:after{
  content:"\EA6C";
  font-family:remixicon;
  opacity:.44;
  font-weight:400;
}
.cms-theme .footer-contact-panel{
  padding:26px;
  border-radius:28px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 24px 90px rgba(0,0,0,.16);
  backdrop-filter:blur(18px);
}
.cms-theme .footer-contact-panel>a{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 0;
  overflow-wrap:anywhere;
}
.cms-theme .footer-contact-panel>a i{
  flex:0 0 auto;
  color:white;
  font-size:20px;
  margin-top:1px;
}
.cms-theme .footer-mini-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.11);
}
.cms-theme .footer-mini-links a{
  padding:8px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  font-size:13px;
}
.cms-theme .site-footer .socials{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}
.cms-theme .site-footer .socials a{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:white!important;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.12);
}
.cms-theme .site-footer .footer-links .socials a{
  margin:0;
  padding:0;
  justify-content:center;
  border-bottom:0;
  line-height:1;
}
.cms-theme .site-footer .footer-links .socials a:after{
  content:none!important;
}
.cms-theme .site-footer .socials a i{
  display:block;
  width:1em;
  height:1em;
  line-height:1;
  text-align:center;
}
.cms-theme .footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-top:clamp(46px,6vw,84px);
  padding:22px 0;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.62)!important;
  font-size:14px;
}
.cms-theme .footer-bottom span:last-child{
  font-weight:850;
  color:rgba(255,255,255,.78);
}

.cms-theme.footer-editorial,
.layout-editorial .site-footer{
  background:#fff7ed;
  color:#171717;
  border-top:8px solid var(--t-primary);
}
.layout-editorial .site-footer:before{background:linear-gradient(90deg,rgba(17,17,17,.11) 1px,transparent 1px);opacity:.22}
.layout-editorial .site-footer:after{border-color:rgba(17,17,17,.12);background:rgba(230,57,70,.08)}
.layout-editorial .footer-kicker,
.layout-editorial .footer-email-link,
.layout-editorial .footer-contact-panel,
.layout-editorial .site-footer .socials a{
  background:white;
  border-color:#111;
}
.layout-editorial .footer-brand-panel h2,
.layout-editorial .footer-links h3,
.layout-editorial .footer-contact-panel h3{color:#111}
.layout-editorial .footer-brand-panel h2{font-family:Georgia,serif;letter-spacing:-.045em}
.layout-editorial .footer-brand-panel p,
.layout-editorial .footer-links a,
.layout-editorial .footer-contact-panel>a,
.layout-editorial .footer-mini-links a,
.layout-editorial .footer-email-link,
.layout-editorial .footer-bottom{color:#333!important}
.layout-editorial .footer-primary-action{background:#111;color:white!important}

.layout-creative .site-footer,
.footer-portfolio{
  background:radial-gradient(circle at 72% 10%,color-mix(in srgb,var(--t-accent) 32%,transparent),transparent 30%),#080808;
}
.layout-creative .footer-brand-panel h2{
  font-size:clamp(48px,8vw,108px);
  text-transform:none;
}
.layout-creative .footer-contact-panel,
.layout-creative .footer-email-link,
.layout-creative .footer-kicker{
  border-color:rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
}

.layout-executive .site-footer,
.footer-corporate{
  background:linear-gradient(135deg,#071a2d,#0a2540 58%,#102f52);
}
.layout-executive .footer-shell{
  grid-template-columns:minmax(0,1.15fr) minmax(190px,.5fr) minmax(280px,.7fr);
}
.layout-executive .footer-brand-panel h2{
  letter-spacing:-.045em;
}
.layout-executive .footer-contact-panel,
.layout-executive .footer-kicker,
.layout-executive .footer-email-link{
  border-radius:16px;
}

.layout-bold .site-footer,
.footer-agency{
  background:linear-gradient(135deg,var(--t-primary),color-mix(in srgb,var(--t-accent) 76%,#000));
}
.layout-bold .footer-brand-panel h2{
  text-transform:uppercase;
  letter-spacing:-.085em;
}
.layout-bold .footer-contact-panel{
  border-radius:18px;
  transform:rotate(-.6deg);
}

.layout-startup .site-footer,
.footer-startup{
  background:linear-gradient(135deg,#101828,#174ea6 70%,#2563eb);
}
.layout-startup .footer-primary-action{color:#174ea6!important}
.layout-startup .footer-contact-panel{border-radius:22px}

.layout-commerce .site-footer,
.footer-ecommerce{
  background:linear-gradient(135deg,#111827,#1f2937 58%,#7c2d12);
}
.layout-commerce .footer-primary-action{color:#c2410c!important}
.layout-commerce .footer-contact-panel,
.layout-commerce .footer-kicker,
.layout-commerce .footer-email-link{
  border-color:rgba(251,146,60,.22);
  background:rgba(251,146,60,.08);
}

.layout-fintech .site-footer,
.footer-fintech{
  background:linear-gradient(135deg,#07111f,#0f2744 58%,#0f766e);
}
.layout-fintech .footer-primary-action{color:#0f766e!important}
.layout-fintech .footer-contact-panel,
.layout-fintech .footer-kicker,
.layout-fintech .footer-email-link{
  border-color:rgba(20,184,166,.22);
  background:rgba(20,184,166,.08);
}

.layout-community .site-footer,
.footer-nonprofit{
  background:linear-gradient(135deg,#253015,#6f4307 68%,#a16207);
}
.layout-community .footer-kicker i,
.layout-community .footer-primary-action{color:#6f4307!important}

.layout-care .site-footer,
.footer-healthcare{
  background:linear-gradient(135deg,#0f3d2e,#145c46 66%,#1d6f50);
}
.layout-soft .site-footer,
.footer-minimal{
  background:linear-gradient(135deg,#083c3a,#0f6059 62%,#1e8a7a);
}
.layout-clarity .site-footer,
.footer-care{
  background:linear-gradient(135deg,#102907,#173708 64%,#2f6f3a);
}
.layout-clarity .footer-kicker,
.layout-clarity .footer-contact-panel,
.layout-clarity .footer-email-link{
  background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.16);
}
.layout-clarity .footer-primary-action{color:#102907!important}

@media(max-width:980px){
  .cms-theme .footer-shell{
    grid-template-columns:1fr 1fr;
  }
  .cms-theme .footer-brand-panel{
    grid-column:1/-1;
  }
  .cms-theme .footer-contact-panel{
    min-height:100%;
  }
}
@media(max-width:640px){
  .cms-theme .site-footer{
    padding-top:92px;
  }
  .cms-theme .site-footer:after{
    width:260px;
    height:260px;
    right:-130px;
    top:20px;
  }
  .cms-theme .footer-shell{
    grid-template-columns:1fr;
    gap:30px;
  }
  .cms-theme .footer-brand-panel h2{
    font-size:clamp(38px,12vw,54px);
    line-height:1.02;
  }
  .cms-theme .footer-actions{
    align-items:stretch;
  }
  .cms-theme .footer-primary-action,
  .cms-theme .footer-email-link{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .cms-theme .footer-contact-panel{
    padding:22px;
    border-radius:22px;
  }
  .layout-bold .footer-contact-panel{
    transform:none;
  }
  .cms-theme .footer-bottom{
    flex-direction:column;
    margin-top:42px;
  }
}
