/* Photographic duration guide, using the shared winter palette and frost artwork. */
.duration-overview-heading { margin-bottom: 42px; }
.duration-overview-heading h2 { width: min(940px,96%); margin-inline: auto; }
.duration-overview-heading h2 img { display: block; width: 100%; height: clamp(70px,8vw,112px); object-fit: cover; object-position: center; }
.duration-overview-heading > p { margin-top: 13px; }
.duration-summary-grid { gap: 34px; }
.duration-summary-card.duration-photo-card { position: relative; isolation: isolate; display: flex; flex-direction: column; padding: 0; min-height: 0; border: 1px solid #d7efff8c; border-radius: 19px; background: #041725; box-shadow: 0 12px 32px #020c196b,0 0 15px #b6e6ff21; }
.duration-photo-card::after { display: none; }
.duration-card-number { position: absolute; top: -27px; left: 50%; transform: translateX(-50%); z-index: 4; width: 54px; height: 54px; display: grid; place-items: center; border: 1.5px solid #e9bd73; border-radius: 50%; color: #f3d599; background: #061b2d; box-shadow: 0 0 13px #e9bd7345,inset 0 0 10px #e9bd7317; font: 500 36px/1 'Cormorant Garamond',Georgia,serif; }
.duration-card-photo { position: relative; overflow: hidden; border-radius: 18px 18px 0 0; }
.duration-card-photo img { display: block; width: 100%; height: 195px; object-fit: cover; object-position: center 35%; }
.duration-card-photo::after { content: ''; position: absolute; inset: auto 0 0; height: 30px; background: linear-gradient(transparent,#041725); pointer-events: none; }
.duration-card-copy { flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 14px 25px 24px; background: linear-gradient(145deg,#061c2b,#031422); border-radius: 0 0 18px 18px; }
.duration-card-title { display: flex; justify-content: center; align-items: flex-start; gap: 13px; min-height: 66px; }
.duration-card-title > .line-icon { width: 29px; height: 29px; margin-top: 4px; color: #e9bd73; flex-shrink: 0; stroke-width: 1.5; }
.duration-card-title h3 { margin: 0; color: #f5e7c8; font: 500 31px/1.05 'Cormorant Garamond',Georgia,serif; }
.duration-card-title h3 span { display: block; font-size: 25px; margin-top: 3px; }
.duration-card-copy > p { margin: 15px 0 20px; color: #e5ebf1; font-size: 15px; line-height: 1.55; }
.duration-card-divider { width: 88%; display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: auto; color: #e9bd73; }
.duration-card-divider > span { height: 1px; flex: 1; background: linear-gradient(90deg,transparent,#e9bd73); }
.duration-card-divider > span:last-child { transform: rotate(180deg); }
.duration-card-divider .line-icon { width: 28px; height: 28px; stroke-width: 1.3; }
.duration-card-frost { position: absolute; inset: -4px; z-index: 3; border: 44px solid transparent; border-image: url('magic-feature-frost-frame.webp') 270 / 44px / 0 stretch; pointer-events: none; }
@media(prefers-reduced-motion:no-preference) {
 .duration-photo-card { transition: transform .35s ease,box-shadow .35s ease; }
 .duration-card-photo img { transition: transform .5s ease; }
 @media(hover:hover) {
  .duration-summary-grid .duration-photo-card:hover { transform: translateY(-5px); box-shadow: 0 17px 40px #020c197a,0 0 23px #c7eeff4d; }
  .duration-photo-card:hover .duration-card-photo img { transform: scale(1.035); }
 }
}
@media(min-width:768px) and (max-width:1199px) {
 .duration-summary-grid { grid-template-columns: repeat(4,minmax(0,1fr)); max-width: none; gap: 40px 25px; }
 .duration-photo-card { grid-column: span 2; }
 .duration-photo-card:last-child { grid-column: 2 / span 2; }
 .duration-card-photo img { height: 210px; }
}
@media(max-width:767px) {
 .duration-overview-heading h2 { width: 100%; }
 .duration-overview-heading { margin-bottom: 46px; }
 .duration-summary-grid { gap: 43px; }
 .duration-card-photo img { height: 210px; }
 .duration-card-copy { padding: 17px 24px 24px; }
 .duration-card-title h3 { font-size: 30px; }
 .duration-card-copy > p { font-size: 15px; }
 .duration-card-frost { border-width: 36px; border-image-width: 36px; }
}
#program-duration-overview > .catalog-chapter-content { position: relative; z-index: 1; }
#program-duration-overview::before,#program-duration-overview::after { content: ''; position: absolute; inset: 0; pointer-events: none; }
#program-duration-overview::before { opacity: .2; background: radial-gradient(circle 1px at 42px 65px,#e9f6ff 70%,transparent),radial-gradient(circle 1.5px at 187px 178px,#d9eeff 65%,transparent),radial-gradient(circle 1px at 307px 290px,#fff 60%,transparent); background-size: 410px 360px; }
#program-duration-overview::after { opacity: .25; background: radial-gradient(ellipse at 0 85%,#e5a95130,transparent 32%),radial-gradient(ellipse at 100% 85%,#e5a95130,transparent 32%); }
@media(prefers-reduced-motion:no-preference) {
 #program-duration-overview::before { animation: duration-snow 32s linear infinite; }
 #program-duration-overview::after { animation: duration-lanterns 5s ease-in-out infinite alternate; }
}
@keyframes duration-snow { to { background-position: 65px 360px; } }
@keyframes duration-lanterns { to { opacity: .45; } }
@media(prefers-reduced-motion:reduce) { #program-duration-overview::before,#program-duration-overview::after { animation: none; } }
@media(min-width:1200px) and (min-height:700px) {
 .programs-page[data-program-transitions] #program-duration-overview { align-items: flex-start; }
 #program-duration-overview > .catalog-chapter-content { transform-origin: top center; }
 #program-duration-overview .duration-overview { padding-top: 0; }
 #program-duration-overview .duration-overview-heading h2 img { height: 90px; }
 #program-duration-overview .duration-card-photo img { height: 210px; }
}
