/* Contact-only presentation. Keep CMS contact images and destinations intact. */
.sms-contact #contact-main { padding-block: clamp(28px, 4vw, 64px); }
.sms-contact .contact-layout { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.35fr); gap: clamp(24px, 3vw, 40px); align-items: start; }
.sms-contact .contact-intro { position: relative; isolation: isolate; overflow: hidden; padding: clamp(24px, 3.4vw, 44px); border-radius: 24px; background: linear-gradient(145deg, #15374a, #4150c0); color: #ececf3; }
.sms-contact .contact-intro::before { content: ''; position: absolute; z-index: -1; width: 340px; height: 340px; border: 1px solid #ffffff18; border-radius: 50%; right: -200px; top: -160px; box-shadow: 0 0 0 40px #ffffff06, 0 0 0 80px #ffffff04; pointer-events: none; }
.sms-contact .contact-symbol { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: #ffffff16; color: #ead8b3; font-size: 26px; margin-bottom: 30px; }
.sms-contact .contact-eyebrow { font-size: .73rem; font-weight: 800; letter-spacing: .16em; line-height: 1.6; color: #4150c0; margin: 0 0 14px; }
.sms-contact .contact-intro .contact-eyebrow { color: #e6d4af; }
.sms-contact .contact-intro h2 { font-size: clamp(1.8rem, 1.35rem + 1.6vw, 2.65rem); color: white; font-weight: 650; letter-spacing: -.025em; margin-bottom: 20px; }
.sms-contact .contact-intro p:not(.contact-eyebrow) { font-size: 1rem; line-height: 1.8; color: #e7e8f0; }
.sms-contact .contact-direct { border-top: 1px solid #ffffff28; padding-top: 24px; margin-top: 30px; }
.sms-contact .contact-direct h3 { font-size: 1rem; font-weight: 700; color: white; margin-bottom: 16px; }
.sms-contact .contact-direct a { display: flex; gap: 14px; align-items: center; color: white; padding: 10px 0; min-height: 48px; overflow-wrap: anywhere; }
.sms-contact .contact-direct a > span:first-child { font-size: 19px; color: #e0e1eb; }
.sms-contact .contact-direct small { display: block; font-size: .8rem; color: #d4d5e4; }
.sms-contact .contact-intro a:hover { color: #f1ddb6; }
.sms-contact .contact-campus-link { display: flex; justify-content: space-between; gap: 12px; color: white; font-weight: 700; font-size: .9rem; border-top: 1px solid #ffffff28; padding-top: 22px; margin-top: 22px; min-height: 48px; }
.sms-contact .sms-contact-panel { min-width: 0; padding: clamp(22px, 3vw, 40px); border-radius: 24px; box-shadow: 0 16px 48px #15374a07; }
.sms-contact #contact-form-title { font-weight: 700; font-size: clamp(1.55rem, 1.3rem + .7vw, 2rem); margin-bottom: 10px; }
.sms-contact .contact-required { color: #646782; font-size: .85rem; margin-bottom: 28px; }
.sms-contact .contact-form .row { margin-inline: -10px; }
.sms-contact .contact-form .row > div { padding-inline: 10px; }
.sms-contact .contact-form .form-group { margin-bottom: 22px; min-width: 0; }
.sms-contact .contact-form label { display: block; color: #213f50; font-size: .92rem; font-weight: 650; line-height: 1.5; margin-bottom: 8px; }
.sms-contact .contact-required-mark { color: #9c4037; }
.sms-contact .contact-form .form-control { width: 100%; border: 1px solid #d3d4dd !important; border-radius: 10px; background: #fcfcfc; box-shadow: none; min-height: 50px; font-size: 16px; transition: border-color .15s, box-shadow .15s; }
.sms-contact .contact-form .form-control:hover { border-color: #9fa2ba !important; }
.sms-contact .contact-form .form-control:focus { background: white; border-color: #4150c0 !important; box-shadow: 0 0 0 3px #4150c017; outline: 2px solid transparent; outline-offset: 2px; }
.sms-contact .contact-form textarea.form-control { min-height: 170px; resize: vertical; }
.sms-contact .contact-help { display: block; color: #6b6f89; font-size: .8rem; line-height: 1.6; margin: 8px 0 0; }
.sms-contact .contact-verification { min-width: 0; background: #f4f5f8; border: 1px solid #e6e6ed; border-radius: 14px; padding: 20px; margin-top: 4px; }
.sms-contact .contact-verification legend { float: left; width: 100%; font-size: .95rem; color: #374081; font-weight: 700; padding: 0; margin-bottom: 4px; }
.sms-contact .contact-verification > p { clear: both; margin: 0 0 16px; }
.sms-contact .contact-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.sms-contact .contact-check-grid .form-group { display: flex; flex-direction: column; margin: 0; }
.sms-contact .contact-check-grid input { margin-top: auto; }
.sms-contact .contact-check-grid label { font-size: .82rem; }
.sms-contact .contact-submit-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-top: 28px; }
.sms-contact .contact-submit-row > a { text-decoration: underline; text-underline-offset: 4px; font-size: .85rem; }
.sms-contact .contact-form .contact-submit { min-height: 52px; min-width: 148px; display: inline-flex; justify-content: center; align-items: center; gap: 30px; padding: 14px 28px; border-radius: 10px; border: 1px solid #15374a; background: #15374a; color: white !important; font-weight: 700; }
.sms-contact .contact-form .contact-submit:hover { background: #4150c0; border-color: #4150c0; }
.sms-contact .contact-form .alert { padding: 16px; border-radius: 10px; font-size: .95rem; }
.sms-contact .contact-campuses { padding-top: clamp(48px, 7vw, 90px); scroll-margin-top: 110px; }
.sms-contact .contact-directory-heading { max-width: 700px; margin-bottom: 30px; }
.sms-contact .contact-directory-heading h2 { font-weight: 650; margin-bottom: 12px; }
.sms-contact .contact-directory-heading > p:last-child { color: #6b6f89; }
/* The CMS uses a layout table for contact artwork: reflow the original cells. */
.sms-contact .contact-campuses .sms-page-content table:has(img) { display: block; width: 100% !important; overflow: visible; background: transparent !important; border: 0 !important; margin: 0; }
.sms-contact .contact-campuses .sms-page-content table:has(img) colgroup { display: none; }
.sms-contact .contact-campuses .sms-page-content table:has(img) tbody { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sms-contact .contact-campuses .sms-page-content table:has(img) tr { display: contents; }
.sms-contact .contact-campuses .sms-page-content table:has(img) td { display: block; min-width: 0; width: auto !important; padding: 0 !important; border: 0 !important; background: transparent; }
.sms-contact .contact-campuses .sms-page-content table:has(img) td:not(:has(img)):not(:has(a)) { display: none; }
.sms-contact .contact-campuses .sms-page-content img { display: block; width: 100%; height: auto !important; border-radius: 18px; }
.sms-contact .contact-campuses .sms-page-content a:has(img) { display: block; border-radius: 18px; transition: transform .2s, box-shadow .2s; }
.sms-contact .modified-stamp { margin-top: 30px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .sms-contact .contact-campuses a:has(img):hover { transform: translateY(-3px); box-shadow: 0 12px 28px #15374a14; } }
@media (max-width: 991px) {
  .sms-contact .contact-layout { grid-template-columns: 1fr; }
  .sms-contact .contact-intro { padding: 28px; }
  .sms-contact .contact-symbol { display: none; }
  .sms-contact .contact-direct { display: flex; flex-wrap: wrap; gap: 10px 32px; margin-top: 22px; padding-top: 20px; }
  .sms-contact .contact-direct h3 { width: 100%; margin: 0; }
  .sms-contact .contact-campus-link { margin-top: 14px; padding-top: 18px; }
  .sms-contact .contact-campuses .sms-page-content table:has(img) tbody { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 575px) {
  .sms-contact #contact-main > .container { padding-inline: 18px; }
  .sms-contact .contact-intro, .sms-contact .sms-contact-panel { padding: 24px 20px; border-radius: 18px; }
  .sms-contact .contact-intro h2 { font-size: 1.85rem; }
  .sms-contact .contact-check-grid { grid-template-columns: 1fr; }
  .sms-contact .contact-verification { padding: 16px; }
  .sms-contact .contact-submit-row { flex-direction: column-reverse; align-items: stretch; text-align: center; }
  .sms-contact .contact-form .contact-submit { width: 100%; }
  .sms-contact .contact-campuses .sms-page-content table:has(img) tbody { grid-template-columns: 1fr; max-width: 400px; margin-inline: auto; }
}
@media (prefers-reduced-motion: reduce) { .sms-contact .contact-form .form-control, .sms-contact .contact-campuses a:has(img) { transition: none; } }
