.site-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: linear-gradient(110deg, #0d1b29 0%, #07111d 75%);
}
.footer-orbit {
  position: absolute;
  z-index: -1;
  width: 670px;
  height: 670px;
  right: -110px;
  top: -370px;
  border: 1px solid #d6a26328;
  border-radius: 50%;
  pointer-events: none;
}
.footer-orbit:after {
  content: '';
  position: absolute;
  inset: 34px;
  border: 1px solid #d6a26314;
  border-radius: 50%;
}
.footer-content { position: relative; }
.footer-invite {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 55px;
  padding: 68px 0 52px;
  border-bottom: 1px solid #d6a26345;
}
.footer-invite h2 {
  font-size: clamp(48px, 4.9vw, 74px);
  line-height: .96;
  font-weight: 500;
  letter-spacing: -.04em;
}
.footer-invite h2 em { font-style: normal; font-weight: 500; }
.footer-invite p {
  margin-top: 22px;
  font-size: 13px;
  line-height: 1.8;
  color: #b6bec5;
}
.footer-event-link {
  flex-shrink: 0;
  margin-right: 28px;
}
.footer-main {
  display: grid;
  grid-template-columns: 1.45fr .7fr 1.05fr;
  gap: 60px;
  padding: 47px 0 46px;
  align-items: start;
}
.site-footer .footer-brand { gap: 16px; }
.site-footer .footer-brand .brand-symbol { width: 78px; height: 78px; }
.site-footer .footer-brand .brand-name { font-size: clamp(32px, 3vw, 44px); }
.footer-identity > p {
  margin: 18px 0 0 3px;
  font-size: 12px;
  line-height: 1.85;
  color: #b6bec5;
}
.footer-navigation {
  display: grid;
  gap: 12px;
  padding-top: 7px;
}
.footer-navigation a {
  width: fit-content;
  font-size: 13px;
  color: #d4d8dd;
  transition: color .2s, transform .2s;
}
.footer-navigation a:hover { color: var(--gold-light); transform: translateX(4px); }
.footer-connect { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; padding-top:7px; }
.footer-social {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 0 0 20px;
  border-bottom: 1px solid #ffffff1a;
}
.footer-social-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid #d6a26355;
  border-radius: 50%;
  flex-shrink: 0;
  transition: background .2s;
}
.footer-social > span:nth-child(2) { font-size: 11px; line-height: 1.5; color: #b6bec5; }
.footer-social strong {
  display: block;
  margin-top: 3px;
  font-size: 15px;
  font-weight: 400;
  color: var(--ivory);
}
.footer-social-arrow { margin-left: auto; flex-shrink: 0; transform: rotate(-35deg); transition: transform .2s; }
.footer-social:hover .footer-social-arrow { transform: rotate(-35deg) translateX(3px); }
.footer-social:hover .footer-social-icon { background: #d6a26312; }
.footer-connect > p {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 0;
  font-size: 11px;
  color: #b6bec5;
}
.footer-connect > p > img { flex-shrink: 0; }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 21px 0 24px;
  border-top: 1px solid #ffffff13;
  font-size: 10px;
  color: #909ca8;
}
.footer-bottom a { display: inline-flex; align-items: center; gap: 10px; color: #d4d8dd; min-height: 28px; }
.footer-bottom a img { transform: rotate(180deg); }
.footer-bottom a:hover { color: var(--gold-light); }
@media (max-width: 1100px) {
  .footer-main { grid-template-columns: 1.3fr .65fr 1fr; gap: 30px; }
  .site-footer .footer-brand { gap: 12px; }
  .site-footer .footer-brand .brand-symbol { width: 62px; height: 62px; }
  .site-footer .footer-brand .brand-name { font-size: 34px; }
  .footer-event-link { margin-right: 0; }
}
@media (max-width: 800px) {
  .footer-invite { flex-direction: column; align-items: flex-start; gap: 28px; padding-top: 54px; }
  .footer-invite h2 { font-size: 52px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 35px 40px; }
  .footer-identity { grid-column: 1 / -1; }
  .site-footer .footer-brand .brand-name { font-size: 40px; }
  .footer-navigation { grid-template-columns: 1fr 1fr; gap: 21px 18px; }
  .footer-connect { padding-top: 0; }
  .footer-bottom { font-size: 9px; }
}
@media (max-width: 550px) {
  .footer-invite { flex-direction: column; align-items: flex-start; gap: 31px; padding: 45px 0 35px; }
  .footer-invite h2 { font-size: clamp(43px, 11.5vw, 59px); }
  .footer-invite p { font-size: 12px; margin-top: 20px; }
  .footer-invite p br { display: none; }
  .footer-event-link { width: 100%; }
  .footer-main { grid-template-columns: 1fr; gap: 30px; padding: 33px 0 30px; }
  .footer-identity { grid-column: auto; }
  .site-footer .footer-brand .brand-symbol { width: 58px; height: 58px; }
  .site-footer .footer-brand .brand-name { font-size: clamp(29px, 8vw, 39px); }
  .footer-identity > p { margin-top: 14px; font-size: 12px; }
  .footer-navigation { gap: 0 20px; padding: 0; }
  .footer-navigation a { padding: 10px 0; min-height: 40px; font-size: 13px; }
  .footer-social { padding-bottom: 17px; }
  .footer-social strong { font-size: 16px; }
  .footer-connect > p { margin-top: 0; font-size: 11px; }
  .footer-bottom { flex-wrap: wrap; gap: 5px 15px; padding: 18px 0 22px; font-size: 10px; }
  .footer-bottom > p:nth-child(2) { order: 3; width: 100%; }
  .footer-bottom > a { margin-left: auto; }
  .footer-orbit { top: -400px; right: -300px; }
}

/* Flexible columns prevent the brand and social link from pushing the footer out. */
.footer-main{grid-template-columns:minmax(0,1.45fr) minmax(0,.7fr) minmax(0,1.05fr)}
.footer-main>*,.footer-invite>*,.footer-social>span:nth-child(2){min-width:0}
.footer-social>span:nth-child(2){overflow-wrap:anywhere}
@media(min-width:801px) and (max-width:1100px){
  .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}
  .footer-identity{grid-column:1/-1}
  .footer-invite{gap:28px}
  .footer-invite h2{font-size:clamp(42px,5.5vw,60px)}
  .footer-event-link{flex-shrink:1}
}
@media(max-width:800px){
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:550px){
  .footer-main{grid-template-columns:minmax(0,1fr)}
  .site-footer .footer-brand{gap:10px}
  .site-footer .footer-brand .brand-symbol{width:clamp(42px,12vw,58px);height:auto}
  .site-footer .footer-brand .brand-name{font-size:clamp(24px,7vw,36px)}
  .footer-invite h2{font-size:clamp(36px,10.5vw,56px)}
  .footer-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-navigation a,.footer-bottom a{min-height:44px;display:inline-flex;align-items:center}
}

.footer-google{margin-top:0;min-height:64px}

.footer-bottom{flex-wrap:wrap}
.footer-credit a{color:var(--gold-light);text-decoration:underline;text-underline-offset:3px}
