/* Shared on every page: entrance and scroll animations, whole-card links, hover polish (js/site/motion.js). */

/* Reveal-on-scroll: motion.js adds .rv-pre to below-the-fold elements, then .rv-in as they arrive. */
.rv-pre { opacity: 0; transform: translateY(28px); }
.rv-pre.rv-in { opacity: 1; transform: none; transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }

/* Page-load entrance for each page's hero copy, line by line. */
@keyframes vc-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.hero-in > *, .rvp-head > *, .jr-head > *, .facts-wrap { animation: vc-rise .9s cubic-bezier(.2,.7,.2,1) both; }
.hero-in > :nth-child(2), .rvp-head > :nth-child(2), .jr-head > :nth-child(2) { animation-delay: .12s; }
.hero-in > :nth-child(3), .rvp-head > :nth-child(3), .jr-head > :nth-child(3) { animation-delay: .24s; }
.hero-in > :nth-child(4), .rvp-head > :nth-child(4), .jr-head > :nth-child(4) { animation-delay: .36s; }
.hero-in > :nth-child(n+5), .rvp-head > :nth-child(n+5), .jr-head > :nth-child(n+5), .facts-wrap { animation-delay: .48s; }

/* Whole-card links */
.is-card-link { cursor: pointer; }

/* Photo zoom on hover for cards with a cover image */
.pk-slide .ph, .card-img .ph, .rel-img .ph, .jr-card-img .ph, .story-img .ph, .exp-img .ph, .hl .ph, .mega-img .ph, .offer-img .ph {
    transition: transform .9s cubic-bezier(.2,.7,.2,1);
}
.pk:hover .pk-slide .ph, .card:hover .card-img .ph, .rel:hover .rel-img .ph, .jr-card:hover .jr-card-img .ph,
.story:hover .story-img .ph, .exp:hover .exp-img .ph, .hl:hover .ph, .mega-card:hover .mega-img .ph, .offer:hover .offer-img .ph {
    transform: scale(1.06);
}
.card-img, .rel-img, .jr-card-img, .story-img, .exp-img, .mega-img, .offer-img { overflow: hidden; }

/* Lift on hover for cards that did not have it */
.rel, .jr-card, .story, .exp, .rvp-card { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.rel:hover, .jr-card:hover, .rvp-card:hover { transform: translateY(-4px); box-shadow: 0 22px 50px rgba(11,27,51,.12); }
.story:hover, .exp:hover { transform: translateY(-4px); }
.story h3, .rel-body strong, .jr-card h3, .card-t, .card-title, .pk h3 { transition: color .25s; }
.story:hover h3, .rel:hover .rel-body strong, .jr-card:hover h3, .card:hover .card-t, .card:hover .card-title a, .pk:hover h3 { color: #1E5AA0; }

/* Buttons: a little press feedback everywhere */
.pk-view, .pk-cust, .btn-details, .btn-custom, .pk-made-btn, .made-cta, .offer-btn, .show-explore, .hdr-cta, .search-go, .cform-go, .rb, .btn-gold, .pk-all a {
    transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.pk-view:active, .pk-cust:active, .btn-details:active, .btn-custom:active, .pk-made-btn:active, .made-cta:active, .offer-btn:active,
.show-explore:active, .hdr-cta:active, .search-go:active, .cform-go:active, .rb:active, .btn-gold:active, .pk-all a:active { transform: scale(.98); }

@media (prefers-reduced-motion: reduce) {
    .rv-pre { opacity: 1; transform: none; }
    .hero-in > *, .rvp-head > *, .jr-head > *, .facts-wrap { animation: none; }
    .pk:hover .pk-slide .ph, .card:hover .card-img .ph, .rel:hover .rel-img .ph, .jr-card:hover .jr-card-img .ph,
    .story:hover .story-img .ph, .exp:hover .exp-img .ph, .hl:hover .ph, .mega-card:hover .mega-img .ph, .offer:hover .offer-img .ph { transform: none; }
}
