.moment-banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 570px;
  display: flex;
  align-items: center;
  padding: 60px;
  border-radius: 32px;
  background: #211c17;
  color: #fff;
  z-index: 1;
}
.banner-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: -2; }
.moment-banner::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #17140fed 0%, #17140fa6 37%, #17140f18 70%); }
.banner-copy { width: 56%; max-width: 590px; }
.banner-label { display: inline-flex; align-items: center; gap: 9px; padding: 8px 13px; border: 1px solid #ffffff66; border-radius: 99px; font-size: .875rem; font-weight: 600; line-height: 1.4; }
.banner-label svg { width: 18px; height: 18px; }
.banner-copy h2 { margin-top: 25px; font-size: clamp(2rem, 3vw, 2.75rem); font-weight: 450; line-height: 1.22; letter-spacing: -.05em; text-wrap: balance; }
.banner-description { margin-top: 23px; max-width: 410px; font-size: 1.125rem; line-height: 1.5; color: #f5f2ed; }
.banner-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 54px; max-width: 100%; padding: 13px 21px; margin-top: 29px; border: 0; border-radius: 99px; background: #fff; color: var(--ink); font-size: 1rem; font-weight: 600; line-height: 1.4; text-align: left; transition: background .2s, transform .2s; }
.banner-button > span { font-size: 1.5rem; line-height: 1; color: #c32c16; }
.banner-button > .connection-toggle-label { font: inherit; color: inherit; text-wrap: balance; }
.connection-toggle[hidden] { display: none; }
.connection-arrow { flex-shrink: 0; transition: transform .35s; }
.connection-open .connection-arrow { transform: rotate(180deg); }
.banner-button:hover { transform: translateY(-2px); background: #fff0e9; }
.banner-button:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
.closing-section { isolation: isolate; }
.connection-panel { display: grid; grid-template-rows: 1fr; margin: -26px 24px 0; transition: grid-template-rows .4s cubic-bezier(.22,.61,.36,1), visibility 0s; }
.connection-panel-clip { min-height: 0; overflow: hidden; }
.connection-card { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 56px 36px 30px; border: 1px solid #e1dfd4; border-top: 0; border-radius: 0 0 26px 26px; background: #efede5; transition: transform .4s cubic-bezier(.22,.61,.36,1), opacity .3s; }
.connection-kicker { display: block; font-size: .6875rem; font-weight: 600; letter-spacing: .1em; color: #696a60; margin-bottom: 8px; }
.connection-card h3 { font-family: Gilroy, Arial, sans-serif; font-size: 1.5rem; line-height: 1.25; font-weight: 600; letter-spacing: -.02em; }
.connection-ready:not(.connection-open) .connection-panel { grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .4s cubic-bezier(.22,.61,.36,1), visibility 0s .4s; }
.connection-ready:not(.connection-open) .connection-card { opacity: 0; transform: translateY(-40px); }
@media (max-width: 1100px) {
  .moment-banner { min-height: 530px; padding: 42px; }
  .banner-copy { width: 58%; }
  .banner-copy h2 { font-size: 2rem; }
  .banner-description { font-size: 1.0625rem; }
}
@media (max-width: 800px) {
  .moment-banner { min-height: 650px; align-items: end; padding: 28px 26px 30px; border-radius: 25px; }
  .banner-photo { height: 460px; object-position: right center; mask-image: linear-gradient(#000 65%, transparent 100%); }
  .moment-banner::after { background: linear-gradient(180deg, #17140f05 10%, #17140f12 25%, #17140fba 46%, #17140ff2 72%); }
  .banner-copy { width: 100%; max-width: 580px; }
  .banner-label { font-size: .8125rem; padding: 7px 11px; }
  .banner-copy h2 { margin-top: 22px; font-size: clamp(1.6rem, 5.5vw, 2.2rem); }
  .banner-description { margin-top: 18px; font-size: 1rem; max-width: 410px; }
  .banner-button { margin-top: 23px; gap: 18px; font-size: .9375rem; min-height: 52px; }
  .connection-panel { margin-inline: 12px; }
  .connection-card { flex-direction: column; align-items: stretch; padding: 48px 23px 24px; gap: 20px; border-radius: 0 0 22px 22px; }
  .connection-card h3 { font-size: 1.25rem; }
  .connection-card .business-actions { flex-wrap: wrap; }
  .connection-card .business-actions a { flex: 1; white-space: nowrap; }
}
@media (max-width: 370px) {
  .moment-banner { padding: 24px 21px; }
  .banner-copy h2 { font-size: 1.375rem; }
  .banner-button { padding-inline: 17px; }
  .connection-card { padding-inline: 18px; }
  .connection-card .business-actions { flex-direction: column; }
}
