/* Campus moments, using the site's established type, colors and card geometry. */
.culture-heading h2>span{color:var(--purple)}
.culture-intro{margin-top:20px;font:400 var(--type-body-size)/var(--type-body-line) var(--font-body);color:var(--text-secondary)}
.culture-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.culture-filter{min-height:44px;padding:10px 20px;border:1px solid var(--border-subtle);border-radius:99px;background:var(--white);color:var(--ink);font:600 16px/24px var(--font-body);cursor:pointer}
.culture-filter:hover{background:var(--purple-soft)}
.culture-filter.is-active{background:var(--purple);border-color:var(--purple);color:var(--white)}
.culture-filter:focus-visible,.culture-card:focus-visible{outline:3px solid var(--purple);outline-offset:4px}
.culture-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:18px}
.culture-card{position:relative;display:block;width:100%;height:410px;padding:0;border:0;border-radius:24px;overflow:hidden;background:var(--purple-soft);color:var(--white);text-align:left;cursor:zoom-in;isolation:isolate}
.culture-card[hidden]{display:none}
.culture-card:nth-child(even){height:350px;margin-top:36px}
.culture-card:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#181521e6);z-index:0;pointer-events:none}
.culture-card>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}
.culture-card:hover>img{transform:scale(1.035)}
.culture-tag{position:absolute;top:16px;left:16px;padding:6px 12px;border-radius:99px;background:#ffffffed;color:var(--ink);font:600 14px/20px var(--font-body);z-index:1}
.culture-caption{position:absolute;bottom:24px;left:22px;right:22px;z-index:1}
.culture-caption strong{display:block;font:600 20px/28px var(--font-body);letter-spacing:-.015em}
.culture-caption>span{display:block;margin-top:6px;font:400 14px/22px var(--font-body);color:#f2edf8}
.culture-grid.is-filtered{grid-template-columns:repeat(2,minmax(0,1fr));max-width:780px}
.culture-grid.is-filtered .culture-card{height:360px;margin-top:0}
.culture-dialog{width:min(850px,calc(100% - 40px));padding:0;background:var(--white)}
.culture-dialog>img{display:block;width:100%;max-height:65dvh;object-fit:contain;background:#181521}
.culture-dialog .dialog-close{position:absolute;z-index:2;top:16px;right:16px;background:var(--white);color:var(--purple)}
.culture-dialog-caption{padding:24px 28px}
.culture-dialog-caption h2{font:600 24px/32px var(--font-heading);letter-spacing:-.02em}
.culture-dialog-caption p{font:400 16px/26px var(--font-body);color:var(--text-secondary);margin-top:8px}

/* The footer invitation now offers three clear ways to speak to the team. */
.final-cta.contact-cta{padding:48px;border-radius:32px;min-height:0}
.final-cta.contact-cta>.contact-heading{max-width:none;padding:0;text-align:center}
.contact-cta .contact-heading h2{max-width:none;font:600 40px/48px var(--font-heading);letter-spacing:-.025em;margin-top:16px}
.contact-cta .contact-heading>p:not(.eyebrow){max-width:none;margin-top:18px;font:400 16px/26px var(--font-body);color:var(--white)}
.final-cta.contact-cta>.contact-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:none;padding:0;margin-top:36px}
.contact-option{display:flex;flex-direction:column;align-items:flex-start;padding:28px;background:var(--white);border-radius:24px;min-width:0;color:var(--ink)}
.contact-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--purple-soft);color:var(--purple);margin-bottom:20px}
.contact-icon .icon{width:24px;height:24px}
.contact-icon-cyan{background:#EAF6FC;color:#086F9F}
.contact-option h3{font:600 20px/28px var(--font-body);letter-spacing:-.015em}
.contact-cta .contact-option>p:not(.eyebrow){max-width:none;font:400 16px/26px var(--font-body);color:var(--text-secondary);margin-top:8px}
.contact-detail{display:flex;flex-direction:column;gap:8px;margin:24px 0;min-width:0}
.contact-detail>a,.contact-detail>strong{font:600 24px/32px var(--font-heading);letter-spacing:-.025em;color:var(--ink)}
.contact-detail>.contact-alternate,.contact-detail>span{font:400 14px/22px var(--font-body);letter-spacing:0;color:var(--text-secondary)}
.contact-detail>a:hover{text-decoration:underline;text-underline-offset:4px}
.contact-cta .contact-option>.button{width:100%;margin-top:auto;padding:12px 18px;white-space:normal;text-align:center}
.contact-cta .contact-option>.button:focus-visible{outline-color:var(--purple)}
.contact-address{display:flex;align-items:flex-start;justify-content:center;gap:10px;max-width:820px;margin:28px auto 0;font:400 14px/22px var(--font-body);color:var(--white);text-align:center}
.contact-address>.icon{width:20px;height:20px;flex:none}
@media(max-width:1100px){.culture-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.culture-card,.culture-card:nth-child(even){height:360px;margin-top:0}.final-cta.contact-cta{padding:36px}.contact-cta .contact-heading h2{font-size:32px;line-height:40px}.contact-option{padding:22px}.contact-detail>a,.contact-detail>strong{font-size:20px;line-height:28px}.contact-cta .contact-option>.button{padding-inline:12px}}
@media(max-width:800px){.final-cta.contact-cta>.contact-options{grid-template-columns:1fr}.contact-option{display:grid;grid-template-columns:48px minmax(0,1fr);gap:0 18px}.contact-icon{grid-column:1;grid-row:1 / 3;margin:0}.contact-option h3,.contact-option>p{grid-column:2}.contact-detail,.contact-option>.button{grid-column:1 / -1}.contact-detail{margin:24px 0}.contact-cta .contact-option>.button{margin-top:0}}
@media(max-width:600px){.culture-grid,.culture-grid.is-filtered{grid-template-columns:1fr}.culture-card,.culture-card:nth-child(even),.culture-grid.is-filtered .culture-card{height:340px}.culture-filters{gap:8px}.culture-filter{padding:10px 14px;font-size:14px;line-height:22px}.culture-heading h2{font-size:28px;line-height:36px}.culture-caption{left:22px;right:22px}.culture-dialog{width:calc(100% - 20px)}.culture-dialog-caption{padding:22px}.final-cta.contact-cta{padding:28px 20px;border-radius:24px}.contact-cta .contact-heading h2{font-size:28px;line-height:36px}.contact-option{padding:24px 20px;border-radius:20px}.final-cta.contact-cta>.contact-options{gap:14px;margin-top:28px}.contact-address{text-align:left;justify-content:flex-start}.contact-detail>a,.contact-detail>strong{font-size:22px;line-height:30px}}
@media(prefers-reduced-motion:reduce){.culture-card>img{transition:none}.culture-card:hover>img{transform:none}}

.mobile-dock[hidden]{display:none}
