/*
 * PB Band Pages: shared design system.
 * All colours and fonts come from the band profile as --pbbp-* variables (emitted by the plugin).
 * Every rule is scoped under .pbbp so it cannot leak into the theme. Nothing here targets a specific theme.
 */

.pbbp{
  /* break out of any theme content column to full width */
  width:100vw;position:relative;left:50%;margin-left:-50vw;margin-right:-50vw;
  background:var(--pbbp-bg);color:var(--pbbp-text);
  font:400 17px/1.7 var(--pbbp-sans);-webkit-font-smoothing:antialiased;overflow-x:clip;
}
.pbbp *,.pbbp *::before,.pbbp *::after{box-sizing:border-box}
.pbbp img{max-width:100%;height:auto;display:block;border:0;box-shadow:none;margin:0}
.pbbp a{text-decoration:none;box-shadow:none}
.pbbp h1,.pbbp h2,.pbbp h3,.pbbp p,.pbbp figure,.pbbp article,.pbbp blockquote,.pbbp ol,.pbbp ul,.pbbp li{margin:0;padding:0;border:0;background:none;text-transform:none}
.pbbp ol,.pbbp ul{list-style:none}
.pbbp p{color:inherit;font:inherit}
.pbbp-wrap{width:min(1120px,100% - 40px);margin-inline:auto}

/* ---- type ---- */
.pbbp-kicker{display:block;font-size:12px;font-weight:800;letter-spacing:.4em;text-transform:uppercase;color:var(--pbbp-accent)}
.pbbp h2{font:600 clamp(34px,5vw,60px)/1.1 var(--pbbp-serif);color:var(--pbbp-heading);margin:12px 0 22px;letter-spacing:normal}
.pbbp h3{font:600 28px/1.2 var(--pbbp-serif);color:var(--pbbp-heading);margin:8px 0 4px}
.pbbp-rule{width:64px;height:3px;background:linear-gradient(90deg,var(--pbbp-accent2),var(--pbbp-accent));border-radius:2px;margin-bottom:26px}
.pbbp p.pbbp-lead{font:italic 400 clamp(22px,2.6vw,30px)/1.4 var(--pbbp-serif);color:var(--pbbp-heading);margin-bottom:24px}
.pbbp p.pbbp-intro{max-width:620px}
.pbbp-sec{padding:clamp(70px,10vw,130px) 0}
.pbbp-alt{background:var(--pbbp-bg2);border-block:1px solid var(--pbbp-line)}
.pbbp-split{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.pbbp-split p+p{margin-top:18px}

/* ---- buttons ---- */
.pbbp-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.pbbp a.pbbp-btn{display:inline-block;padding:16px 30px;border-radius:5px;font:800 13px/1.2 var(--pbbp-sans);letter-spacing:.2em;text-transform:uppercase;transition:transform .2s,background .2s,border-color .2s,color .2s}
.pbbp a.pbbp-btn--primary{background:var(--pbbp-accent);color:#fff;box-shadow:0 10px 30px -10px rgba(var(--pbbp-accent-rgb),.8)}
.pbbp a.pbbp-btn--primary:hover{background:var(--pbbp-accent-hi);transform:translateY(-2px)}
.pbbp a.pbbp-btn--ghost{border:1.5px solid rgba(255,255,255,.55);color:#fff;background:transparent}
.pbbp a.pbbp-btn--ghost:hover{border-color:var(--pbbp-accent-hi);color:var(--pbbp-accent-hi);transform:translateY(-2px)}

/* ---- hero (shared by every page; each page adds its own modifier) ---- */
.pbbp-hero{position:relative;display:grid;place-items:center;text-align:center;overflow:hidden;isolation:isolate;
  min-height:calc(90vh - var(--pbbp-vh-off,0px));min-height:calc(90svh - var(--pbbp-vh-off,0px));
  padding:calc(80px + var(--pbbp-header-offset,0px)) 0 80px}
.pbbp-hero__bg{position:absolute;inset:0;z-index:-2;background-position:center 30%;background-size:cover;transform:scale(1.08);animation:pbbp-drift 24s ease-out forwards}
.pbbp-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
  radial-gradient(ellipse at 50% 55%,rgba(0,0,0,.62),rgba(0,0,0,.25) 60%),
  linear-gradient(to bottom,rgba(var(--pbbp-bg-rgb),.55) 0,rgba(var(--pbbp-bg-rgb),0) 25%,rgba(var(--pbbp-bg-rgb),0) 60%,var(--pbbp-bg) 100%)}
.pbbp-hero::after{content:"";position:absolute;inset:0 0 auto 0;height:220px;z-index:-1;background:linear-gradient(to bottom,rgba(10,10,10,.8),rgba(10,10,10,0))}
@keyframes pbbp-drift{to{transform:scale(1)}}
.pbbp-eyebrow{display:inline-block;font-size:13px;font-weight:800;letter-spacing:.42em;text-transform:uppercase;color:var(--pbbp-accent-hi);margin-bottom:18px}
.pbbp .pbbp-title{font:800 clamp(52px,11vw,160px)/.95 var(--pbbp-serif);color:var(--pbbp-heading);letter-spacing:-.02em;text-shadow:0 6px 50px rgba(0,0,0,.6)}
.pbbp-title em{font-style:italic;font-weight:400;color:var(--pbbp-accent-hi)}
.pbbp p.pbbp-tag{margin:26px auto 40px;max-width:640px;font-size:clamp(17px,2vw,21px);color:#e6e6e6;text-shadow:0 2px 20px rgba(0,0,0,.7)}

/* ---- ticker ---- */
.pbbp-ticker{background:var(--pbbp-accent);color:#06262b;overflow:hidden;white-space:nowrap;border-block:1px solid rgba(0,0,0,.2)}
.pbbp-ticker>div{display:inline-flex;gap:46px;padding:15px 0;animation:pbbp-tick 32s linear infinite;font:800 14px var(--pbbp-sans);letter-spacing:.3em;text-transform:uppercase}
.pbbp-ticker span::after{content:"✦";margin-left:46px;opacity:.55}
@keyframes pbbp-tick{to{transform:translateX(-50%)}}

/* ---- pull quote ---- */
.pbbp-quote{border-left:3px solid var(--pbbp-accent);padding:8px 0 8px 28px}
.pbbp-quote p{font:italic 400 24px/1.45 var(--pbbp-serif);color:#ddd}
.pbbp-quote small{display:block;margin-top:14px;font:800 12px var(--pbbp-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--pbbp-accent)}

/* ---- member cards ---- */
.pbbp-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:50px}
.pbbp-member{background:var(--pbbp-panel);border:1px solid var(--pbbp-line);border-radius:8px;padding:38px 30px;position:relative;overflow:hidden;transition:transform .3s,border-color .3s}
.pbbp-member::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--pbbp-accent2),var(--pbbp-accent));transform:scaleX(0);transform-origin:left;transition:transform .4s}
.pbbp-member:hover{transform:translateY(-6px);border-color:#3a3a3a}
.pbbp-member:hover::before{transform:scaleX(1)}
.pbbp-n{font:800 64px/1 var(--pbbp-serif);color:rgba(var(--pbbp-accent-rgb),.18)}
.pbbp-role{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--pbbp-accent)}
.pbbp-member p{margin-top:14px;font-size:15px}

/* ---- photo gallery ---- */
.pbbp-gallery{background:var(--pbbp-bg2);border-block:1px solid var(--pbbp-line)}
.pbbp-gallery figure,.pbbp-strip{overflow:hidden;border-radius:8px;border:1px solid var(--pbbp-line)}
.pbbp-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease,filter .4s;filter:saturate(.9) contrast(1.05)}
.pbbp-gallery figure:hover img{transform:scale(1.05);filter:none}
.pbbp .pbbp-strip{margin-top:46px}
.pbbp-duo{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:24px;margin-top:24px;align-items:stretch}
.pbbp-duo figure{aspect-ratio:4/5}
.pbbp-duo__txt{display:flex;flex-direction:column;justify-content:center;gap:14px;padding-left:20px}
.pbbp-duo__txt .pbbp-lead{margin:0}
.pbbp-duo__txt .pbbp-btn{align-self:flex-start;margin-top:10px}

/* ---- link tiles ---- */
.pbbp-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px}
.pbbp a.pbbp-tile{position:relative;min-height:280px;border-radius:8px;padding:34px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--pbbp-panel);border:1px solid var(--pbbp-line);color:var(--pbbp-text);transition:transform .3s,border-color .3s}
.pbbp-tile::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 0,rgba(var(--pbbp-accent-rgb),.22),transparent 60%);transition:opacity .3s;opacity:.7}
.pbbp-tile:hover{transform:translateY(-6px);border-color:var(--pbbp-accent)}
.pbbp-tile:hover::before{opacity:1}
.pbbp-tile>*{position:relative}
.pbbp-tile .pbbp-ic{position:absolute;top:26px;right:30px;font:800 90px/1 var(--pbbp-serif);color:rgba(255,255,255,.05)}
.pbbp-tile h3{font-size:30px;margin:0}
.pbbp-tile p{font-size:15px;margin:8px 0 18px}
.pbbp-go{font-size:12px;font-weight:800;letter-spacing:.25em;text-transform:uppercase;color:var(--pbbp-accent)}
.pbbp-go::after{content:" →";transition:margin .2s}
.pbbp-tile:hover .pbbp-go::after{margin-left:6px}

/* ---- closing call to action ---- */
.pbbp-big{text-align:center;background:radial-gradient(ellipse at 50% 0,rgba(var(--pbbp-accent2-rgb),.35),transparent 65%),var(--pbbp-bg2);border-top:1px solid var(--pbbp-line)}
.pbbp-big h2{font-size:clamp(40px,7vw,92px);max-width:900px;margin-inline:auto}
.pbbp-big h2 em{color:var(--pbbp-accent-hi)}
.pbbp-big p{max-width:560px;margin:0 auto 38px}

/* ---- scroll reveal (content stays visible if the script never runs) ---- */
.pbbp.pbbp-js .pbbp-rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.pbbp.pbbp-js .pbbp-rv.pbbp-in{opacity:1;transform:none}
.pbbp .pbbp-d1{transition-delay:.12s}.pbbp .pbbp-d2{transition-delay:.24s}

@media (max-width:900px){
  .pbbp-split{grid-template-columns:1fr;gap:40px}
  .pbbp-tiles{grid-template-columns:1fr}
  .pbbp-duo{grid-template-columns:1fr 1fr}
  .pbbp-duo__txt{grid-column:1/-1;padding:20px 0 0}
}
@media (prefers-reduced-motion:reduce){
  .pbbp *,.pbbp *::before,.pbbp *::after{animation:none!important;transition:none!important}
  .pbbp.pbbp-js .pbbp-rv{opacity:1;transform:none}
  .pbbp-hero__bg{transform:none}
}

/* ---- page header: shorter than the home hero, text anchored bottom-left ---- */
.pbbp .pbbp-hero--page{
  text-align:left;place-items:end start;
  min-height:calc(78vh - var(--pbbp-vh-off,0px));min-height:calc(78svh - var(--pbbp-vh-off,0px));
  padding-bottom:70px}
.pbbp .pbbp-hero--page .pbbp-hero__bg{background-position:center 22%}
.pbbp .pbbp-hero--page::before{background:
  linear-gradient(to right,rgba(0,0,0,.72),rgba(0,0,0,.25) 65%),
  linear-gradient(to bottom,rgba(var(--pbbp-bg-rgb),0) 55%,var(--pbbp-bg) 100%)}
.pbbp .pbbp-hero--page .pbbp-wrap{width:min(1120px,100% - 40px)}
.pbbp .pbbp-title--page{font-size:clamp(48px,9vw,128px);line-height:.98}
.pbbp .pbbp-hero--page p.pbbp-tag{margin:24px 0 36px;max-width:560px}
.pbbp .pbbp-hero--page .pbbp-cta{justify-content:flex-start}
.pbbp .pbbp-hero--short{min-height:calc(56vh - var(--pbbp-vh-off,0px));min-height:calc(56svh - var(--pbbp-vh-off,0px))}

/* header photo: optional zoom, custom heights and parallax (set per page in the admin) */
.pbbp .pbbp-hero__bg{scale:var(--pbbp-zoom,1)}
.pbbp .pbbp-hero__bg[data-pbbp-parallax]{inset:-14% 0;animation:none;transform:none;will-change:transform}
.pbbp .pbbp-hero.pbbp-hh-compact{min-height:calc(40vh - var(--pbbp-vh-off,0px));min-height:calc(40svh - var(--pbbp-vh-off,0px))}
.pbbp .pbbp-hero.pbbp-hh-medium{min-height:calc(60vh - var(--pbbp-vh-off,0px));min-height:calc(60svh - var(--pbbp-vh-off,0px))}
.pbbp .pbbp-hero.pbbp-hh-tall{min-height:calc(80vh - var(--pbbp-vh-off,0px));min-height:calc(80svh - var(--pbbp-vh-off,0px))}
.pbbp .pbbp-hero.pbbp-hh-full{min-height:calc(100vh - var(--pbbp-vh-off,0px));min-height:calc(100svh - var(--pbbp-vh-off,0px))}

/* ---- facts band ---- */
.pbbp-facts{background:var(--pbbp-panel);border-block:1px solid var(--pbbp-line)}
.pbbp-facts__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.pbbp-fact{padding:38px 28px;text-align:center;border-left:1px solid var(--pbbp-line)}
.pbbp-fact:first-child{border-left:0}
.pbbp-fact strong{display:block;font:800 clamp(40px,5vw,64px)/1 var(--pbbp-serif);color:var(--pbbp-accent-hi)}
.pbbp-fact span{display:block;margin-top:10px;font-size:13px;letter-spacing:.14em;text-transform:uppercase}

.pbbp .pbbp-minor{font:800 12px/1.4 var(--pbbp-sans);letter-spacing:.32em;text-transform:uppercase;color:var(--pbbp-accent);margin:0 0 16px;padding-top:44px}
@media (max-width:900px){
  .pbbp-fact{border-left:0;border-top:1px solid var(--pbbp-line)}
  .pbbp-fact:first-child{border-top:0}
}
.pbbp .pbbp-hero__fill{position:absolute;inset:-6%;z-index:-3;background-size:cover;background-position:center;filter:blur(22px) brightness(.55)}
