/* =========================================================
   V8 — precise layer, wave, rhythm and shared-component fixes.
   ========================================================= */
:root{--v8-blue:#4d5dfa;--v8-green:#29a71a;--v8-soft:#f7f7f7;--v8-ink:#111318}
html,body,button,input,textarea,select,a{font-family:'Nunito','Nunito Local',sans-serif!important}

/* One header on every page. */
.site-header{height:80px!important}
.header-inner{height:80px!important;min-height:80px!important;padding:0 18px!important;gap:20px!important}
.site-header .brand img{width:108px!important;height:49px!important;object-fit:contain!important}
.desktop-nav{gap:24px!important}
.desktop-nav a{position:relative!important;color:#111!important;opacity:.72!important}
.desktop-nav a::after{content:''!important;display:block!important;width:0!important;height:3px!important;margin-top:5px!important;border-radius:999px!important;transition:width .22s ease!important}
.desktop-nav a:nth-child(odd)::after{background:var(--v8-blue)!important}
.desktop-nav a:nth-child(even)::after{background:var(--v8-green)!important}
.desktop-nav a:hover,.desktop-nav a[aria-current=page]{opacity:1!important;color:#111!important}
.desktop-nav a:hover::after,.desktop-nav a[aria-current=page]::after{width:100%!important}
.accessibility-toggle,.mobile-accessibility-toggle{display:none!important}

/* HERO: people are deliberately lower; the full-width soft wave masks every straight crop. */
.ref-hero{min-height:700px!important;overflow:hidden!important}
.ref-hero::after{content:''!important;position:absolute!important;left:0!important;right:0!important;bottom:-1px!important;z-index:8!important;width:100%!important;height:178px!important;border-radius:0!important;background:transparent url('../assets/images/brand/hero-divider-v8.svg') center bottom/100% 100% no-repeat!important;box-shadow:none!important;pointer-events:none!important}
.ref-hero__inner{min-height:700px!important}
.ref-hero__copy{padding-bottom:68px!important}
.hero-people{z-index:4!important;overflow:visible!important}
.hero-people__stage{overflow:visible!important}
.hero-people__halo{bottom:-92px!important;right:-2%!important;width:min(650px,112%)!important}
.hero-person{transform-origin:center bottom!important}
.hero-person--one{--person-width:102%;--person-right:-4%;--person-bottom:-112px}
.hero-person--two{--person-width:99%;--person-right:-2%;--person-bottom:-120px}
.hero-person--three{--person-width:70%;--person-right:12%;--person-bottom:-122px}
.hero-person--four{--person-width:91%;--person-right:1%;--person-bottom:-124px}
/* Controls follow a shallow arc and are centred under the photo column. */
.hero-people__dots--edge{position:absolute!important;left:75%!important;right:auto!important;bottom:24px!important;z-index:10!important;width:154px!important;height:32px!important;display:block!important;transform:translateX(-50%) rotate(-3.2deg)!important}
.hero-people__dots--edge button{position:absolute;bottom:0;width:10px;height:10px;padding:0;border:0;border-radius:999px;background:#8f96a8;cursor:pointer;transition:width .3s ease,background .3s ease,transform .3s ease}
.hero-people__dots--edge button:nth-child(1){left:0;transform:translateY(-2px)}
.hero-people__dots--edge button:nth-child(2){left:40px;transform:translateY(3px)}
.hero-people__dots--edge button:nth-child(3){left:82px;transform:translateY(5px)}
.hero-people__dots--edge button:nth-child(4){left:124px;transform:translateY(1px)}
.hero-people__dots--edge button.is-active{width:30px;background:#252a38}
.hero-people__dots--edge button:focus-visible{outline:3px solid rgba(77,93,250,.35);outline-offset:4px}
.ref-actions{justify-content:center!important;align-items:center!important;gap:20px!important;max-width:600px!important}
.ref-button--primary-cta{min-width:220px!important;padding:16px 28px!important;font-size:16px!important;box-shadow:0 0 0 7px rgba(77,93,250,.10),0 15px 34px rgba(77,93,250,.42)!important}
.ref-button--primary-cta:hover{transform:translateY(-3px) scale(1.025)!important;box-shadow:0 0 0 9px rgba(77,93,250,.13),0 20px 42px rgba(77,93,250,.48)!important}

/* Crisp, continuous, full-width waves. No raster background and no square corners. */
.wave-band{--band-color:var(--v8-blue);--wave-top:var(--v8-soft);--wave-bottom:var(--v8-soft);position:relative!important;isolation:isolate!important;margin:0!important;padding-top:164px!important;padding-bottom:164px!important;overflow:hidden!important;background:var(--band-color)!important}
.wave-band--blue{--band-color:var(--v8-blue);--wave-top:var(--v8-soft);--wave-bottom:var(--v8-soft)}
.wave-band--green{--band-color:var(--v8-green);--wave-top:var(--v8-soft);--wave-bottom:#fff}
.wave-band::before,.wave-band::after{content:''!important;display:block!important;position:absolute!important;left:-2px!important;right:auto!important;z-index:1!important;width:calc(100% + 4px)!important;height:154px!important;background:var(--wave-top)!important;background-image:none!important;-webkit-mask:url('../assets/images/brand/wave-edge-v8.svg') center/100% 100% no-repeat!important;mask:url('../assets/images/brand/wave-edge-v8.svg') center/100% 100% no-repeat!important;pointer-events:none!important}
.wave-band::before{top:-1px!important;transform:none!important}
.wave-band::after{bottom:-1px!important;background:var(--wave-bottom)!important;transform:rotate(180deg)!important}
.wave-band>.container{position:relative!important;z-index:2!important;padding-top:6px!important;padding-bottom:6px!important}
.wave-band .ref-heading__ghost{color:rgba(255,255,255,.72)!important}

/* Program navigation uses the whole white rail. */
.ref-program-tabs{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important;padding:8px!important}
.ref-program-tab{display:grid!important;min-width:0!important;min-height:58px!important;place-items:center!important;padding:10px 12px!important;font-size:clamp(13px,1.08vw,15px)!important;line-height:1.15!important;text-align:center!important}
.ref-program-stage__caption{background:linear-gradient(135deg,rgba(255,255,255,.31),rgba(255,255,255,.13))!important;border-color:rgba(255,255,255,.48)!important;backdrop-filter:blur(22px) saturate(155%)!important;-webkit-backdrop-filter:blur(22px) saturate(155%)!important}

/* Positioned wheel cards fade only: no transform conflict or final teleport. */
.ref-mini-card.wow{transform:none!important}
.ref-mini-card.animated{transform:none!important}

/* Shared primary buttons. */
.trip-primary-cta{display:flex!important;width:max-content!important;min-width:250px!important;justify-content:center!important;margin:30px auto 0!important;padding:16px 30px!important;font-size:17px!important;box-shadow:0 0 0 7px rgba(77,93,250,.10),0 15px 34px rgba(77,93,250,.35)!important}

/* Internal pages begin at exactly the same vertical rhythm. */
.page-hero,.trip-page .page-hero,.parents-body .page-hero,.archive-body .page-hero,.contact-page-hero{padding:92px 0 18px!important;background:#fff!important}
.page-hero .page-heading{margin:0 auto!important}
.page-hero .display-title{font-size:clamp(52px,6vw,72px)!important}

/* Discounts: stronger accent and proper breathing room. */
.discount-section-v7 .discount-grid{gap:24px!important;max-width:980px!important}
.discount-section-v7 .discount-card{grid-template-columns:112px minmax(0,1fr)!important;gap:30px!important;padding:25px 30px!important}
.discount-section-v7 .discount-value{width:112px!important;height:112px!important;flex-basis:112px!important;font-size:47px!important;line-height:1!important;transform:rotate(-3deg)!important;box-shadow:0 12px 26px rgba(77,93,250,.23)!important}
.discount-section-v7 .discount-card:nth-child(even) .discount-value{transform:rotate(3deg)!important;box-shadow:0 12px 26px rgba(41,167,26,.23)!important}
.discount-section-v7 .discount-card p{font-size:16px!important;line-height:1.45!important}
.faq-section-v7 .section-display-title{max-width:900px;margin-inline:auto!important;font-size:clamp(45px,6vw,72px)!important;line-height:.94!important}

/* Archive density and descriptions. */
.archive-body .album-card p{min-height:43px!important;line-height:1.4!important}

/* Contacts social block: no empty row of icons. */
.contact-social-card{display:grid!important;grid-template-columns:minmax(250px,.82fr) minmax(460px,1.18fr)!important;gap:24px!important;width:min(100%,1040px)!important;margin:34px auto 0!important;padding:26px!important;border:1px solid rgba(77,93,250,.12)!important;border-radius:30px!important;background:linear-gradient(135deg,#f8f9ff,#f6fcf4)!important;box-shadow:0 16px 38px rgba(27,38,84,.11)!important}
.contact-social-copy{display:flex;flex-direction:column;justify-content:center;padding:20px 22px;border-radius:23px;background:#fff}
.contact-social-copy>span{display:inline-flex;align-self:flex-start;padding:7px 13px;border-radius:999px;background:var(--v8-green);color:#fff;font-size:11px;font-weight:900}
.contact-social-copy h2{margin:16px 0 0;font-size:clamp(25px,2.5vw,35px);line-height:1.05;font-weight:900}
.contact-social-copy p{margin:13px 0 0;font-size:14px;line-height:1.5;font-weight:650}
.contact-social-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-content:center}
.contact-social-link{display:flex!important;min-width:0!important;min-height:150px!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:14px!important;padding:20px!important;border-radius:22px!important;background:#fff!important;box-shadow:0 9px 24px rgba(26,36,82,.09)!important;transition:.25s ease!important}
.contact-social-link:nth-child(2){background:#f8fff6!important}
.contact-social-link:hover{transform:translateY(-5px)!important;box-shadow:0 16px 34px rgba(26,36,82,.15)!important}
.contact-social-link img{width:48px!important;height:48px!important;object-fit:contain!important}
.contact-social-link span{display:block}.contact-social-link strong{display:block;color:#111;font-size:16px;font-weight:900}.contact-social-link small{display:block;margin-top:4px;color:#6a7080;font-size:11px;font-weight:700}

/* Compact uniform footer, consistent socials and rounded gradient rule. */
.site-footer{margin-top:0!important;padding-top:26px!important;border-radius:38px 38px 0 0!important}
.footer-main{gap:28px!important;padding:24px 0 18px!important}
.footer-brand>img{width:128px!important;height:auto!important}
.footer-brand p{margin:8px 0 0!important}
.footer-col h2{margin-bottom:8px!important}
.footer-col a,.footer-col p{margin-top:5px!important;margin-bottom:5px!important}
.social-row{gap:9px!important;margin-top:12px!important}
.social-link{display:grid!important;width:36px!important;height:36px!important;place-items:center!important;border-radius:12px!important;background:#fff!important;box-shadow:0 7px 18px rgba(28,38,82,.10)!important}
.social-link img{width:27px!important;height:27px!important;object-fit:contain!important}
.footer-contact-icon{width:20px!important;height:20px!important;image-rendering:auto!important}
.footer-bottom{position:relative!important;padding:20px 0 18px!important;border-top:0!important}
.footer-bottom::before{content:'';position:absolute;top:0;left:0;width:100%;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--v8-blue),var(--v8-green))}

@media(max-width:1180px){
  .desktop-nav{gap:16px!important}.header-socials{margin-left:8px!important}.header-social{padding-inline:10px!important}
  .contact-social-card{grid-template-columns:1fr!important}.contact-social-links{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .site-header,.header-inner{height:64px!important;min-height:64px!important}.site-header .brand img{width:98px!important;height:44px!important}
  .page-hero,.trip-page .page-hero,.parents-body .page-hero,.archive-body .page-hero,.contact-page-hero{padding:76px 0 14px!important}
  .ref-program-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .contact-social-links{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:780px){
  .ref-hero{min-height:790px!important}.ref-hero__inner{min-height:790px!important}.ref-hero::after{height:142px!important}
  .hero-people{height:425px!important}.hero-people__halo{bottom:-70px!important}
  .hero-person--one{--person-width:390px;--person-right:calc(50% - 195px);--person-bottom:-95px}
  .hero-person--two{--person-width:385px;--person-right:calc(50% - 193px);--person-bottom:-100px}
  .hero-person--three{--person-width:280px;--person-right:calc(50% - 140px);--person-bottom:-102px}
  .hero-person--four{--person-width:350px;--person-right:calc(50% - 175px);--person-bottom:-104px}
  .hero-people__dots--edge{left:50%!important;bottom:19px!important;width:145px!important}
  .wave-band{padding-top:116px!important;padding-bottom:116px!important}.wave-band::before,.wave-band::after{height:108px!important}
  .ref-program-tabs{grid-template-columns:1fr 1fr!important}.ref-program-tab{min-height:52px!important;font-size:13px!important}.ref-program-tab:last-child{grid-column:1/-1}
  .discount-section-v7 .discount-card{grid-template-columns:92px minmax(0,1fr)!important;gap:20px!important;padding:20px!important}.discount-section-v7 .discount-value{width:92px!important;height:92px!important;flex-basis:92px!important;font-size:39px!important}
  .contact-social-links{grid-template-columns:1fr!important}.contact-social-link{min-height:0!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important}
  .footer-main{gap:18px!important;padding-top:18px!important}
}
@media(max-width:520px){
  .ref-hero{min-height:760px!important}.ref-hero__inner{min-height:760px!important}.ref-hero::after{height:124px!important}
  .hero-people{height:385px!important}
  .hero-person--one{--person-width:342px;--person-right:calc(50% - 171px);--person-bottom:-83px}
  .hero-person--two{--person-width:340px;--person-right:calc(50% - 170px);--person-bottom:-88px}
  .hero-person--three{--person-width:248px;--person-right:calc(50% - 124px);--person-bottom:-91px}
  .hero-person--four{--person-width:306px;--person-right:calc(50% - 153px);--person-bottom:-92px}
  .ref-actions{gap:12px!important}.ref-button--primary-cta{min-width:190px!important;padding:14px 20px!important}
  .wave-band{padding-top:100px!important;padding-bottom:100px!important}.wave-band::before,.wave-band::after{height:92px!important}
  .ref-program-tabs{grid-template-columns:1fr!important}.ref-program-tab:last-child{grid-column:auto}
  .discount-section-v7 .discount-card{grid-template-columns:78px minmax(0,1fr)!important;gap:16px!important}.discount-section-v7 .discount-value{width:78px!important;height:78px!important;flex-basis:78px!important;font-size:33px!important}
  .site-footer{border-radius:28px 28px 0 0!important}.footer-bottom::before{left:10px;width:calc(100% - 20px)}
}
@media(prefers-reduced-motion:reduce){.hero-people__dots--edge button,.ref-button--primary-cta,.trip-primary-cta{transition:none!important}}
