/* Program cards follow the supplied tariff reference. Icons: Phosphor (MIT). */
.programs {
  padding: clamp(76px, 7.3vw, 126px) clamp(20px, 2.6vw, 48px) clamp(55px, 5vw, 90px);
  background: radial-gradient(ellipse at 50% 0%, rgba(230, 220, 255, .54), transparent 50%), linear-gradient(135deg, #f0faff 0%, #f8fbff 45%, #eff9ff 100%);
}
.pricing-heading { max-width: 1200px; margin: 0 auto 36px; text-align: center; }
.pricing-eyebrow { display: inline-flex; margin: 0 0 14px; padding: 8px 27px; border-radius: 99px; color: #252477; background: linear-gradient(105deg, #d9eaff, #fbe0fa); font-size: 11px; font-weight: 800; line-height: 1.4; text-transform: uppercase; letter-spacing: .16em; }
.programs .pricing-heading h2 { margin: 0; color: #080b26; font-size: clamp(36px, 3.8vw, 65px); line-height: 1.07; font-weight: 750; letter-spacing: -.055em; }
.pricing-lead { margin: 14px auto 0; color: #697aa8; font-size: clamp(16px, 1.45vw, 24px); line-height: 1.35; letter-spacing: -.025em; }
.pricing-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(10px, .85vw, 17px); max-width: 1760px; margin: 0 auto; }
.pricing-card { --pricing-accent: #395dff; --pricing-tint: #e4efff; --pricing-wash: #f1f7ff; min-width: 0; display: flex; flex-direction: column; padding: clamp(17px, 1.3vw, 25px) clamp(16px, 1.4vw, 27px) 16px; border: 1px solid rgba(255, 255, 255, .96); border-radius: 23px; background: linear-gradient(150deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .7)); box-shadow: 0 5px 25px rgba(91, 130, 187, .055), inset 0 0 0 1px rgba(224, 235, 252, .3); transition: transform .55s cubic-bezier(.22, .75, .2, 1), box-shadow .55s ease, border-color .55s ease; }
.pricing-amber { --pricing-accent: #e48b00; --pricing-tint: #fff0cf; --pricing-wash: #fff9ed; }
.pricing-card.motion-reveal { transition: opacity .85s var(--ease-out), transform 1.1s var(--ease-out), box-shadow .55s ease, border-color .55s ease; transition-delay: var(--reveal-delay, 0ms); }
.pricing-card.motion-reveal:hover { transition-delay: 0ms; }
.pricing-violet { --pricing-accent: #783cff; --pricing-tint: #ede4ff; --pricing-wash: #f7f0ff; }
.pricing-rose { --pricing-accent: #e831aa; --pricing-tint: #ffe1f5; --pricing-wash: #fff2fb; }
.pricing-cyan { --pricing-accent: #2875f6; --pricing-tint: #e1f4ff; --pricing-wash: #eefaff; }
.pricing-badge { align-self: center; display: block; max-width: 100%; margin: 0 0 12px; padding: 7px 13px; border-radius: 99px; background: linear-gradient(100deg, var(--pricing-tint), var(--pricing-wash)); color: #252665; font-size: clamp(8px, .66vw, 11px); font-weight: 750; line-height: 1.4; letter-spacing: .025em; text-align: center; text-transform: uppercase; white-space: nowrap; }
.pricing-icon-tile { align-self: center; width: clamp(68px, 5vw, 84px); height: clamp(68px, 5vw, 84px); display: grid; place-items: center; flex: 0 0 auto; margin: 0 0 18px; border-radius: 23px; color: var(--pricing-accent); background: linear-gradient(145deg, #fff 0%, var(--pricing-tint) 75%); box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px color-mix(in srgb, var(--pricing-accent), transparent 90%), 0 7px 17px color-mix(in srgb, var(--pricing-accent), transparent 94%); transition: transform .7s cubic-bezier(.22, .75, .2, 1), box-shadow .7s ease; }
.pricing-icon { display: inline-block; width: 24px; height: 24px; flex: 0 0 auto; background: currentColor; -webkit-mask: var(--pricing-icon) center / contain no-repeat; mask: var(--pricing-icon) center / contain no-repeat; }
.pricing-icon-tile > .pricing-icon { width: 47px; height: 47px; filter: drop-shadow(0 3px 3px color-mix(in srgb, var(--pricing-accent), transparent 82%)); }
.pricing-icon-graduation { --pricing-icon: url('/icons/graduation-cap-fill.svg'); }
.pricing-icon-users { --pricing-icon: url('/icons/users-three-fill.svg'); }
.pricing-icon-lightning { --pricing-icon: url('/icons/lightning-fill.svg'); }
.pricing-icon-crown { --pricing-icon: url('/icons/crown-fill.svg'); }
.pricing-icon-diamond { --pricing-icon: url('/icons/sketch-logo-fill.svg'); }
.pricing-icon-check { --pricing-icon: url('/icons/check-bold.svg'); }
.pricing-icon-calendar { --pricing-icon: url('/icons/calendar-check.svg'); }
.pricing-icon-monitor { --pricing-icon: url('/icons/monitor.svg'); }
.pricing-icon-arrow { --pricing-icon: url('/icons/arrow-right-bold.svg'); }
.pricing-icon-stack { --pricing-icon: url('/icons/stack.svg'); }
.pricing-icon-strategy { --pricing-icon: url('/icons/strategy.svg'); }
.pricing-icon-notebook { --pricing-icon: url('/icons/notebook.svg'); }
.pricing-description { min-height: 132px; }
.pricing-description h3 { margin: 0 0 9px; color: #080d35; font-size: clamp(22px, 1.65vw, 29px); font-weight: 750; line-height: 1.08; letter-spacing: -.045em; }
.pricing-description h3 a { display: inline-block; transition: color .25s ease; }
.pricing-description h3 a:hover { color: var(--pricing-accent); }
.pricing-description p { margin: 0; color: #6576a4; font-size: clamp(13px, 1.04vw, 17px); line-height: 1.26; letter-spacing: -.02em; }
.pricing-price { margin: 12px 0 18px; color: #0b1035; }
.pricing-price strong { display: block; font-size: clamp(29px, 2vw, 38px); font-weight: 750; letter-spacing: -.045em; line-height: 1.1; white-space: nowrap; }
.pricing-price small { display: block; margin-top: 3px; color: #4d6098; font-size: clamp(14px, 1.05vw, 17px); font-weight: 500; line-height: 1.3; }
.pricing-sale { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 8px; }
.pricing-sale del { color: #8190b4; font-size: clamp(12px, .95vw, 16px); white-space: nowrap; }
.pricing-sale > span { padding: 4px 7px; border-radius: 99px; color: #085d42; background: #c9fae3; font-size: 9px; line-height: 1.3; white-space: nowrap; }
.pricing-features { flex: 1 0 auto; list-style: none; margin: 0 0 16px; padding: 0; display: grid; align-content: start; gap: 7px; }
.pricing-features li { display: flex; align-items: flex-start; gap: 9px; color: #5a6e9f; font-size: clamp(12px, .95vw, 16px); line-height: 1.35; letter-spacing: -.025em; }
.pricing-check { display: grid; place-items: center; width: 24px; height: 24px; flex: 0 0 auto; margin-top: -2px; border-radius: 50%; background: var(--pricing-tint); color: var(--pricing-accent); }
.pricing-check > .pricing-icon { width: 16px; height: 16px; }
.pricing-meta { display: grid; gap: 5px; border-top: 1px solid #e6edf8; padding-top: 12px; margin-top: auto; margin-bottom: 15px; }
.pricing-meta p { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: #5a6e9f; font-size: clamp(12px, .95vw, 15px); line-height: 1.4; letter-spacing: -.015em; }
.pricing-meta .pricing-icon { width: 21px; height: 21px; color: #5261ff; }
.pricing-button { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 51px; margin: 0 -9px; padding: 12px 8px; border: 1px solid rgba(255, 255, 255, .56); border-radius: 15px; background: linear-gradient(110deg, #36c4ed 0%, #7775ff 36%, #cb60ee 64%, #ffabcc 82%, #ffe572 100%); background-size: 100% 100%; color: #fff; font-size: clamp(14px, 1.12vw, 19px); font-weight: 650; letter-spacing: -.035em; line-height: 1.25; text-shadow: 0 1px 5px rgba(25, 24, 93, .2); box-shadow: 0 6px 17px rgba(125, 111, 236, .12); transition: background-position .7s ease, box-shadow .5s ease, transform .45s cubic-bezier(.22, .75, .2, 1); }
.pricing-button > .pricing-icon { width: 20px; height: 20px; transition: transform .45s cubic-bezier(.22, .75, .2, 1); }
.pricing-button:hover { background-position: 100% 0; box-shadow: 0 9px 24px rgba(125, 111, 236, .24); transform: translateY(-2px); }
.pricing-button:hover > .pricing-icon { transform: translateX(4px); }
.pricing-button:active { transform: translateY(0) scale(.985); }
.pricing-details { align-self: center; margin-top: 11px; color: #7786a9; font-size: 10px; line-height: 1.4; text-underline-offset: 3px; transition: color .25s ease; }
.pricing-details:hover { color: #303e88; text-decoration: underline; }
.pricing-card a:focus-visible { outline: 2px solid #4c55da; outline-offset: 5px; border-radius: 5px; }
.pricing-benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 1680px; gap: 25px; margin: 36px auto 0; padding: 26px 0 0; border-top: 1px solid #e0e8f6; }
.pricing-benefits > div { display: flex; align-items: center; gap: 17px; min-width: 0; }
.pricing-benefits > div + div { border-left: 1px solid #dae4f6; padding-left: 25px; }
.pricing-benefit-icon { display: grid; place-items: center; flex: 0 0 auto; width: 58px; height: 58px; border-radius: 50%; background: #e2f1ff; color: #3c68e9; }
.pricing-benefit-icon > .pricing-icon { width: 29px; height: 29px; }
.pricing-benefit-violet { background: #ede7ff; color: #783cff; }
.pricing-benefit-cyan { background: #dff3ff; color: #2d8fe7; }
.pricing-benefit-amber { background: #fff3d9; color: #d8941c; }
.pricing-benefits p { margin: 0; color: #7787af; font-size: 13px; line-height: 1.4; }
.pricing-benefits strong { display: block; margin-bottom: 4px; color: #141d50; font-size: 14px; font-weight: 700; letter-spacing: -.015em; }
.pricing-benefits p > span { display: block; max-width: 250px; }
@media (hover: hover) and (pointer: fine) {
  .pricing-card:hover { border-color: color-mix(in srgb, var(--pricing-accent), #fff 78%); box-shadow: 0 22px 45px rgba(74, 86, 148, .11), 0 3px 10px rgba(74, 86, 148, .035); transform: translateY(-7px); }
  .pricing-card:hover .pricing-icon-tile { transform: translateY(-3px) rotate(-3deg); box-shadow: inset 0 1px 0 #fff, 0 12px 25px color-mix(in srgb, var(--pricing-accent), transparent 88%); }
}
@media (min-width: 1700px) {
  .pricing-description { min-height: 132px; }
}
@media (max-width: 1279px) {
  .pricing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; max-width: 1060px; }
  .pricing-card { padding: 23px 25px 17px; }
  .pricing-badge { font-size: 10px; }
  .pricing-description { min-height: 125px; }
  .pricing-description h3 { font-size: 27px; }
  .pricing-description p { font-size: 16px; }
  .pricing-price strong { font-size: 34px; }
  .pricing-price small { font-size: 16px; }
  .pricing-features li, .pricing-meta p { font-size: 14px; }
  .pricing-features { min-height: 138px; }
  .pricing-button { font-size: 17px; }
  .pricing-details { font-size: 11px; }
  .pricing-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 1060px; }
  .pricing-benefits > div:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 900px) {
  .pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 700px; }
  .pricing-grid > .pricing-card:last-child { grid-column: 1 / -1; width: calc(50% - 8.5px); justify-self: center; }
  .pricing-desktop-break { display: none; }
  .pricing-benefits { max-width: 700px; }
  .pricing-heading { margin-bottom: 30px; }
}
@media (max-width: 580px) {
  .programs { padding: 64px 18px 56px; }
  .pricing-heading { margin-bottom: 27px; }
  .pricing-eyebrow { padding: 8px 20px; font-size: 10px; }
  .programs .pricing-heading h2 { max-width: 360px; margin: 0 auto; font-size: clamp(32px, 9vw, 45px); line-height: 1.03; }
  .pricing-lead { max-width: 370px; margin-top: 14px; font-size: 16px; line-height: 1.4; }
  .pricing-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; max-width: 400px; }
  .pricing-grid > .pricing-card:last-child { width: 100%; grid-column: auto; }
  .pricing-card { padding: 24px 26px 20px; border-radius: 24px; }
  .pricing-badge { margin-bottom: 16px; font-size: 10px; padding: 7px 13px; }
  .pricing-icon-tile { width: 76px; height: 76px; margin-bottom: 22px; }
  .pricing-description { min-height: 0; }
  .pricing-description h3 { font-size: 30px; }
  .pricing-description p { font-size: 17px; min-height: 64px; }
  .pricing-price { margin: 19px 0 24px; }
  .pricing-price strong { font-size: 37px; }
  .pricing-features { min-height: 0; margin-bottom: 23px; gap: 11px; }
  .pricing-features li { font-size: 16px; gap: 11px; }
  .pricing-meta { gap: 8px; padding-top: 17px; margin-bottom: 19px; }
  .pricing-meta p { font-size: 15px; }
  .pricing-button { min-height: 55px; font-size: 18px; }
  .pricing-details { margin-top: 14px; font-size: 12px; }
  .pricing-benefits { grid-template-columns: minmax(0, 1fr); max-width: 400px; margin-top: 30px; padding-top: 27px; gap: 22px; }
  .pricing-benefits > div + div { border-left: 0; padding-left: 0; }
  .pricing-benefits p { font-size: 14px; }
  .pricing-benefits strong { font-size: 16px; }
  .pricing-benefit-icon { width: 52px; height: 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .pricing-card, .pricing-icon-tile, .pricing-button, .pricing-button > .pricing-icon { transition: none; }
  .pricing-card:hover, .pricing-card:hover .pricing-icon-tile, .pricing-button:hover, .pricing-button:hover > .pricing-icon { transform: none; }
}
