/* Internship route: scoped styles only. */

.page-internship .site-header { background: linear-gradient(180deg, rgba(5, 16, 35, .95), rgba(5, 16, 35, .76)); }
.internship-hero { isolation: isolate; }
.internship-hero::after { top: -38vw; right: -14vw; background: radial-gradient(circle, rgba(79, 225, 255, .28), rgba(137, 106, 255, .16) 42%, transparent 68%); }
.internship-hero .page-hero-layout { gap: clamp(36px, 6vw, 96px); }
.internship-hero .page-title { max-width: 760px; }
.internship-hero .page-title span { color: #a3f2ff; }

.internship-hero-notes { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 28px 0 0; padding: 0; }
.internship-hero-notes li { display: inline-flex; align-items: center; gap: 7px; color: #a9c4e3; list-style: none; font-size: .67rem; font-weight: 700; }
.internship-hero-notes i { color: var(--cyan); font-size: .65rem; }

.internship-hero-visual { position: relative; min-height: 385px; overflow: hidden; border: 1px solid rgba(160, 229, 255, .26); border-radius: 26px; background: radial-gradient(circle at 55% 42%, rgba(43, 191, 239, .18), transparent 27%), linear-gradient(135deg, rgba(22, 78, 132, .72), rgba(17, 24, 73, .9)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .11), 0 31px 68px rgba(0, 6, 29, .35); }
.internship-hero-visual::before { position: absolute; inset: 17px; border: 1px solid rgba(174, 232, 255, .12); border-radius: 18px; content: ""; pointer-events: none; }
.internship-visual-grid { position: absolute; inset: 0; opacity: .8; background-image: linear-gradient(rgba(153, 219, 255, .1) 1px, transparent 1px), linear-gradient(90deg, rgba(153, 219, 255, .1) 1px, transparent 1px); background-size: 30px 30px; mask-image: radial-gradient(circle at center, black 0, rgba(0, 0, 0, .6) 45%, transparent 78%); }
.internship-orbit { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(133, 229, 255, .26); border-radius: 50%; transform: translate(-50%, -50%); }
.internship-orbit--one { width: min(63%, 260px); aspect-ratio: 1; box-shadow: 0 0 0 28px rgba(90, 181, 255, .045), 0 0 0 57px rgba(90, 181, 255, .025); animation: internship-spin 24s linear infinite; }
.internship-orbit--two { width: min(83%, 345px); aspect-ratio: .69; border-color: rgba(174, 136, 255, .22); transform: translate(-50%, -50%) rotate(-31deg); animation: internship-spin-reverse 32s linear infinite; }
.internship-link { position: absolute; top: 50%; left: 50%; z-index: 1; height: 1px; transform-origin: left center; background: linear-gradient(90deg, rgba(95, 225, 255, .78), transparent); }
.internship-link--one { width: 112px; transform: rotate(-136deg); }.internship-link--two { width: 120px; transform: rotate(-20deg); }.internship-link--three { width: 112px; transform: rotate(108deg); }
.internship-core { position: absolute; z-index: 2; top: 50%; left: 50%; display: grid; width: 96px; aspect-ratio: 1; place-items: center; border: 1px solid rgba(209, 249, 255, .63); border-radius: 50%; color: #ecfcff; background: radial-gradient(circle at 34% 28%, #278fce, #143164 70%); box-shadow: 0 0 0 11px rgba(89, 220, 255, .1), 0 0 32px rgba(46, 219, 255, .36); transform: translate(-50%, -50%); }
.internship-core i { position: absolute; top: 18px; color: #a6f4ff; font-size: 1.35rem; }.internship-core small { margin-top: 25px; color: #e6faff; font-family: var(--font-mono); font-size: .48rem; letter-spacing: .12em; line-height: 1.35; text-align: center; }
.internship-skill { position: absolute; z-index: 3; display: grid; width: 71px; height: 71px; place-content: center; gap: 4px; border: 1px solid rgba(175, 230, 255, .35); border-radius: 16px; color: #c8f8ff; background: rgba(15, 48, 91, .74); box-shadow: 0 12px 25px rgba(0, 8, 34, .25), inset 0 1px rgba(255, 255, 255, .1); backdrop-filter: blur(8px); }
.internship-skill i { margin-inline: auto; color: var(--cyan); font-size: .95rem; }.internship-skill span { color: #d8ebff; font-family: var(--font-mono); font-size: .5rem; letter-spacing: .05em; text-transform: uppercase; }
.internship-skill--code { top: 18%; left: 13%; animation: internship-float 6.2s ease-in-out infinite; }.internship-skill--ai { top: 16%; right: 13%; animation: internship-float 5.5s .8s ease-in-out infinite reverse; }.internship-skill--data { bottom: 15%; right: 16%; animation: internship-float 6.6s 1.2s ease-in-out infinite; }.internship-skill--flow { bottom: 14%; left: 17%; animation: internship-float 5.8s .3s ease-in-out infinite reverse; }
.internship-skill--ai i { color: #c0a9ff; }.internship-skill--data i { color: #bffb8b; }.internship-skill--flow i { color: #fdcb87; }
.internship-visual-label { position: absolute; z-index: 4; right: 27px; bottom: 22px; display: inline-flex; align-items: center; gap: 7px; margin: 0; color: #a8c8e7; font-family: var(--font-mono); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.internship-live-dot { width: 6px; height: 6px; border-radius: 50%; background: #abf76c; box-shadow: 0 0 0 5px rgba(171, 247, 108, .11), 0 0 13px #abf76c; animation: internship-pulse 2.2s infinite; }

.internship-intro { position: relative; padding: 58px 0; border-bottom: 1px solid #cddfed; background: linear-gradient(145deg, #fafdff, #e9f3ff); }
.internship-intro-grid { display: grid; grid-template-columns: 1.4fr repeat(3, minmax(0, .8fr)); gap: 15px; align-items: stretch; }
.internship-intro-copy { display: flex; flex-direction: column; justify-content: center; padding-right: 16px; }.internship-intro-copy .page-eyebrow { margin-bottom: 12px; }.internship-intro-copy h2 { max-width: 450px; margin: 0; color: #163863; font-size: clamp(1.38rem, 2.4vw, 2.1rem); line-height: 1.18; }
.internship-intro-card { min-height: 170px; padding: 22px 20px; border: 1px solid #c6ddee; border-radius: 16px; background: rgba(255, 255, 255, .82); box-shadow: 0 11px 24px rgba(29, 70, 125, .06); transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.internship-intro-card:hover { z-index: 1; border-color: #83cced; box-shadow: 0 20px 35px rgba(25, 72, 133, .12); transform: translateY(-5px); }
.internship-intro-icon { display: grid; width: 37px; height: 37px; margin-bottom: 21px; place-items: center; border-radius: 10px; color: #296fb9; background: #e2f3ff; font-size: .82rem; }.internship-intro-card:nth-child(3) .internship-intro-icon { color: #6958bc; background: #eeeaff; }.internship-intro-card:nth-child(4) .internship-intro-icon { color: #378a6b; background: #e4f8ea; }
.internship-intro-card h3 { margin: 0 0 7px; color: #183d6b; font-size: .83rem; }.internship-intro-card p { margin: 0; color: #6d819e; font-size: .66rem; line-height: 1.62; }

.internship-programs-section { background: #f4f8ff; }
.internship-filter { margin-bottom: 28px; }
.internship-program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.internship-card { position: relative; display: flex; min-height: 523px; flex-direction: column; padding: 25px; overflow: hidden; border: 1px solid #c4dceb; border-radius: 18px; color: #183b66; background: rgba(255, 255, 255, .83); box-shadow: 0 12px 27px rgba(25, 68, 124, .07); transition: border-color .28s ease, box-shadow .28s ease, transform .28s ease, opacity .22s ease; }
.internship-card::before { position: absolute; top: -95px; right: -90px; width: 200px; aspect-ratio: 1; border-radius: 50%; content: ""; opacity: .78; background: radial-gradient(circle, rgba(68, 202, 250, .18), transparent 66%); transition: transform .45s ease; }.internship-card > * { position: relative; z-index: 1; }
.internship-card:hover { z-index: 1; border-color: #75c9ed; box-shadow: 0 23px 43px rgba(25, 70, 129, .14); transform: translateY(-7px); }.internship-card:hover::before { transform: scale(1.22); }
.internship-card--feature { border-color: #a8c6ef; background: linear-gradient(145deg, #effaff, #f6f5ff); }.internship-card--feature::before { background: radial-gradient(circle, rgba(147, 108, 255, .19), transparent 66%); }
.internship-card-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 22px; }.internship-card-icon { display: grid; width: 45px; height: 45px; place-items: center; border: 1px solid #b9def2; border-radius: 12px; color: #267cc3; background: #e3f5ff; font-size: 1rem; transition: color .25s ease, background .25s ease, transform .25s ease; }.internship-card:hover .internship-card-icon { color: #113459; background: var(--cyan); transform: rotate(-7deg) scale(1.06); }
.internship-card--feature .internship-card-icon { color: #6756c4; border-color: #d6cffc; background: #efecff; }.internship-card--feature:hover .internship-card-icon { color: #fff; background: #7967d8; }.internship-card-number { color: #91a6c2; font-family: var(--font-mono); font-size: .6rem; letter-spacing: .08em; }
.internship-category { margin: 0 0 8px; color: #4d85bf; font-family: var(--font-mono); font-size: .55rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }.internship-card h3 { max-width: 305px; margin: 0 0 11px; color: #173b6a; font-size: 1.16rem; line-height: 1.24; }.internship-summary { min-height: 53px; margin: 0 0 19px; color: #647c9b; font-size: .7rem; line-height: 1.66; }
.internship-details { display: grid; gap: 9px; margin: 0 0 20px; padding: 15px 0; border-top: 1px solid #d9e6f1; border-bottom: 1px solid #d9e6f1; }.internship-details div { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; }.internship-details dt { color: #5a85b2; font-family: var(--font-mono); font-size: .51rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }.internship-details dd { margin: 0; color: #536e90; font-size: .615rem; line-height: 1.48; }
.internship-apply { width: 100%; min-height: 44px; margin-top: auto; padding-inline: 14px; font-size: .69rem; }.internship-card .button-primary { color: #061528; }.internship-card[hidden] { display: none; }

.internship-next-step .page-callout { background: linear-gradient(118deg, #0c315e, #1b2765 58%, #1f3471); }.internship-next-step .page-eyebrow { color: #a7efff; }
.page-internship .modal-dialog { width: min(700px, 100%); }.page-internship .modal-dialog .form-full { grid-column: 1 / -1; }.page-internship .modal-dialog .form-submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; margin-top: 22px; }.page-internship .modal-dialog .form-feedback { margin: 0; }

@keyframes internship-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes internship-spin-reverse { to { transform: translate(-50%, -50%) rotate(-391deg); } }
@keyframes internship-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes internship-pulse { 50% { opacity: .45; transform: scale(.78); } }

@media (max-width: 1120px) { .internship-intro-grid { grid-template-columns: minmax(0, 1fr) repeat(3, minmax(0, 1fr)); }.internship-program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.internship-card { min-height: 500px; } }
@media (max-width: 960px) { .internship-hero-visual { width: min(620px, 100%); }.internship-intro-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.internship-intro-copy { grid-column: 1 / -1; padding-right: 0; }.internship-intro-copy h2 { max-width: 620px; }.internship-intro-card { min-height: 155px; } }
@media (max-width: 700px) { .internship-hero-visual { min-height: 325px; }.internship-card { min-height: 0; }.internship-summary { min-height: 0; }.internship-intro { padding: 42px 0; }.internship-intro-grid { grid-template-columns: minmax(0, 1fr); }.internship-intro-copy { grid-column: auto; }.internship-intro-card { min-height: 0; }.internship-intro-icon { margin-bottom: 16px; } }
@media (max-width: 560px) { .internship-hero-notes { gap: 8px 14px; }.internship-hero-notes li { font-size: .6rem; }.internship-hero-visual { min-height: 290px; }.internship-orbit--one { width: 183px; }.internship-orbit--two { width: 240px; }.internship-core { width: 76px; }.internship-core i { top: 14px; font-size: 1.1rem; }.internship-core small { margin-top: 20px; font-size: .41rem; }.internship-skill { width: 56px; height: 56px; border-radius: 12px; }.internship-skill i { font-size: .76rem; }.internship-skill span { font-size: .42rem; }.internship-skill--code { top: 14%; left: 8%; }.internship-skill--ai { top: 13%; right: 8%; }.internship-skill--data { right: 10%; bottom: 13%; }.internship-skill--flow { bottom: 12%; left: 10%; }.internship-link--one { width: 87px; }.internship-link--two { width: 86px; }.internship-link--three { width: 83px; }.internship-visual-label { right: 17px; bottom: 15px; font-size: .48rem; }.internship-program-grid { grid-template-columns: minmax(0, 1fr); }.internship-card { padding: 22px; }.internship-details div { grid-template-columns: 76px minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .internship-orbit--one, .internship-orbit--two, .internship-skill, .internship-live-dot { animation: none; } }
