
/* Lovish Math Tutoring — V104 unified motion/effects layer */
:root{
  --lovish-navy:#17365f;
  --lovish-rose:#bd5a70;
  --lovish-rose-soft:#f8e8ed;
  --lovish-gold:#dca00b;
  --lovish-green:#42b875;
  --lovish-ivory:#fbf8f3;
  --lovish-shadow:0 14px 36px rgba(23,54,95,.10);
}

@keyframes lovish-page-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes lovish-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes lovish-shimmer{0%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
@keyframes lovish-pulse-soft{0%,100%{box-shadow:0 0 0 0 rgba(189,90,112,0)}50%{box-shadow:0 0 0 7px rgba(189,90,112,.08)}}

html{scroll-behavior:smooth}
body{animation:lovish-page-in .48s cubic-bezier(.22,.61,.36,1) both}

/* Shared entrance motion. JS adds .sitefx-visible as elements enter the viewport. */
.sitefx-reveal{opacity:0;transform:translateY(18px);transition:opacity .62s ease,transform .62s cubic-bezier(.22,.61,.36,1)}
.sitefx-reveal.sitefx-visible{opacity:1;transform:none}
.sitefx-delay-1{transition-delay:.06s}.sitefx-delay-2{transition-delay:.12s}.sitefx-delay-3{transition-delay:.18s}.sitefx-delay-4{transition-delay:.24s}

/* Consistent card interaction across public pages. */
.course-card,.directory-card,.resource-card,.about-card,.contact-method,.feature,.marketing-card,.exam-card,.package-card,.pathway-note,.course-section,.unit{
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background-color .28s ease;
  will-change:transform;
}
.course-card:hover,.directory-card:hover,.resource-card:hover,.about-card:hover,.contact-method:hover,.feature:hover,.marketing-card:hover,.exam-card:hover,.package-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--lovish-shadow);
}

/* Unified icon motion without changing the established icon artwork. */
.course-icon,.course-icon-svg,.directory-icon,.resource-icon,.contact-method-icon,.feature-icon,.card-icon,.marketing-card .card-icon{
  transition:transform .3s ease,box-shadow .3s ease;
}
.course-card:hover .course-icon,.course-card:hover .course-icon-svg,.directory-card:hover .directory-icon,.resource-card:hover .resource-icon,.contact-method:hover .contact-method-icon,.feature:hover .feature-icon,.marketing-card:hover .card-icon{
  transform:translateY(-3px) scale(1.045);
}

/* Consistent button lift + restrained sheen. */
.btn,.resource-btn,.pricing-choose-link,.site-offer-v73-cta,.top-cta,button[type="submit"],a.btn-primary,a.btn-outline{
  transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,border-color .22s ease,color .22s ease;
}
.btn:hover,.resource-btn:hover,.pricing-choose-link:hover,.site-offer-v73-cta:hover,.top-cta:hover,button[type="submit"]:hover,a.btn-primary:hover,a.btn-outline:hover{
  transform:translateY(-2px);
  box-shadow:0 9px 22px rgba(23,54,95,.12);
}

/* Gentle emphasis for the primary offer without making the page feel animated. */
.marketing-card.is-featured,.marketing-card.popular,.package-card.is-featured{animation:lovish-pulse-soft 3.6s ease-in-out infinite}

/* Navigation and text affordances. */
.navlinks a,.mini-nav a,.back-link,.aside-back{transition:color .2s ease,transform .2s ease,opacity .2s ease}
.navlinks a:hover,.mini-nav a:hover,.back-link:hover,.aside-back:hover{transform:translateX(2px)}
.card-arrow{transition:transform .22s ease}
.course-card:hover .card-arrow,.directory-card:hover .card-arrow{transform:translateX(4px)}

/* Pricing cards: keep prices aligned while allowing compact payment formulas. */
.marketing-card .marketing-price,.marketing-card .marketing-price-row{transition:transform .25s ease}
.marketing-card:hover .marketing-price-row{transform:translateY(-1px)}

/* Subtle decorative sweep for filled primary CTAs. */
.btn-primary,.site-offer-v73-cta,.marketing-card .btn-primary,.marketing-card .pricing-choose-link{
  position:relative;overflow:hidden;isolation:isolate;
}
.btn-primary::after,.site-offer-v73-cta::after,.marketing-card .btn-primary::after,.marketing-card .pricing-choose-link::after{
  content:"";position:absolute;inset:0;width:34%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent);transform:translateX(-130%);pointer-events:none;z-index:-1;
}
.btn-primary:hover::after,.site-offer-v73-cta:hover::after,.marketing-card .btn-primary:hover::after,.marketing-card .pricing-choose-link:hover::after{animation:lovish-shimmer .7s ease}

/* Scrollbar and selection remain restrained and on-brand. */
::selection{background:rgba(189,90,112,.18);color:var(--lovish-navy)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body{animation:none}
  .sitefx-reveal{opacity:1;transform:none;transition:none}
  .course-card,.directory-card,.resource-card,.about-card,.contact-method,.feature,.marketing-card,.exam-card,.package-card,.pathway-note,.course-section,.unit,
  .btn,.resource-btn,.pricing-choose-link,.site-offer-v73-cta,.top-cta,button[type="submit"],a.btn-primary,a.btn-outline{transition:none!important;animation:none!important}
}
