/* Wealth Power Institute v53 — layout polish pass
   - keep all interior content below the fixed v52 header
   - round panel/card corners consistently
   - remove the homepage video-blocking event panel while preserving its content
   - keep Upcoming Events carousel copy fully visible */
:root{
  --wpi53-header:88px;
  --wpi53-radius:20px;
}

/* The v52 header is fixed, so every normal interior page must begin below it.
   The homepage hero intentionally lives directly beneath the header and the
   Student Board already carries its own top offset. */
body > main{margin-top:var(--wpi53-header)!important}
body > main.student-board{margin-top:0!important}
body > main:has(.hero-video){margin-top:0!important}

/* Calculator had its eyebrow hidden beneath the gold header divider. */
body > main .hero:not(:has(.hero-video)){
  padding-top:clamp(70px,7vw,112px)!important;
}

/* Page families whose first visual block was designed for the old header.
   Keep their own internal padding while moving the whole page below v52 nav. */
.programs-page,.services-page,.service-detail-page,.events-page,.event-detail-page,
.people-page,.people-detail,.admission-page,.account-page,.shop-page,.live-page,
.info-page,.about-page,.what-we-offer-page,.contact-page,.faq-page,.gallery-page,
.event-venue-page,.policy-page,.privacy-page,.terms-page,.refund-policy-page,
.shipping-policy-page,.legal-page{
  scroll-margin-top:calc(var(--wpi53-header) + 14px)!important;
}

/* Rounded panel language across the entire site. */
main article,
main aside,
main form,
main fieldset,
.card,
.event-card,
.ticket-card,
.program-selector,
.program-visual,
.syllabus-jump,
.course-identity,
.syllabus-intro,
.management-cycle,
.reality-check,
.essential-questions,
.syllabus-pair > section,
.practical-case > div,
.course-delivery > div,
.course-schedule,
.course-materials,
.enrollment-panel,
.certificate-panel,
.follow-up-panel,
.ongoing-support,
.support-model,
.course-closing,
.service-card,
.service-focus-list article,
.events-directory-grid article,
.event-agenda-list article,
.event-venue > div,
.people-directory-card,
.people-value-grid article,
.corporate-team-grid article,
.membership-grid article,
.contact-grid article,
.info-feature-grid article,
.gallery-grid figure,
.product-image,
.product-card,
.cart-drawer,
.checkout-card,
.account-auth form,
.account-profile > div,
.account-actions a,
.live-access-card,
.live-admin-card,
.lesson-hero,
.lesson-tabs,
.objective-card,
.vocabulary,
.education-note,
.assignment-list,
.reflection,
.quiz-options button,
.lesson-notes,
.resource-pack > div,
.implementation-plan,
.advisor-questions,
.class-roadmap,
.deep-dive,
.lesson-toolkit,
.mistake-list,
.completion-standard,
.wpi-v52-event-grid article{
  border-radius:var(--wpi53-radius)!important;
}

/* Keep media clipped to the same round geometry. */
.service-card,
.events-directory-grid article,
.people-directory-card,
.corporate-team-grid article,
.gallery-grid figure,
.product-image,
.program-visual,
.event-slide,
.countdown-event-image,
.event-video-frame{
  overflow:hidden!important;
}

/* Forms and controls should visually belong to the rounded panels. */
input,select,textarea,
.conversion-form input,.conversion-form select,.conversion-form textarea,
.account-auth input,
.admin-login-form input,
.event-registration input,.event-registration select{
  border-radius:13px!important;
}

button,.button,.button-gold,.button-dark,.header-cta,.shop-cart-button,
.checkout-button,.account-submit,.resource-actions button{
  border-radius:14px!important;
}

/* Homepage: preserve all Next Experience words/details but remove the large
   purple box that blocks the video. */
.hero .event-card{
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  padding:24px 10px!important;
}
.hero .event-card strong,
.hero .event-card p,
.hero .event-card dt,
.hero .event-card dd{
  text-shadow:0 2px 12px rgba(7,2,15,.82)!important;
}
.hero .event-card dl div{
  border-color:rgba(225,186,120,.36)!important;
}

/* Upcoming Events carousel: recovered sizing was built for a much larger
   canvas and let long event titles/copy drop below the visible card. Keep the
   media card compact and reserve a safe copy area on every slide. */
.upcoming-events{
  overflow:visible!important;
  padding-top:82px!important;
  padding-bottom:96px!important;
}
.upcoming-head{
  margin-bottom:32px!important;
  align-items:center!important;
}
.upcoming-head h2{
  font-size:clamp(42px,4.8vw,66px)!important;
  line-height:.95!important;
  letter-spacing:-.045em!important;
}
.upcoming-head a{
  color:var(--wpi-gold-soft)!important;
  font-size:14px!important;
  font-weight:850!important;
}
.event-controls button{
  width:52px!important;
  height:52px!important;
  border-radius:16px!important;
}
.event-slide{
  min-height:540px!important;
  height:auto!important;
  border-radius:24px!important;
  border:1px solid rgba(195,137,60,.42)!important;
  box-shadow:0 24px 70px rgba(7,2,15,.22)!important;
}
.event-slide > img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  filter:saturate(.92) contrast(1.02)!important;
}
.event-slide-shade{
  background:linear-gradient(90deg,rgba(15,3,31,.94) 0%,rgba(20,8,43,.78) 42%,rgba(20,8,43,.34) 70%,rgba(20,8,43,.10) 100%)!important;
}
.event-slide-copy{
  left:clamp(30px,4.2vw,64px)!important;
  right:auto!important;
  bottom:clamp(30px,4vw,50px)!important;
  width:min(690px,calc(100% - 96px))!important;
  max-width:690px!important;
  padding:28px 30px 30px!important;
  background:rgba(29,12,60,.82)!important;
  border:1px solid rgba(195,137,60,.36)!important;
  border-radius:22px!important;
  -webkit-backdrop-filter:blur(10px)!important;
  backdrop-filter:blur(10px)!important;
  box-shadow:0 18px 50px rgba(5,1,12,.24)!important;
  overflow:visible!important;
}
.event-slide-copy p{
  margin:0 0 12px!important;
  color:var(--wpi-gold-soft)!important;
  font-size:10px!important;
  line-height:1.35!important;
  letter-spacing:.17em!important;
  text-transform:uppercase!important;
  font-weight:900!important;
}
.event-slide-copy h3{
  margin:0!important;
  max-width:100%!important;
  color:#fff!important;
  font-size:clamp(36px,3.6vw,56px)!important;
  font-weight:780!important;
  line-height:1.02!important;
  letter-spacing:-.045em!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.event-slide-copy > span{
  display:block!important;
  max-width:620px!important;
  margin-top:16px!important;
  color:var(--wpi-muted)!important;
  font-size:15px!important;
  line-height:1.55!important;
  overflow:visible!important;
}
.event-slide-copy > a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  min-width:210px!important;
  min-height:50px!important;
  margin-top:22px!important;
  padding:0 20px!important;
  border:1px solid var(--wpi-gold)!important;
  border-radius:14px!important;
  background:var(--wpi-gold)!important;
  color:var(--wpi-ink)!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.075em!important;
  text-transform:uppercase!important;
  box-shadow:none!important;
}
.event-slide-copy > a:hover{
  background:var(--wpi-gold-hover)!important;
  transform:translateY(-1px)!important;
}
.event-dots{
  bottom:18px!important;
  right:22px!important;
}
.event-dots button{
  width:10px!important;
  height:10px!important;
  border-color:var(--wpi-gold)!important;
}

/* Avoid hard square blocks where recovered CSS still paints a background. */
.wpi52-panel,
.course-progress,
.module-list article,
.module-content,
.event-countdown,
.countdown-event-image,
.event-video-frame,
.live-community-message,
.admin-editor,
.event-admin-grid fieldset,
.people-admin-grid fieldset,
.membership-admin-grid fieldset,
.services-admin-grid fieldset,
.corporate-admin-grid fieldset,
.shop-admin-grid fieldset{
  border-radius:var(--wpi53-radius)!important;
}

/* Lesson navigation polish requested in the hosted-site review.
   Keep the header gold divider from visually cutting through an open Programs
   dropdown, remove the redundant first-lesson Back to curriculum action, and
   make the bottom lesson navigation surface white. */
#wpi-v52-header .wpi-menu{
  top:88px!important;
  z-index:100002!important;
  background:var(--wpi-panel)!important;
  isolation:isolate!important;
}
.lesson-next{
  background:#fff!important;
  color:var(--wpi-ink)!important;
  border-top:1px solid rgba(23,10,37,.12)!important;
  border-bottom:1px solid rgba(23,10,37,.12)!important;
}
.lesson-next .text-link{
  color:var(--wpi-ink)!important;
  border-color:rgba(23,10,37,.28)!important;
}
.lesson-next .text-link[href*="/programs#"]{
  display:none!important;
}
.lesson-next .button,
.lesson-next .button-gold{
  background:var(--wpi-gold)!important;
  color:var(--wpi-ink)!important;
  border-color:var(--wpi-gold)!important;
}

@media(max-width:850px){
  :root{--wpi53-header:76px;--wpi53-radius:17px}
  body > main{margin-top:var(--wpi53-header)!important}
  body > main.student-board{margin-top:0!important}
  body > main:has(.hero-video){margin-top:0!important}
  body > main .hero:not(:has(.hero-video)){padding-top:60px!important}
  .hero .event-card{padding:18px 0!important}

  #wpi-v52-header .wpi-menu{top:76px!important}
  .lesson-next{padding-inline:22px!important}

  .upcoming-events{padding-top:62px!important;padding-bottom:72px!important}
  .upcoming-head{align-items:flex-end!important;gap:16px!important}
  .upcoming-head h2{font-size:clamp(36px,10vw,48px)!important}
  .event-slide{min-height:500px!important;border-radius:18px!important}
  .event-slide-copy{
    left:18px!important;
    bottom:24px!important;
    width:calc(100% - 36px)!important;
    max-width:none!important;
    padding:22px!important;
    border-radius:18px!important;
  }
  .event-slide-copy h3{
    font-size:clamp(32px,9.5vw,45px)!important;
    line-height:1.03!important;
  }
  .event-slide-copy > span{
    margin-top:13px!important;
    font-size:14px!important;
    line-height:1.48!important;
  }
  .event-slide-copy > a{
    min-width:0!important;
    width:100%!important;
    margin-top:17px!important;
  }
  .event-dots{display:none!important}
}
