body[data-page="contact"] {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
}

.contact-page:not([hidden]) {
  display: grid;
  flex: 1 0 auto;
}

.contact-page {
  --contact-gutter: clamp(28px, 6.6vw, 144px);
  --contact-top: clamp(44px, 7vh, 78px);
  --contact-bottom: clamp(38px, 6vh, 66px);
  background: #fff;
  color: #102c55;
  font-size: 14px;
}
.contact-shell {
  display: grid;
  grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  container-type: inline-size;
  overflow: clip;
  background: #0051ed;
}
.contact-info,.contact-form-panel {
  min-width: 0;
  padding: var(--contact-top) var(--contact-gutter) var(--contact-bottom);
}
.contact-info {
  position: relative;
  isolation: isolate;
  color: #fff;
}
.contact-info:after{content:'';position:absolute;width:340px;height:340px;border:1px solid #ffffff1c;border-radius:50%;bottom:-190px;left:-115px;box-shadow:0 0 0 55px #ffffff06,0 0 0 110px #ffffff04;z-index:-1}
.contact-info-content {
  position: relative;
  top: 0;
  transition: top .72s cubic-bezier(.22,.61,.36,1), transform .72s cubic-bezier(.22,.61,.36,1);
}
.contact-headline { position: relative; }
.contact-intro-open {
  position: absolute;
  inset: 0;
  background: transparent;
  color: #fff;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.contact-intro-open[hidden] { display: none; }
.is-contact-intro .contact-shell { cursor: pointer; }
.is-contact-intro .contact-info-content {
  top: 50%;
  transform: translate(27vw, -50%);
  transform: translate(27cqw, -50%);
}
.contact-form-panel {
  position: relative;
  background: #fff;
  transition: transform .72s cubic-bezier(.22,.61,.36,1);
}
.is-contact-intro .contact-form-panel {
  visibility: hidden;
  transform: translateX(100%);
}
.contact-eyebrow{font-size:11px;letter-spacing:.16em;line-height:1.5;margin:0 0 14px;color:#0051ed}
.contact-info .contact-eyebrow{color:#bdd8ff}
.contact-info h2{font-size:clamp(36px,3.9vw,72px);font-weight:600;line-height:1.05;letter-spacing:-.045em;margin:0 0 22px}
.contact-lead{max-width:47ch;color:#e4efff;line-height:1.65;font-size:clamp(14px,1vw,17px);margin:0 0 26px}
.contact-channels{display:grid}
.contact-channel{display:flex;gap:14px;align-items:center;color:#fff;background:transparent;padding:13px 0;border:0;border-top:1px solid #ffffff29;text-decoration:none;text-align:left;width:100%;font:inherit;border-radius:0}
.contact-channel[href],button.contact-channel{cursor:pointer}
.contact-channel:not([href]):not(button){opacity:.6}
.contact-channel:is([href],button):hover .contact-link-arrow{transform:translate(2px,-2px)}
.contact-channel>span:nth-child(2){min-width:0}
.contact-channel small{display:block;font-size:12px;font-weight:400;margin-bottom:5px;color:#ccdeff}
.contact-channel strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.contact-channel-icon{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border-radius:11px;border:1px solid #ffffff3b;font-size:21px;font-weight:400;background:#ffffff0d}
.contact-channel-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.contact-channel-icon svg use{stroke-width:0}
.contact-link-arrow{margin-left:auto;font-size:20px;transition:transform .2s}
.contact-socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:19px}
.contact-socials a{padding:8px 11px;border-radius:30px;border:1px solid #ffffff38;font-size:11px;color:#fff;text-decoration:none}
.contact-socials a:not([href]){opacity:.55}
.contact-socials a[href]:hover{background:#ffffff15}
.contact-signature{font-size:12px;color:#d2e3ff;line-height:1.6;margin:27px 0 0}
.contact-form-panel h1{font-size:clamp(34px,3.1vw,56px);font-weight:600;line-height:1.12;letter-spacing:-.035em;margin:0 0 13px}
.contact-form-intro{font-size:clamp(14px,1vw,17px);line-height:1.65;color:#526780;max-width:55ch;margin:0 0 29px}
.contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px clamp(14px,1.8vw,26px)}
.contact-fields label{display:block;font-size:14px;font-weight:600;min-width:0}
.contact-fields label>span{color:#0051ed}
.contact-fields label>small{font-size:10px;color:#8895aa;margin-left:5px;font-weight:400}
.contact-fields :is(input,textarea){display:block;box-sizing:border-box;width:100%;min-height:48px;padding:12px 14px;border:1px solid #dce4f3;border-radius:6px;background:#f9fbff;font:inherit;font-weight:400;color:#142d52;margin-top:7px;outline-offset:3px}
.contact-fields textarea{min-height:166px;resize:vertical;line-height:1.7}
.contact-fields :is(input,textarea)::placeholder{color:#62758f}
.contact-fields :is(input,textarea):focus-visible{outline:2px solid #0051ed;border-color:#0051ed;background:#fff}
.contact-field-wide{grid-column:1/-1}
.contact-send-note{font-size:12px;color:#526780;line-height:1.65;margin:12px 0 20px}
.contact-submit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:17px;border-top:1px solid #e7edf8}
.contact-submit-row>span{font-size:13px;color:#526780}
#contact-submit{display:flex;align-items:center;justify-content:space-between;gap:16px;width:42%;min-width:min(100%,14rem);font:inherit;font-size:14px;background:#0051ed;color:#fff;padding:14px 18px;border:0;border-radius:6px;min-height:47px;cursor:pointer}
#contact-submit:hover{background:#003ec1}
#contact-submit>span{font-size:20px;line-height:1}
#contact-feedback{font-size:12px;line-height:1.8;color:#0051ed;margin:0;overflow-wrap:anywhere}
#contact-feedback:not(:empty){margin-top:15px}
.contact-page :is(a,button):focus-visible{outline:2px solid currentColor;outline-offset:5px}

@media (max-width: 1024px) {
  .contact-page { --contact-gutter: clamp(24px, 5vw, 56px); }
  #contact-submit { min-width: min(100%, 10rem); }
}

@media (max-width: 740px) {
  .contact-page { --contact-top: 36px; --contact-bottom: 36px; }
  .contact-shell { grid-template-columns: minmax(0, 1fr); }
  .is-contact-intro .contact-info { display: grid; align-items: center; }
  .is-contact-intro .contact-info-content { top: 0; transform: none; }
  .is-contact-intro .contact-form-panel { display: none; }
  .contact-form-panel { padding-block: 36px 70px; }
  .is-contact-revealed .contact-form-panel { animation: contact-form-in .55s ease both; }
  .contact-form-intro { margin-bottom: 23px; }
}

@keyframes contact-form-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .contact-info-content, .contact-form-panel { transition: none; }
  .is-contact-revealed .contact-form-panel { animation: none; }
}

@media (max-width: 479px) {
  .contact-fields { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .contact-submit-row > span { display: none; }
  #contact-submit { width: 100%; }
}
