/*
Theme Name: Shapely Child
Theme URI: https://colorlib.com/wp/themes/shapely
Template: shapely
Author: colorlib
Author URI: https://colorlib.com/
Description: Shapely is a powerful and versatile one page WordPress theme with pixel perfect design and outstanding functionality. It is by far the most advanced free WordPress theme available today with loads of unmatched customization options. This theme comes with several homepage widgets that can be used to add portfolio, testimonials, parallax sections, your product or service information, call for action and much more. Shapely supports most free and premium WordPress plugins such as WooCommerce, Jetpack, Gravity Forms, Contact Form 7, Yoast SEO, Google Analytics by Yoast and much more. This theme is the best suited for business, landing page, portfolio, ecommerce, store, local business, personal websites but can be tweaked to be used as blog, magazine or any other awesome website while highlighting its unique one page setup. This is going to be the last WordPress theme you will ever want to use because it is so much better than anything you have seen. Needless to say that this theme is SEO friendly thanks to its well optimized strucutre. Shapely theme is mobile friendly and fully responsive making it your best multipurpose partnert for any project and website.
Tags: left-sidebar,right-sidebar,featured-images,post-formats,threaded-comments,theme-options,photography,portfolio,full-width-template,grid-layout
Version: 1.1.2.1512006871
Updated: 2017-11-30 01:54:31

*/


/* ==========================================================
   v5 homepage rebuild -- "Our Orbit. Your Movement."
   Added 2026-08-22. Prefixed pv5- to avoid
   colliding with theme classes. Safe to hand-edit directly.
   ========================================================== */
:root{
  --pv5-stage:#0e0a12;
  --pv5-stage-deep:#000000;
  --pv5-ink:#fdf9fb;
  --pv5-ink-dim:#c7bdd0;
  --pv5-magenta:#ec1279;
  --pv5-magenta-soft:#ec127933;
  --pv5-blue:#00c4e6;
  --pv5-blue-soft:#00c4e633;
  --pv5-yellow:#ffd400;
  --pv5-yellow-soft:#ffd40033;
  --pv5-line:#ffffff1f;
}

.pv5-hero{
  position:relative;
  min-height:86vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  padding:132px 24px 90px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, #2a1730 0%, transparent 60%),
    linear-gradient(180deg, var(--pv5-stage) 0%, var(--pv5-stage-deep) 100%);
  font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
}
.pv5-glow{position:absolute;border-radius:50%;filter:blur(70px);mix-blend-mode:screen;opacity:.5;pointer-events:none;}
.pv5-glow-a{width:46vw;height:46vw;max-width:640px;max-height:640px;background:var(--pv5-magenta);top:-10%;left:-12%;animation:pv5drift1 22s ease-in-out infinite;}
.pv5-glow-b{width:38vw;height:38vw;max-width:520px;max-height:520px;background:var(--pv5-blue);bottom:-14%;right:-8%;animation:pv5drift2 26s ease-in-out infinite;}
.pv5-glow-c{width:26vw;height:26vw;max-width:380px;max-height:380px;background:var(--pv5-yellow);top:38%;right:14%;animation:pv5drift3 19s ease-in-out infinite;}
@keyframes pv5drift1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(4%,6%) scale(1.12);}}
@keyframes pv5drift2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-5%,-4%) scale(1.08);}}
@keyframes pv5drift3{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-6%,5%) scale(0.9);}}

.pv5-pulse-rings{position:absolute;top:50%;left:50%;width:1px;height:1px;pointer-events:none;}
.pv5-pulse-rings span{
  position:absolute;top:0;left:0;transform:translate(-50%,-50%);
  width:120px;height:120px;border-radius:50%;
  border:1px solid var(--pv5-magenta);opacity:0;
  animation:pv5pulseout 9s cubic-bezier(.2,.7,.3,1) infinite;
}
.pv5-pulse-rings span:nth-child(2){border-color:var(--pv5-blue);animation-delay:3s;}
.pv5-pulse-rings span:nth-child(3){border-color:var(--pv5-yellow);animation-delay:6s;}
@keyframes pv5pulseout{0%{width:100px;height:100px;opacity:.5;}100%{width:900px;height:900px;opacity:0;}}

/* Season 21 art -- placeholder abstract mark until final campaign art is approved for staging */
.pv5-art{
  position:absolute; z-index:1;
  top:50%; left:6%;
  width:clamp(380px,52vw,760px); height:clamp(380px,52vw,760px);
  transform:translateY(-50%);
  opacity:0; pointer-events:none;
  border-radius:50%;
  background:
    conic-gradient(from 0deg, var(--pv5-magenta), var(--pv5-blue) 33%, var(--pv5-yellow) 66%, var(--pv5-magenta));
  filter:blur(2px);
  -webkit-mask:radial-gradient(circle, black 0%, black 55%, transparent 72%);
  mask:radial-gradient(circle, black 0%, black 55%, transparent 72%);
  animation:pv5artin 1.4s cubic-bezier(.2,.8,.2,1) .05s forwards;
}
@keyframes pv5artin{to{opacity:.14;}}
@media(max-width:900px){
  .pv5-art{left:50%;transform:translate(-50%,-50%);width:clamp(300px,84vw,520px);height:clamp(300px,84vw,520px);}
}

.pv5-headline{
  position:relative;z-index:2;
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  font-weight:700;
  font-size:clamp(38px,7.5vw,100px);
  line-height:.98;
  letter-spacing:-0.015em;
  max-width:16ch;
  margin:0 auto;
  text-wrap:balance;
  color:var(--pv5-ink);
}
.pv5-line{display:block;overflow:hidden;}
.pv5-line span{
  display:block;
  opacity:0;transform:translateY(110%);
  animation:pv5rise .9s cubic-bezier(.2,.8,.2,1) forwards;
}
.pv5-line:nth-child(1) span{animation-delay:.22s;}
.pv5-line:nth-child(2) span{animation-delay:.36s;background:linear-gradient(92deg,var(--pv5-magenta),var(--pv5-blue) 55%,var(--pv5-yellow));-webkit-background-clip:text;background-clip:text;color:transparent;}
@keyframes pv5rise{to{opacity:1;transform:translateY(0);}}

.pv5-sub{
  position:relative;z-index:2;
  max-width:52ch; margin:28px auto 0;
  font-size:clamp(15px,1.8vw,19px); color:var(--pv5-ink-dim);
  opacity:0;transform:translateY(10px);
  animation:pv5fadeup .8s ease .62s forwards;
}
.pv5-cta-row{
  position:relative;z-index:2;
  display:flex;flex-wrap:wrap;gap:16px;justify-content:center;
  margin-top:38px;
  opacity:0;transform:translateY(10px);
  animation:pv5fadeup .8s ease .78s forwards;
}
@keyframes pv5fadeup{to{opacity:1;transform:translateY(0);}}
.pv5-btn{
  font-family:'Instrument Sans',sans-serif;font-size:14.5px;font-weight:600;letter-spacing:.02em;
  padding:15px 30px;border-radius:100px;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, background .3s ease;
}
.pv5-btn-primary{background:var(--pv5-magenta);color:#fff8f0;box-shadow:0 10px 30px -10px var(--pv5-magenta-soft);}
.pv5-btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 34px -8px var(--pv5-magenta-soft);color:#fff8f0;}
.pv5-btn-ghost{background:transparent;color:var(--pv5-ink);border:1px solid var(--pv5-line);}
.pv5-btn-ghost:hover{border-color:var(--pv5-ink);transform:translateY(-3px);color:var(--pv5-ink);}

@media (prefers-reduced-motion: reduce){
  .pv5-hero *{animation-duration:.001ms !important;animation-iteration-count:1 !important;}
}

.pv5-stats{
  position:relative;
  background:var(--pv5-stage-deep);
  border-top:1px solid var(--pv5-line); border-bottom:1px solid var(--pv5-line);
  padding:52px clamp(20px,4vw,56px);
  display:grid; grid-template-columns:repeat(3,1fr); gap:32px;
  text-align:center;
}
.pv5-stat .pv5-num{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;font-weight:600;font-size:clamp(28px,3.6vw,44px);color:var(--pv5-yellow);}
.pv5-stat .pv5-num-text{font-size:clamp(17px,2.1vw,24px);font-variant-numeric:normal;letter-spacing:.01em;}
.pv5-stat .pv5-label{margin-top:8px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--pv5-ink-dim);font-family:'Instrument Sans',sans-serif;}
@media(max-width:700px){.pv5-stats{grid-template-columns:1fr;}}

footer.pv5-footer{
  background:var(--pv5-stage-deep); color:var(--pv5-ink-dim);
  border-top:1px solid var(--pv5-line);
  font-family:'Instrument Sans',sans-serif;
}
.pv5-footer-top{
  max-width:1180px;margin:0 auto;
  padding:64px clamp(20px,4vw,56px) 44px;
  display:grid; grid-template-columns:1.3fr 1fr 1.2fr; gap:44px;
}
@media(max-width:780px){.pv5-footer-top{grid-template-columns:1fr;gap:36px;}}
.pv5-footer-brand{display:flex;flex-direction:column;gap:16px;}
.pv5-footer-mark{display:block;width:52px;height:52px;}
.pv5-footer-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(0,0,0,.5));display:block;}
.pv5-footer-brand p{margin:0;font-size:14px;line-height:1.6;color:var(--pv5-ink-dim);max-width:34ch;}
.pv5-footer-col{display:flex;flex-direction:column;gap:11px;}
.pv5-col-title{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--pv5-ink);margin-bottom:2px;
}
.pv5-footer-col a{
  font-size:14px;color:var(--pv5-ink-dim);text-decoration:none;width:fit-content;
  transition:color .25s ease;
}
.pv5-footer-col a:hover{color:var(--pv5-ink);}
.pv5-footer-visit .pv5-visit-address{
  display:flex;align-items:flex-start;gap:10px;
  font-size:15px;color:var(--pv5-ink);line-height:1.5;font-weight:500;
}
.pv5-footer-visit .pv5-pin{
  flex:none;margin-top:6px;width:9px;height:9px;border-radius:50%;
  background:var(--pv5-yellow);box-shadow:0 0 0 4px var(--pv5-yellow-soft);
}
.pv5-directions{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--pv5-blue) !important;
}
.pv5-directions:hover{color:var(--pv5-ink) !important;}
.pv5-footer-bottom{
  border-top:1px solid var(--pv5-line);
  max-width:1180px;margin:0 auto;
  padding:20px clamp(20px,4vw,56px) 30px;
  display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.03em;color:#8a7f92;
}
.pv5-footer-bottom p{margin:0;}
.pv5-footer-bottom a{color:#8a7f92;text-decoration:none;}
.pv5-footer-bottom a:hover{color:var(--pv5-ink);}


/* pv5-logo-fix */
header#masthead.site-header {
  position: relative;
  z-index: 50;
}


/* pv5-schedule-page */
.pv5-sched-intro{
  font-size:1.2rem;
  color:#3a3540;
  background:linear-gradient(90deg, var(--pv5-magenta-soft), transparent);
  border-left:4px solid var(--pv5-magenta);
  padding:14px 18px;
  border-radius:4px;
  margin:18px 0 28px;
}
.pv5-download{
  display:inline-block;
  background:var(--pv5-magenta);
  color:#fff !important;
  font-weight:600;
  font-size:1.22rem;
  text-decoration:none !important;
  padding:15px 30px;
  border-radius:999px;
  margin:6px 0 10px;
  transition:background .2s ease, transform .2s ease;
}
.pv5-download:hover{
  background:#c30e66;
  transform:translateY(-1px);
}
.pv5-sched-h3{
  font-family:'Instrument Sans',system-ui,sans-serif;
  font-size:1.5rem;
  color:#1c1720;
  margin:44px 0 6px;
  padding-top:18px;
  border-top:2px solid #ece7ef;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
h3.pv5-sched-h3:first-of-type{border-top:none;padding-top:0;margin-top:22px;}
.pv5-sched-tag, .pv5-sched-tag-inline{
  display:inline-block;
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--pv5-magenta);
  background:var(--pv5-magenta-soft);
  padding:4px 10px;
  border-radius:999px;
  vertical-align:middle;
}
.pv5-sched-tag-inline{margin-left:8px;}
.pv5-sched-h4{
  font-family:'Instrument Sans',system-ui,sans-serif;
  font-size:1.08rem;
  color:var(--pv5-magenta);
  margin:26px 0 8px;
  letter-spacing:.01em;
}
.pv5-sched-note{
  font-size:.92rem;
  color:#6b6470;
  font-style:italic;
  margin:6px 0 20px;
}
table.pv5-schedule-table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 22px;
  font-size:1.08rem;
  box-shadow:0 1px 3px rgba(20,10,25,.08);
  border-radius:8px;
  overflow:hidden;
}
.pv5-schedule-table thead th{
  background:#1c1720;
  color:#fff;
  text-align:left;
  padding:10px 14px;
  font-weight:600;
  font-size:.9rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.pv5-schedule-table tbody td{
  padding:9px 14px;
  border-bottom:1px solid #ece7ef;
  color:#2a252e;
}
.pv5-schedule-table tbody tr:last-child td{border-bottom:none;}
.pv5-schedule-table tbody tr:nth-child(even){background:#faf8fb;}
.pv5-schedule-table tbody tr:hover{background:var(--pv5-yellow-soft);}
.pv5-tuition-table thead th{background:var(--pv5-magenta);}
.pv5-tuition-table tbody td:last-child{font-weight:700;color:var(--pv5-magenta);}
.pv5-dates-table thead th{background:var(--pv5-blue);color:#08222a;}
.pv5-dates-table tbody td:first-child{white-space:nowrap;font-weight:600;}
@media (max-width:600px){
  table.pv5-schedule-table{font-size:1rem;}
  .pv5-schedule-table thead th, .pv5-schedule-table tbody td{padding:8px 8px;}
}


/* pv5-static-search */
/* Rebuilt 2026-08-24: was a persistent 150-230px text input competing for header width with
   the main nav at md/lg breakpoints (992-1200px), which caused the nav to wrap/overlap.
   Now a 40px icon button that expands into the input only while actively in use. */
.search-widget-handle{ display:none !important; }
.pv5-static-search{
  position:absolute;
  top:50%;
  right:24px;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  z-index:60;
}
.pv5-search-toggle{
  width:40px;
  height:40px;
  flex:0 0 auto;
  border-radius:50%;
  border:1px solid var(--pv5-magenta);
  background:#fff;
  color:var(--pv5-magenta);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
  transition:background .2s ease, color .2s ease;
}
.pv5-search-toggle:hover{ background:var(--pv5-magenta-soft); }
.pv5-static-search .pv5-search-input{
  width:0 !important;
  min-width:0;
  opacity:0;
  border:1px solid #e2dde5 !important;
  border-right:none !important;
  border-radius:999px 0 0 999px !important;
  padding:0 !important;
  margin:0;
  font-size:.98rem;
  outline:none !important;
  box-shadow:none !important;
  font-family:inherit;
  background:#fff !important;
  color:#2a252e !important;
  overflow:hidden;
  pointer-events:none;
  transition:width .2s ease, opacity .2s ease, padding .2s ease, border-color .2s ease;
}
.pv5-static-search .pv5-search-input:focus{
  border-color:var(--pv5-magenta) !important;
}
.pv5-search-input::placeholder{ color:#a89fb0; }
.pv5-static-search .pv5-search-submit{
  width:0 !important;
  height:40px !important;
  max-width:none !important;
  flex:0 0 auto;
  overflow:hidden;
  border:0 !important;
  background:var(--pv5-magenta) !important;
  color:#fff;
  border-radius:0 999px 999px 0 !important;
  padding:0 !important;
  margin:0;
  font-size:1rem;
  font-weight:normal;
  letter-spacing:normal;
  text-transform:none;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  transition:width .2s ease, background .2s ease;
}
.pv5-static-search .pv5-search-submit:hover{ background:#c30e66 !important; }
.pv5-static-search.pv5-search-open .pv5-search-toggle{
  display:none;
}
.pv5-static-search.pv5-search-open .pv5-search-input{
  width:190px !important;
  opacity:1 !important;
  padding:8px 16px !important;
  pointer-events:auto;
}
.pv5-static-search.pv5-search-open .pv5-search-submit{
  width:44px !important;
  border:1px solid var(--pv5-magenta) !important;
  pointer-events:auto;
}
@media (max-width: 991px){
  .pv5-static-search{ display:none; }
}

/* pv5-logo-nudge */
.custom-logo-link{
  transform:translateY(-14px);
}

/* pv5-table-filter */
.pv5-filter-bar{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 24px;
  max-width:360px;
}
.pv5-filter-bar input[type="text"]{
  flex:1;
  border:1px solid #e2dde5;
  border-radius:999px;
  padding:12px 20px;
  font-size:1.08rem;
  outline:none;
  font-family:inherit;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.pv5-filter-bar input[type="text"]:focus{
  border-color:var(--pv5-magenta);
  box-shadow:0 0 0 3px var(--pv5-magenta-soft);
}
.pv5-filter-bar .pv5-filter-count{
  font-size:.8rem;
  color:#8a8290;
  white-space:nowrap;
}
.pv5-filter-hide{ display:none !important; }
.pv5-filter-empty{
  font-size:.9rem;
  color:#8a8290;
  font-style:italic;
  padding:10px 0;
  display:none;
}

/* pv5-cross-link */
.pv5-cross-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#faf8fb;
  border:1px solid #ece7ef;
  border-radius:10px;
  padding:15px 22px;
  margin:8px 0 28px;
  font-size:1.18rem;
  color:#3a3540;
  text-decoration:none !important;
}
.pv5-cross-link:hover{
  border-color:var(--pv5-magenta);
  background:var(--pv5-magenta-soft);
}
.pv5-cross-link strong{ color:var(--pv5-magenta); }


/* pv5-lightbox */
.gallery .gallery-item{
  cursor:zoom-in;
  transition:opacity .15s ease;
}
.gallery .gallery-item:hover{ opacity:.82; }
.pv5-lightbox-overlay{
  position:fixed;
  inset:0;
  background:rgba(12,7,14,.94);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:99999;
  opacity:0;
  visibility:hidden;
  transition:opacity .25s ease;
  padding:60px;
}
.pv5-lightbox-overlay.is-open{ opacity:1; visibility:visible; }
.pv5-lightbox-img{
  max-width:100%;
  max-height:100%;
  border-radius:6px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  transform:scale(.96);
  transition:transform .25s ease;
}
.pv5-lightbox-overlay.is-open .pv5-lightbox-img{ transform:scale(1); }
.pv5-lightbox-close,
.pv5-lightbox-prev,
.pv5-lightbox-next{
  position:fixed;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;
  border-radius:999px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s ease, border-color .2s ease;
  line-height:1;
}
.pv5-lightbox-close:hover,
.pv5-lightbox-prev:hover,
.pv5-lightbox-next:hover{
  background:var(--pv5-magenta);
  border-color:var(--pv5-magenta);
}
.pv5-lightbox-close{ top:24px; right:24px; width:44px; height:44px; font-size:22px; }
.pv5-lightbox-prev{ left:24px; top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:24px; }
.pv5-lightbox-next{ right:24px; top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:24px; }
.pv5-lightbox-counter{
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  color:#fff;
  font-size:.82rem;
  letter-spacing:.05em;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  padding:6px 16px;
  border-radius:999px;
  font-variant-numeric:tabular-nums;
}
@media (max-width:600px){
  .pv5-lightbox-overlay{ padding:16px; }
  .pv5-lightbox-prev{ left:8px; width:40px; height:40px; font-size:18px; }
  .pv5-lightbox-next{ right:8px; width:40px; height:40px; font-size:18px; }
  .pv5-lightbox-close{ top:12px; right:12px; width:36px; height:36px; font-size:18px; }
}

/* pv5-gallery-index */
.pv5-gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:22px;
  margin:28px 0;
}
.pv5-gallery-card{
  position:relative;
  display:block;
  border-radius:10px;
  overflow:hidden;
  aspect-ratio:4/3;
  background:#1c1720;
  text-decoration:none !important;
  box-shadow:0 1px 3px rgba(20,10,25,.15);
}
.pv5-gallery-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
  display:block;
}
.pv5-gallery-card:hover img{ transform:scale(1.06); }
.pv5-gallery-card .pv5-gallery-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(0deg, rgba(10,6,12,.85) 0%, rgba(10,6,12,.15) 55%, rgba(10,6,12,0) 100%);
  display:flex;
  align-items:flex-end;
  padding:16px 18px;
}
.pv5-gallery-card .pv5-gallery-title{
  color:#fff;
  font-weight:600;
  font-size:1.02rem;
  letter-spacing:.01em;
}
.pv5-gallery-card .pv5-gallery-count{
  display:block;
  color:#e8c7da;
  font-size:.78rem;
  margin-top:2px;
  letter-spacing:.03em;
  text-transform:uppercase;
}


/* pv5-pdf-viewer */
.pv5-pdf-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  color:var(--pv5-magenta) !important;
  font-weight:600;
  font-size:1.05rem;
  border:2px solid var(--pv5-magenta);
  text-decoration:none !important;
  padding:11px 22px;
  border-radius:999px;
  margin:0 0 10px 10px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.pv5-pdf-toggle:hover{
  background:var(--pv5-magenta);
  color:#fff !important;
}
.pv5-pdf-panel{
  display:none;
  margin:6px 0 26px;
  border:1px solid #ece7ef;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 1px 3px rgba(20,10,25,.08);
  clear:both;
}
.pv5-pdf-panel.is-open{ display:block; }
.pv5-pdf-panel iframe{
  width:100%;
  height:80vh;
  border:0;
  display:block;
}
@media (max-width:600px){
  .pv5-pdf-panel iframe{ height:65vh; }
  .pv5-pdf-toggle{ margin-left:0; }
}


/* pv5-about */
.pv5-about-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
  margin:8px 0 30px;
}
.pv5-about-card{
  background:#faf8fb;
  border:1px solid #ece7ef;
  border-radius:12px;
  padding:26px 24px;
  transition:border-color .2s ease, transform .2s ease;
}
.pv5-about-card:hover{
  border-color:var(--pv5-magenta);
  transform:translateY(-3px);
}
.pv5-about-card h3{
  margin:0 0 10px;
  font-size:1.15rem;
  color:var(--pv5-magenta);
  font-weight:700;
}
.pv5-about-card p{
  margin:0;
  font-size:.98rem;
  color:#3a3540;
  line-height:1.6;
}
.pv5-about-closing{
  text-align:center;
  font-size:1.2rem;
  font-weight:600;
  color:#3a3540;
  margin:0 0 22px;
}
.pv5-about-video{
  position:relative;
  width:100%;
  max-width:760px;
  aspect-ratio:16/9;
  margin:0 auto 34px;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 18px rgba(20,10,25,.14);
  background:#000;
}
.pv5-about-video iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
@media (max-width:820px){
  .pv5-about-grid{ grid-template-columns:1fr; }
}


/* pv5-about-subpages */
.pv5-inline-link{
  color:var(--pv5-magenta);
  font-weight:600;
  text-decoration:none;
}
.pv5-inline-link:hover{ text-decoration:underline; }

.team-items{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:26px 22px;
  margin-top:12px;
}
@media (max-width:860px){
  .team-items{ grid-template-columns:repeat(2, 1fr) !important; }
}
@media (max-width:560px){
  .team-items{ grid-template-columns:1fr !important; }
}
.team-items .item{
  display:flex !important;
  flex-direction:column;
  align-items:center;
  text-align:center;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:36px 28px 32px;
  background:#fff;
  border:1px solid #ece7ef;
  border-radius:20px;
  vertical-align:top;
  box-shadow:0 2px 10px rgba(20,10,30,.05);
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.team-items .item:hover{
  border-color:var(--pv5-magenta-soft);
  box-shadow:0 16px 32px rgba(20,10,30,.1);
  transform:translateY(-6px);
}
.elements-wrapper, .layer-media, .layer-content{ width:100% !important; }
.team-thumb{ display:flex !important; justify-content:center; }
.team-thumb img{
  width:128px !important;
  height:128px !important;
  object-fit:cover;
  border-radius:50% !important;
  border:4px solid #fff !important;
  box-shadow:0 0 0 3px var(--pv5-magenta-soft);
  transition:box-shadow .25s ease, filter .25s ease;
  margin-bottom:20px;
  filter:grayscale(1);
}
.item:hover .team-thumb img{ box-shadow:0 0 0 3px var(--pv5-magenta); }
.team-title{ width:100% !important; }
.team-title a{
  color:var(--pv5-magenta) !important;
  font-weight:800;
  font-size:1.22rem;
}
.team-position:empty{ display:none; }
.team-position{
  display:inline-block;
  width:auto !important;
  color:var(--pv5-magenta);
  background:var(--pv5-magenta-soft);
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:700;
  padding:6px 16px;
  border-radius:14px;
  text-align:center;
  margin:12px 0 16px;
}
.team-content{
  width:100% !important;
  font-size:.98rem;
  color:#4a4550;
  line-height:1.65;
  text-align:left;
}
.team-content a.read-more{
  display:table;
  margin-top:12px;
  color:var(--pv5-magenta) !important;
  font-weight:700;
  font-size:.88rem;
  border:1.5px solid var(--pv5-magenta);
  border-radius:999px;
  padding:6px 18px;
  text-decoration:none !important;
  transition:background .2s ease, color .2s ease;
}
.team-content a.read-more:hover{
  background:var(--pv5-magenta);
  color:#fff !important;
}
.team-social{ margin-top:16px; padding-top:16px; border-top:1px solid #f0ecf3; width:100%; }
.team-social a img{
  opacity:.7;
  transition:opacity .2s ease;
}
.team-social a:hover img{ opacity:1; }

/* pv5-testimonials */
.strong-content.strong-columns{
  column-gap:22px;
}
.wpmtst-testimonial{
  background:#faf8fb;
  border:1px solid #ece7ef;
  border-radius:12px;
  padding:22px 24px;
  margin:0 0 22px;
  break-inside:avoid;
}
.wpmtst-testimonial-heading{
  font-size:1.05rem;
  color:var(--pv5-magenta);
  font-weight:700;
  margin:0 0 10px;
}
.wpmtst-testimonial-content p{
  font-size:.96rem;
  color:#3a3540;
  line-height:1.6;
  margin:0;
}
.wpmtst-testimonial-field:not(.testimonial-company){
  display:none;
}
.testimonial-company{
  margin-top:12px;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#a89fb0;
  font-weight:600;
}


/* pv5-quote-grid */
.pv5-quote-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:20px;
  margin:8px 0 30px;
}
.pv5-quote-card{
  background:#faf8fb;
  border-left:4px solid var(--pv5-magenta);
  border-radius:4px;
  padding:22px 24px 20px;
}
.pv5-quote-card p{
  margin:0 0 12px;
  font-style:italic;
  font-size:.96rem;
  color:#3a3540;
  line-height:1.6;
}
.pv5-quote-cite{
  font-size:.82rem;
  font-weight:600;
  color:var(--pv5-magenta);
}
@media (max-width:820px){
  .pv5-quote-grid{ grid-template-columns:1fr; }
}


/* pv5-accordion (sitewide: Schedule, Tuition, Dress Code, FAQs) */
.accordion{ margin:8px 0 30px; }
.accordion-title{
  position:relative;
  padding:16px 44px 16px 18px;
  margin:0 0 10px;
  background:#faf8fb;
  border:1px solid #ece7ef;
  border-radius:10px;
  font-size:1.05rem;
  font-weight:700;
  color:#2a2530;
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.accordion-title:hover{
  border-color:var(--pv5-magenta);
}
.accordion-title::after{
  content:"+";
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  font-size:1.3rem;
  font-weight:400;
  color:var(--pv5-magenta);
  line-height:1;
}
.accordion-title[aria-expanded="true"]::after{
  content:"\2013";
}
.accordion-title[aria-expanded="true"]{
  border-color:var(--pv5-magenta);
  background:var(--pv5-magenta-soft);
}
.accordion-content{
  padding:4px 18px 22px;
  font-size:.96rem;
  color:#3a3540;
  line-height:1.6;
}


/* pv5-contact */
.pv5-contact-grid{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:40px;
  margin:8px 0 40px;
  align-items:start;
}
.pv5-contact-info{
  background:#faf8fb;
  border:1px solid #ece7ef;
  border-radius:14px;
  padding:28px 26px;
}
.pv5-contact-info h2{
  margin:0 0 14px;
  font-size:1.3rem;
  color:var(--pv5-magenta);
}
.pv5-contact-address{
  font-size:1rem;
  line-height:1.6;
  margin:0 0 10px;
  color:#2a2530;
}
.pv5-contact-note{
  font-size:.9rem;
  color:#6a6470;
  line-height:1.55;
  margin:18px 0;
}
.pv5-contact-detail{
  font-size:.95rem;
  margin:6px 0;
  color:#2a2530;
}
.pv5-contact-detail a{
  color:var(--pv5-magenta);
  font-weight:600;
  text-decoration:none;
}
.pv5-contact-form label{
  font-weight:600;
  font-size:.92rem;
  color:#2a2530;
  display:block;
  margin-bottom:14px;
}
.pv5-contact-form input[type=text],
.pv5-contact-form input[type=email],
.pv5-contact-form input[type=tel],
.pv5-contact-form textarea{
  width:100%;
  border:1px solid #ece7ef;
  border-radius:8px;
  padding:11px 14px;
  font-size:.96rem;
  background:#faf8fb;
  margin-top:6px;
  transition:border-color .2s ease, background .2s ease;
}
.pv5-contact-form input[type=text]:focus,
.pv5-contact-form input[type=email]:focus,
.pv5-contact-form input[type=tel]:focus,
.pv5-contact-form textarea:focus{
  border-color:var(--pv5-magenta);
  outline:none;
  background:#fff;
}
.pv5-contact-form input[type=submit]{
  background:var(--pv5-magenta) !important;
  border:none;
  color:#fff !important;
  font-weight:700;
  padding:13px 32px;
  border-radius:999px;
  cursor:pointer;
  font-size:1rem;
  transition:opacity .2s ease;
}
.pv5-contact-form input[type=submit]:hover{ opacity:.88; }
@media (max-width:820px){
  .pv5-contact-grid{ grid-template-columns:1fr; }
}


/* pv5-program-cards (Performance & Competition landing) */
a.pv5-about-card{
  display:block;
  text-decoration:none !important;
  color:inherit;
}
.pv5-about-card img{
  display:block;
  margin:0 auto 16px;
  max-height:72px;
  width:auto;
}


/* pv5-calendar (light-touch — The Events Calendar plugin is slated for replacement, see project notes) */
.tribe-events-calendar-month__multiday-event-bar-inner,
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link,
.tribe-events-c-top-bar__today-button:hover,
.tribe-events-c-nav__prev:hover,
.tribe-events-c-nav__next:hover{
  background-color: var(--pv5-magenta-soft) !important;
  color: var(--pv5-magenta) !important;
}
.tribe-common a,
.tribe-events-calendar-month__multiday-event-title,
.tribe-events-calendar-month__calendar-event-title-link{
  color: var(--pv5-magenta) !important;
}
.tribe-events-c-view-selector__button:hover,
.tribe-events-c-view-selector__button[aria-expanded="true"]{
  border-color: var(--pv5-magenta) !important;
  color: var(--pv5-magenta) !important;
}

/* pv5-nav-squeeze: the theme's own horizontal nav has no hamburger fallback between
   768px (where the mobile toggle appears) and roughly 1200-1300px, so on narrower
   laptop/tablet-landscape widths the menu items wrap into a second row and can overlap
   the header search. Reclaim the theme's generous item spacing in that range so the
   full menu keeps fitting on one line without changing anything at wider widths. */
@media (max-width: 1300px) and (min-width: 768px){
  .main-navigation .menu > li{ margin-right:8px !important; }
  .main-navigation .menu > li.menu-item-has-children{ padding-right:10px !important; }
  .menu > li.dropdown{ padding-right:6px !important; }
  .main-navigation .menu > li > a{ font-size:12px !important; }
}
