/* ============================================================
   PROGRAM SINGLE (content template 202) — Figma build
   Color hero → 50/50 about → avatar testimonial carousel →
   curriculum callout → 50/50 info → full-bleed city map →
   sibling programs carousel.
   --pcolor (per-program brand color) set by mcsr-pcolor.js from
   the hero's data-pcolor. Fallback = Sky.
   ============================================================ */
.pg-hero{ --pcolor:var(--sky); }

/* ── HERO (program color background) ── */
.brxe-section.pg-hero{
  display:block;background:var(--pcolor);
  padding-top:calc(var(--header-h,84px) + var(--sp-2xl));
}
/* The hero and the scroll gallery beneath it read as one colored block;
   round the bottom of whichever coloured section ends it. */
.pg-hero{border-bottom-left-radius:clamp(2.4rem,4vw,4rem);border-bottom-right-radius:clamp(2.4rem,4vw,4rem);}
.pg-hero:has(+ .pg-marquee:not(.pg-hidden)){border-bottom-left-radius:0;border-bottom-right-radius:0;}
.pg-marquee:not(.pg-hidden){border-bottom-left-radius:clamp(2.4rem,4vw,4rem);border-bottom-right-radius:clamp(2.4rem,4vw,4rem);}
.pg-hero__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-m);padding-bottom:var(--sp-2xl);}
.pg-hero__logo{max-width:180px;height:auto;margin-bottom:var(--sp-xs);}
.pg-hero__logo img{width:100%;height:auto;display:block;}
.pg-hero__title{
  margin:0;font-family:var(--font-display);font-weight:600;
  font-size:var(--text-3xl);line-height:.98;text-transform:uppercase;
  letter-spacing:-.01em;color:var(--white);max-width:34ch;
}
.pg-hero__intro{margin:0;max-width:52ch;font-family:var(--font-mono);font-size:var(--fs-lead);line-height:1.6;color:rgba(255,255,255,.92);}
.pg-hero .mcsr-cta{margin-top:var(--sp-xs);}

/* latest updates row */
.pg-hero__updates{width:100%;max-width:var(--wrap);margin-top:var(--sp-l);}
.pg-hero__updates-label{
  display:block;font-family:var(--font-mono);font-size:1.3rem;text-transform:uppercase;
  letter-spacing:.14em;color:rgba(255,255,255,.8);text-align:left;
  padding-bottom:var(--sp-s);border-bottom:1px dashed rgba(255,255,255,.5);margin-bottom:var(--sp-m);
}
.pg-hero__updates-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-l);}
.pg-update{display:flex;gap:var(--sp-s);align-items:center;text-decoration:none;color:var(--white);text-align:left;}
.pg-update__photo{flex:0 0 auto;width:112px;aspect-ratio:1;border-radius:10px;overflow:hidden;}
.pg-update__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.pg-update__body{display:flex;flex-direction:column;gap:.3rem;}
.pg-update__date{margin:0;font-family:var(--font-mono);font-size:1.25rem;color:rgba(255,255,255,.75);}
.pg-update__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:2rem;text-transform:uppercase;color:var(--white);}
.pg-update__more{font-size:1.4rem;color:var(--white);letter-spacing:.05em;}
.pg-update{cursor:pointer;}

/* ── UPDATE SIDE SHEET (opens a related post in a slide-in panel) ── */
.pg-sheet{position:fixed;inset:0;z-index:1000;}
.pg-sheet[hidden]{display:none;}
.pg-sheet__backdrop{position:absolute;inset:0;background:rgba(6,20,32,.55);opacity:0;transition:opacity .4s ease;}
.pg-sheet.is-open .pg-sheet__backdrop{opacity:1;}
.pg-sheet__panel{
  position:absolute;top:1.2rem;bottom:1.2rem;right:1.2rem;
  width:min(92vw,46rem);
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--cream);border-radius:24px;
  box-shadow:0 40px 90px -28px rgba(0,10,20,.6);
  transform:translateX(calc(100% + 2.4rem));
  transition:transform .55s cubic-bezier(.16,1,.3,1);
  will-change:transform;
}
.pg-sheet.is-open .pg-sheet__panel{transform:none;}
.pg-sheet__inner{overflow-y:auto;overscroll-behavior:contain;height:100%;}
.pg-sheet__media{position:relative;aspect-ratio:16/11;background:var(--cream);}
.pg-sheet__media img{width:100%;height:100%;object-fit:cover;display:block;}
/* fade the image into the cream body */
.pg-sheet__media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to bottom,rgba(255,248,240,0) 55%,var(--cream) 100%);
}
.pg-sheet--nomedia .pg-sheet__media{display:none;}
.pg-sheet__close{
  position:absolute;top:1.6rem;right:1.6rem;z-index:2;
  width:44px;height:44px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:rgba(6,20,32,.4);color:#fff;
  display:flex;align-items:center;justify-content:center;
  transition:background-color .2s ease,transform .2s ease;
}
.pg-sheet__close:hover{background:rgba(6,20,32,.65);}
.pg-sheet__close:active{transform:scale(.94);}
.pg-sheet__close svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.4;fill:none;}
.pg-sheet__body{padding:clamp(2.4rem,4vw,3.6rem);display:flex;flex-direction:column;align-items:flex-start;}
.pg-sheet__date{margin:0 0 var(--sp-xs);font-family:var(--font-mono);font-size:1.4rem;letter-spacing:.02em;color:var(--brown);}
.pg-sheet__title{margin:0 0 var(--sp-m);font-family:var(--font-display);font-weight:600;font-size:clamp(2.8rem,4vw,3.8rem);line-height:1.02;text-transform:uppercase;letter-spacing:-.01em;color:var(--brown);}
.pg-sheet__content{font-family:var(--font-mono);font-size:1.55rem;line-height:1.7;color:var(--ink);}
.pg-sheet__content > *{margin:0 0 1.2em;}
.pg-sheet__content > *:last-child{margin-bottom:0;}
.pg-sheet__cta{margin-top:var(--sp-l);}

/* scroll lock that compensates the scrollbar width so nothing shifts */
body.pg-scroll-lock{overflow:hidden;padding-right:var(--pg-sbw,0px);}
body.pg-scroll-lock #brx-header{padding-right:var(--pg-sbw,0px);}

/* staggered fade-in of the content once the sheet opens (JS adds .is-in) */
.pg-sheet__media,.pg-sheet__cta{opacity:0;transition:opacity .6s ease;}
.pg-sheet__date,.pg-sheet__title,.pg-sheet__content{
  opacity:0;transform:translateY(14px);
  transition:opacity .55s ease,transform .65s cubic-bezier(.16,1,.3,1);
}
.pg-sheet.is-in .pg-sheet__media{opacity:1;}
.pg-sheet.is-in .pg-sheet__date{opacity:1;transform:none;transition-delay:.12s;}
.pg-sheet.is-in .pg-sheet__title{opacity:1;transform:none;transition-delay:.19s;}
.pg-sheet.is-in .pg-sheet__content{opacity:1;transform:none;transition-delay:.26s;}
.pg-sheet.is-in .pg-sheet__cta{opacity:1;transition-delay:.33s;}

@media (prefers-reduced-motion:reduce){
  .pg-sheet__panel,.pg-sheet__backdrop{transition:none;}
  .pg-sheet__media,.pg-sheet__date,.pg-sheet__title,.pg-sheet__content,.pg-sheet__cta{
    opacity:1;transform:none;transition:none;
  }
}
@media (max-width:600px){
  .pg-sheet__panel{top:0;bottom:0;right:0;width:100vw;border-radius:0;}
}

/* ── SCROLL GALLERY (fallback when a program has no related posts) ──
   BYQ 'truebase' effect, MCSR-skinned: a strip of 3D-perspective cards
   that shows ~5 at once, animates in on load, translates on scroll (no
   autoplay), and lifts each card on hover. Built from the image-gallery
   element ({acf_gallery}); mcsr-gallery-marquee.js clones the set for
   scroll travel, staggers the entrance, and drives the scroll transform. */
.brxe-section.pg-marquee{display:block;background:var(--pcolor,var(--sky));padding-block:var(--sp-l) var(--sp-2xl);overflow:hidden;}
.pg-marquee.pg-hidden{display:none;}
.pg-marquee .bricks-layout-wrapper{
  display:flex !important;grid-template-columns:none !important;flex-wrap:nowrap !important;
  justify-content:flex-start;list-style:none;margin:0;padding:0 5vw;gap:0;align-items:stretch;
  width:max-content;will-change:transform;   /* JS sets translateX from scroll */
}
.pg-marquee .bricks-layout-item{
  --lift:0;
  /* --z is set per-card by JS: leading (left) cards get the highest z so each
     card paints ABOVE its right-hand neighbour — the 'truebase' deck look. */
  position:relative;z-index:var(--z,0);
  flex:0 0 auto;width:29rem;height:36rem;margin-right:-2.4rem;
  border-radius:8px;overflow:hidden;transform-style:preserve-3d;
  transform:perspective(300px) rotateY(-12deg) perspective(900px) translateY(var(--lift));
  box-shadow:0 24px 50px -22px rgba(0,26,42,.4);
  /* entrance state — cards deal in from the right (JS toggles .is-in) */
  opacity:0;translate:7rem 0;
  transition:opacity .7s ease,translate .9s cubic-bezier(.16,1,.3,1),
             transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease;
}
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item{opacity:1;translate:0 0;}
/* staggered deal-in for the leading cards */
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item:nth-child(1){transition-delay:0s,0s;}
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item:nth-child(2){transition-delay:0s,.08s;}
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item:nth-child(3){transition-delay:0s,.16s;}
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item:nth-child(4){transition-delay:0s,.24s;}
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item:nth-child(5){transition-delay:0s,.32s;}
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item:nth-child(6){transition-delay:0s,.40s;}
.pg-marquee .bricks-layout-wrapper.is-in .bricks-layout-item:nth-child(7){transition-delay:0s,.48s;}
/* hover — card pulls up and comes to the front */
.pg-marquee .bricks-layout-item:hover{--lift:-2rem;z-index:50;box-shadow:0 44px 72px -20px rgba(0,26,42,.55);}
.pg-marquee .bricks-layout-item figure{margin:0;width:100%;height:100%;}
.pg-marquee .bricks-layout-item img{width:100%;height:100%;object-fit:cover;display:block;}
@media (prefers-reduced-motion:reduce){
  .pg-marquee .bricks-layout-item{opacity:1;translate:0 0;transition:transform .3s ease;}
}
@media (max-width:900px){
  .pg-marquee .bricks-layout-item{width:20rem;height:26rem;margin-right:-1.8rem;}
}
@media (max-width:600px){
  .pg-marquee .bricks-layout-item{width:15rem;height:20rem;margin-right:-1.2rem;}
}

/* ── 50/50 SPLIT (About + Info2) ── */
.brxe-section.pg-split{display:block;background:var(--cream);padding-block:var(--sp-3xl);}
.pg-split__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,5vw,7rem);align-items:center;}
.pg-split__text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-m);}
.pg-split__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--text-2xl);text-transform:uppercase;letter-spacing:-.01em;color:var(--brown);line-height:1.02;}
.pg-split__body{font-family:var(--font-mono);font-size:var(--fs-body);line-height:1.7;color:var(--ink);}
.pg-split__body p{margin:0 0 1.2em;}
.pg-split__media{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;}
.pg-split__media img{width:100%;height:100%;object-fit:cover;display:block;}
.pg-split__media--bleed{aspect-ratio:16/11;}
.pg-split__play{
  position:absolute;inset:0;margin:auto;width:76px;height:76px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--navy);color:var(--white);font-size:2.4rem;line-height:1;padding-left:.2em;
  text-decoration:none;box-shadow:0 12px 30px -8px rgba(0,26,42,.5);
  transition:transform .25s ease,background-color .25s ease;
}
.pg-split__play:hover{transform:scale(1.08);background:var(--gold);color:var(--brown);}
.pg-split__grid--textleft .pg-split__text{order:1;}
.pg-split__grid--textleft .pg-split__media{order:2;}

/* ── TESTIMONIAL CAROUSEL (avatars) ── */
.brxe-section.pg-quotes{display:block;background:var(--gold);padding-block:var(--sp-3xl);}
.pg-quotes__inner{display:flex;flex-direction:column;align-items:center;gap:var(--sp-l);}
.pg-quotes__controls{display:flex;align-items:center;gap:var(--sp-m);}
.pg-quotes__arrow{
  width:4.6rem;height:4.6rem;border-radius:50%;flex:0 0 auto;border:0;cursor:pointer;
  background:transparent;color:var(--brown);font-size:2.2rem;line-height:1;
  transition:background-color .2s ease,opacity .2s ease;
}
.pg-quotes__arrow:hover:not(:disabled){background:rgba(82,44,37,.12);}
.pg-quotes__arrow:disabled{opacity:.3;cursor:default;}
.pg-quotes__avatars{display:flex;gap:1rem;align-items:center;}
.pg-quotes__avatar{
  width:5.4rem;height:5.4rem;border-radius:50%;padding:0;border:2px solid transparent;
  overflow:hidden;cursor:pointer;background:none;opacity:.55;
  transition:opacity .25s ease,border-color .25s ease,transform .25s ease;
}
.pg-quotes__avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.pg-quotes__avatar:hover{opacity:.85;}
.pg-quotes__avatar.is-active{opacity:1;border-color:var(--navy);transform:scale(1.06);}
.pg-quotes__viewport{width:100%;max-width:92rem;overflow:hidden;}
.pg-quotes__track{display:flex;transition:transform .5s var(--roll-ease);}
.pg-quotes__slide{flex:0 0 100%;margin:0;padding:0 var(--sp-m);text-align:center;border:0;}
.pg-quotes__text{
  margin:0 0 var(--sp-m);font-family:var(--font-display);font-weight:600;
  font-size:clamp(2.2rem,2.8vw,3.4rem);line-height:1.3;letter-spacing:-.01em;color:var(--brown);
}
.pg-quotes__text::before{content:"\201C";}
.pg-quotes__text::after{content:"\201D";}
.pg-quotes__attr{font-family:var(--font-mono);font-size:1.4rem;text-transform:uppercase;letter-spacing:.06em;color:var(--brown);}
@media (prefers-reduced-motion:reduce){ .pg-quotes__track{transition:none;} }

/* ── CURRICULUM CALLOUT ── */
.brxe-section.pg-callout{display:block;background:var(--cream);padding-block:var(--sp-3xl);padding-inline:clamp(1.6rem,5vw,6rem);}
.pg-callout__box{
  display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2.4rem,4vw,5rem);
  max-width:100rem;margin-inline:auto;
  background:var(--white);
  border:2px dashed rgba(82,44,37,.42);border-radius:20px;padding:clamp(2.8rem,4vw,4.5rem);
}
.pg-callout__title{margin:0 0 var(--sp-m);font-family:var(--font-display);font-weight:600;font-size:2.6rem;line-height:1.05;text-transform:uppercase;letter-spacing:-.005em;color:var(--brown);}
.pg-callout__intro{margin:0;font-family:var(--font-mono);font-size:var(--fs-body);line-height:1.7;color:var(--ink);}
.pg-callout__points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-s);}
.pg-callout__point{position:relative;padding-left:1.6rem;font-family:var(--font-mono);font-size:1.5rem;line-height:1.55;color:var(--ink);}
.pg-callout__point::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--navy);}

/* ── FULL-BLEED MAP ── */
.brxe-section.pg-map{display:block;position:relative;background:var(--cream);}
.mcsr-map{ --map-fill:var(--gold); --map-pin:var(--navy); position:relative; }
.mcsr-map__canvas{position:relative;width:100%;aspect-ratio:1000/560;overflow:hidden;}
.mcsr-map__usa,.mcsr-map__pins{position:absolute;inset:0;width:100%;height:100%;}
.mcsr-map__usa path{fill:var(--map-fill);stroke:var(--cream);stroke-width:.4;}
/* gold gradient sheen over the states */
.mcsr-map__canvas::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(135deg, rgba(255,249,242,.55) 0%, rgba(255,249,242,0) 42%);
  mix-blend-mode:screen;
}
.mcsr-map__pins{z-index:2;overflow:visible;}
.mcsr-map__pin-drop{fill:var(--map-pin);}
.mcsr-map__pin-dot{fill:var(--cream);}
.mcsr-map__tip{opacity:0;transition:opacity .18s ease;}
.mcsr-map__pin:hover .mcsr-map__tip,.mcsr-map__pin:focus .mcsr-map__tip{opacity:1;}
.mcsr-map__pin{outline:none;}
.mcsr-map__tip-bg{fill:var(--navy);}
.mcsr-map__tip-text{fill:var(--cream);font-family:var(--font-mono);font-size:3.6px;letter-spacing:.02em;}
/* center overlay */
.pg-map__overlay{
  position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;gap:var(--sp-m);
  padding:var(--gutter);pointer-events:none;
}
.pg-map__intro{margin:0;max-width:46ch;font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,2.6vw,3rem);line-height:1.25;color:var(--navy);}
.pg-map__overlay .mcsr-cta{pointer-events:auto;}

/* ── SIBLING PROGRAMS ── */
.brxe-section.pg-siblings{display:block;background:var(--cream);padding-block:var(--sp-2xl) var(--sp-3xl);}
.pg-siblings__title{margin-bottom:var(--sp-xl);}
.pg-siblings__row{display:grid;grid-template-columns:repeat(auto-fill,minmax(26rem,28rem));gap:var(--sp-l);}
.pg-sibling{ --pcolor:var(--sky); display:flex;flex-direction:column;background:var(--pcolor);border-radius:14px;overflow:hidden;padding:1.6rem 1.6rem 0;}
.pg-sibling__photo{aspect-ratio:16/11;border-radius:10px;overflow:hidden;flex:0 0 auto;}
.pg-sibling__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.pg-sibling__body{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;padding:var(--sp-s) 0 1.6rem;color:#fff;}
.pg-sibling__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--text-l);text-transform:uppercase;color:#fff;}
.pg-sibling__desc{margin:0;font-family:var(--font-mono);font-size:1.4rem;line-height:1.55;color:rgba(255,255,255,.92);}
.pg-sibling__more{font-family:var(--font-display);font-weight:600;font-size:1.7rem;text-transform:uppercase;letter-spacing:.04em;color:#fff;margin-top:auto;}

/* sections flagged empty by program-single.js */
.pg-hidden{display:none;}

@media (max-width:900px){
  .pg-hero__updates-row{grid-template-columns:1fr;}
  .pg-split__grid{grid-template-columns:1fr;gap:var(--sp-l);}
  .pg-split__grid--textleft .pg-split__media{order:1;}
  .pg-split__grid--textleft .pg-split__text{order:2;}
  .pg-callout__box{grid-template-columns:1fr;}
  .pg-siblings__row{grid-template-columns:1fr;max-width:46rem;}
  .mcsr-map__tip-text{font-size:5px;}
}
