/* PossAbilities: home page hero, click-to-load embeds, and block styles for pages built in /admin. */

/* ---------- Hero ---------- */
.hero{position:relative;width:100%;height:100vh;height:100svh;min-height:520px;overflow:hidden;background:#ddd;color:#fff}
.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s linear .9s}
.hero-slide.is-active{opacity:1;visibility:visible;transition:opacity .9s ease,visibility 0s}
.hero .hero-img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;object-fit:cover;object-position:center;border-radius:0}
.hero-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 7%;box-sizing:border-box}
.hero-title{margin:0;color:#fff;font-family:Roboto,sans-serif;font-weight:700;font-size:clamp(30px,8.4vw,90px);line-height:1.1;letter-spacing:0;text-transform:uppercase;text-shadow:1px 1px 1px rgba(0,0,0,.6)}
.hero-title span{display:inline-block;background-color:#FD0C90;box-shadow:4px 4px 0 #FEB803;padding:0 30px;margin-top:4px}
.hero-btns{position:absolute;left:0;right:0;top:calc(50% + min(200px,18vw));transform:translateY(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:20px;padding:0 7%;box-sizing:border-box}
.hero-btn{display:flex;align-items:center;justify-content:center;min-width:min(320px,42vw);min-height:72px;box-sizing:border-box;padding:12px 16px;background:#fff;color:#000;border-radius:16px;font-family:Roboto,sans-serif;font-size:25px;font-weight:500;line-height:1.2;text-decoration:none;transition:background .2s,color .2s}
.hero-btn:hover,.hero-btn:focus-visible{background:#560067;color:#fff}
.hero-btn:focus-visible{outline:3px solid #FEB803;outline-offset:2px}
.hero-arrow{position:absolute;top:50%;z-index:3;width:50px;height:100px;margin-top:-50px;padding:0;border:0;background:none;color:#fff;cursor:pointer;opacity:.85}
.hero-arrow:hover,.hero-arrow:focus-visible{opacity:1}
.hero-arrow:focus-visible{outline:3px solid #FEB803;outline-offset:-3px}
.hero-arrow svg{width:18px;height:33px;fill:none;stroke:currentColor;stroke-width:1.5}
.hero-prev{left:12px}
.hero-next{right:12px}
.hero-dots{position:absolute;left:0;right:0;bottom:20px;z-index:3;display:none;justify-content:center;gap:5px}
.hero-dot{width:11px;height:11px;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:inset 0 0 0 1px #274543;cursor:pointer;transition:background .3s}
.hero-dot.is-active{background:#274543}
.hero-dot:focus-visible{outline:2px solid #FEB803;outline-offset:2px}
@media (max-width:1024px){
 .hero-dots{display:flex}
 .hero-arrow{display:none}
 .hero-btn{font-size:16px;min-height:44px;min-width:min(200px,36vw);border-radius:12px}
}
@media (max-width:767px){
 .hero-title span{padding:0 14px}
 .hero-btn{min-width:0;flex:0 1 auto;min-width:36vw;min-height:40px;font-size:12px;font-weight:600;border-radius:10px;padding:6px 10px}
 .hero-btns{gap:12px;width:100%}
}
@media (prefers-reduced-motion:reduce){.hero-slide,.hero-slide.is-active{transition:none}}

/* ---------- Sliders: same layout as before, driven by our script ---------- */
.sl-wrapper{transition:transform .5s ease}
.sl-pagination-bullet{cursor:pointer}
[data-anim].el-invisible{visibility:hidden}

/* ---------- Click-to-load video sizing ---------- */
.el-video .poss-embed{aspect-ratio:16/9;min-height:0}
.el-video iframe,.poss-embed+iframe{width:100%;aspect-ratio:16/9;border:0}

/* ---------- Page title on the purple banner ---------- */
.pa-page-title .pa-m-title{color:#fff}

/* ---------- Page numbers on news lists ---------- */
.pa-m-pagination{margin-top:48px}
.pa-m-pagination-items{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}
.pa-m-pagination-item{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:46px;height:46px;padding:0 8px;border-radius:50%;color:#560067;font-weight:700;line-height:1;text-decoration:none;transition:background-color .2s ease,color .2s ease}
.pa-m-pagination-item:hover{background:#F6F2F8}
.pa-m-pagination-item.pa--active,.pa-m-pagination-item.pa--active:hover{background:#560067;color:#fff}
.pa-m-pagination-item:focus-visible{outline:3px solid #E5007E;outline-offset:2px}
.pa-m-pagination-item svg{display:block;width:auto;height:20px;overflow:visible}
.pa-m-pagination-item svg path{stroke:currentColor}

/* ---------- Form messages ---------- */
.fm-not-valid-tip{display:block;color:#b00020;font-size:14px;font-weight:600;margin-top:4px}
.fm-response-output{margin:16px 0 0;padding:12px 16px;border:2px solid #560067;border-radius:8px;font-weight:600}
.fm-response-output:empty{display:none}
form.sent .fm-response-output{border-color:#16706B}
form.invalid .fm-response-output,form.failed .fm-response-output,form.spam .fm-response-output{border-color:#b00020}
.fm-comment-error{border-color:#b00020}
.fm-anon-note{margin:12px 0 0;font-size:15px;line-height:1.5;color:#3D2A45}

/* ---------- Form sent confirmation ---------- */
form.fm-leaving{opacity:0;transform:translateY(-8px) scale(.98);transition:opacity .26s ease,transform .26s ease}
form[hidden]{display:none!important}
.fm-sent{position:relative;overflow:hidden;box-sizing:border-box;width:100%;max-width:calc(100vw - 32px);margin:0 auto;padding:28px 24px 104px;border-radius:24px;background:#F6F2F8;color:#2A1A30;text-align:center;outline:0;animation:fm-panel .45s ease both}
.fm-sent:focus-visible{outline:3px solid #560067;outline-offset:3px}
.fm-sent-art{display:block;width:min(260px,70%);height:auto;margin:0 auto 8px;overflow:visible}
.fm-sent .fm-sent-title{position:relative;z-index:1;margin:0 0 8px;color:#560067;font-size:clamp(26px,4vw,36px)!important;font-weight:800;line-height:1.15}
.fm-sent .fm-sent-text{position:relative;z-index:1;max-width:32em;margin:0 auto;font-size:18px!important;line-height:1.5}
.fm-sent-again{position:relative;z-index:1;margin-top:20px;padding:13px 30px;border:0;border-radius:999px;background:#560067;color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:background .2s ease}
.fm-sent-again:hover{background:#3a0046}
.fm-sent-again:focus-visible{outline:3px solid #E5007E;outline-offset:3px}
.fm-sent-waves{position:absolute;left:0;right:0;bottom:0;display:block;width:100%;height:88px;pointer-events:none}
.fm-wave-a{animation:fm-rise .8s .15s cubic-bezier(.2,.8,.2,1) both}
.fm-wave-b{animation:fm-rise .8s .3s cubic-bezier(.2,.8,.2,1) both}
.fm-disc{transform-box:fill-box;transform-origin:center;animation:fm-pop .55s .55s cubic-bezier(.3,1.6,.5,1) both}
.fm-ring{stroke-dasharray:1;animation:fm-draw .6s .7s ease-out both}
.fm-tick{stroke-dasharray:1;animation:fm-draw .35s 1s ease-out both}
.fm-plane{opacity:0;animation:fm-fly 1s .05s ease-in both}
.fm-b{opacity:0;animation:fm-burst .9s .8s cubic-bezier(.15,.7,.3,1) both}
.fm-b.fm-b2{animation-name:fm-burst-far;animation-delay:.86s}
.fm-sent.fm-sent--words{padding:8px 0 16px;background:none;border-radius:0;text-align:left;animation:none;overflow:visible}
.fm-sent.fm-sent--words .fm-sent-title{margin:0 0 6px;font-size:clamp(22px,3vw,28px)!important}
.fm-sent.fm-sent--words .fm-sent-text{margin:10px 0 0;max-width:none;font-size:17px!important;animation:fm-word-in .5s .55s ease-out both}
.fm-word{display:inline-block;animation:fm-word-in .5s cubic-bezier(.2,.8,.2,1) both}
.fm-sent-line{display:block;width:120px;height:auto;overflow:visible}
.fm-sent-line path{stroke-dasharray:1;animation:fm-draw .7s .3s ease-out both}
.fm-sent--calm .fm-plane,.fm-sent--calm .fm-sent-burst{display:none}
.fm-sent--calm .fm-disc{animation-delay:.1s;animation-timing-function:ease-out}
.fm-sent--calm .fm-ring{animation-delay:.25s}
.fm-sent--calm .fm-tick{animation-delay:.5s}
@keyframes fm-word-in{from{opacity:0;transform:translateY(10px)}}
@keyframes fm-panel{from{opacity:0;transform:translateY(12px)}}
@keyframes fm-rise{from{transform:translateY(100%)}}
@keyframes fm-pop{from{transform:scale(0)}}
@keyframes fm-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes fm-fly{0%{opacity:0;transform:translate(-40px,150px) rotate(-30deg)}15%{opacity:1}55%{opacity:1;transform:translate(95px,70px) rotate(-30deg)}100%{opacity:0;transform:translate(260px,-30px) rotate(-30deg)}}
@keyframes fm-burst{0%{opacity:1;transform:translateY(-30px)}100%{opacity:0;transform:translateY(-78px)}}
@keyframes fm-burst-far{0%{opacity:1;transform:translateY(-34px)}100%{opacity:0;transform:translateY(-98px)}}
@media (prefers-reduced-motion:reduce){form.fm-leaving{transition:none}.fm-sent,.fm-sent *{animation:none!important}}

/* ---------- Blocks for pages built in /admin ---------- */
.pb-section{padding:64px 20px;box-sizing:border-box}
.pb-inner{max-width:1100px;margin:0 auto}
.pb-center{text-align:center}
.pb-title{margin:0 0 20px;color:#0B2E2C}
.pb-text{color:#555}
.pb-text p{margin:0 0 16px}
.pb-pink{background:#E5007E;color:#fff}
.pb-pink .pb-title,.pb-pink .pb-text{color:#fff}
.pb-teal{background:#51BDB8}
.pb-teal .pb-text{color:#0B2E2C}
.pb-purple{background:#560067;color:#fff}
.pb-purple .pb-title,.pb-purple .pb-text{color:#fff}
.pb-grey{background:#f2f2f2}
.pb-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.pb-img{width:100%;height:auto;display:block;border-radius:8px}
.pb-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pb-card{background:#fff;border-radius:8px;box-shadow:4px 4px 0 #FEB803;padding:24px;color:#555}
.pb-card h3{margin:12px 0;color:#0B2E2C}
.pb-card img{width:100%;height:auto;display:block;border-radius:6px}
.pb-btn{display:inline-block;margin-top:8px;padding:14px 28px;border-radius:999px;background:#560067;color:#fff;font-weight:700;text-decoration:none;box-shadow:4px 4px 0 #FEB803}
.pb-btn:hover,.pb-btn:focus-visible{background:#E5007E;color:#fff}
.pb-pink .pb-btn,.pb-purple .pb-btn{background:#fff;color:#560067}
.pb-banner{position:relative;min-height:380px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#fff}
.pb-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pb-banner .pb-inner{position:relative;padding:40px 20px;text-shadow:1px 1px 2px rgba(0,0,0,.7)}
.pb-banner .pb-title{color:#fff}
@media (max-width:767px){
 .pb-split,.pb-cards{grid-template-columns:1fr}
 .pb-section{padding:40px 20px}
}

/* Desktop drop-down menus. The old theme opened these with a script that no longer exists, so CSS opens them on hover and keyboard focus. */
.pa-header-navigation ul li.pa-menu-item--narrow:hover > .pa-drop-down-second,
.pa-header-navigation ul li.pa-menu-item--narrow:focus-within > .pa-drop-down-second {
  height: auto;
  opacity: 1;
  visibility: visible;
  overflow: visible;
  z-index: 20;
  transition: opacity .2s ease-out;
}
/* The empty top bar overlaps the upper half of the menu and blocks the pointer. Only its link should catch clicks. */
#pa-top-area, #pa-top-area-inner, #pa-top-area .pa-widget-holder, #pa-top-area .widget { pointer-events: none; }
#pa-top-area a { pointer-events: auto; }
