/* Barbara Barker Legacy Foundation — preview stylesheet v1 */
:root{
  --ivory:#FFFCF9;
  --white:#FFFFFF;
  --blush:#FBEFF0;
  --blush-2:#F6E1E4;
  --rose:#DC7A86;
  --rose-deep:#B5566A;
  --plum:#6E3A55;
  --text:#4A4245;
  --text-soft:#7A6F73;
  --line:#EBDCDF;
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:"Lato", "Helvetica Neue", Arial, sans-serif;
  --max:1160px;
  --radius:4px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--text);background:var(--ivory);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--rose-deep);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--plum)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;color:var(--plum);line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,5vw,3.8rem)}
h2{font-size:clamp(1.9rem,3.4vw,2.7rem)}
h3{font-size:1.55rem}
p{margin:0 0 1.1em}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 28px}
.narrow{max-width:780px}
.center{text-align:center}
.eyebrow{font-family:var(--sans);font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--rose-deep);font-weight:700;margin-bottom:.9em;display:block}
.flourish{display:block;width:72px;height:1px;background:var(--rose);margin:22px auto;position:relative}
.flourish::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;background:var(--ivory);border:1px solid var(--rose);transform:translate(-50%,-50%) rotate(45deg)}
.flourish.left{margin-left:0}
.flourish.left::after{left:36px}

/* placeholders */
.ph{background:#FFF3C9;color:#7A5A00;border:1px dashed #D9B44A;border-radius:3px;padding:0 .35em;font-style:italic;font-size:.95em;font-family:var(--sans)}
.ph-block{background:#FFF8E1;border:1px dashed #D9B44A;color:#7A5A00;border-radius:var(--radius);padding:18px 20px;font-style:italic;font-size:.95rem;margin:0 0 1.2em}
.photo{position:relative;background:linear-gradient(135deg,#F9E3E6 0%,#F3D2D8 45%,#EBD9E4 100%);border-radius:var(--radius);display:flex;align-items:flex-end;justify-content:flex-start;min-height:260px;overflow:hidden}
.photo::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 25%,rgba(255,255,255,.55),transparent 55%)}
.photo span{position:relative;margin:14px;background:rgba(255,255,255,.85);color:var(--plum);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;border-radius:2px;font-weight:700}
.photo.tall{min-height:420px}
.photo.short{min-height:180px}
.photo.round{border-radius:50%;min-height:0;aspect-ratio:1/1;align-items:center;justify-content:center}
.photo.round span{margin:0;font-size:.6rem;padding:4px 7px}

/* preview banner */
.preview-bar{background:var(--plum);color:#fff;text-align:center;font-size:.78rem;letter-spacing:.08em;padding:7px 12px}
.preview-bar .key{background:#FFF3C9;color:#7A5A00;padding:0 6px;border-radius:2px;font-style:italic}

/* header */
.site-header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:86px}
.wordmark{text-decoration:none;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;line-height:1;color:var(--plum)}
.wordmark .wm-top{font-family:var(--serif);font-size:1.55rem;font-weight:500;letter-spacing:.12em;white-space:nowrap;text-transform:uppercase;color:var(--rose-deep)}
.wordmark .wm-bottom{font-family:var(--sans);font-size:.62rem;letter-spacing:.42em;text-transform:uppercase;color:var(--text-soft);margin-top:7px;display:flex;align-items:center;gap:10px;white-space:nowrap;align-self:stretch;justify-content:center}
.wordmark .wm-bottom::before,.wordmark .wm-bottom::after{content:"";height:1px;flex:1;min-width:14px;background:var(--rose)}
.wordmark:hover .wm-top{color:var(--plum)}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px}
.main-nav a{display:block;padding:8px 9px;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text);text-decoration:none;font-weight:700;white-space:nowrap}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--rose-deep)}
.main-nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--rose)}
.main-nav .nav-give a{background:var(--rose-deep);color:#fff;border-radius:2px;padding:9px 18px;margin-left:8px}
.main-nav .nav-give a:hover{background:var(--plum);color:#fff}
.main-nav .nav-give a[aria-current="page"]{box-shadow:none;background:var(--plum)}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:3px;padding:10px 12px;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--plum);margin:4px 0;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1180px){
  .nav-toggle{display:block}
  .main-nav{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);display:none;box-shadow:0 12px 24px rgba(110,58,85,.08)}
  .main-nav.open{display:block}
  .main-nav ul{flex-direction:column;align-items:stretch;padding:10px 28px 22px;gap:0}
  .main-nav li{border-bottom:1px solid var(--line)}
  .main-nav li.nav-give{border:0;margin-top:14px}
  .main-nav a{padding:14px 0}
  .main-nav a[aria-current="page"]{box-shadow:none}
  .main-nav .nav-give a{margin:0;text-align:center;padding:14px}
}

/* buttons */
.btn{display:inline-block;font-family:var(--sans);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;text-decoration:none;padding:15px 30px;border-radius:2px;border:1px solid var(--rose-deep);transition:.2s;text-align:center}
.btn-primary{background:var(--rose-deep);color:#fff}
.btn-primary:hover{background:var(--plum);border-color:var(--plum);color:#fff}
.btn-outline{background:transparent;color:var(--rose-deep)}
.btn-outline:hover{background:var(--rose-deep);color:#fff}
.btn-light{background:#fff;color:var(--plum);border-color:#fff}
.btn-light:hover{background:transparent;color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}
.btn-row.center{justify-content:center}

/* sections */
section{padding:96px 0}
.bg-blush{background:var(--blush)}
.bg-white{background:var(--white)}
.bg-plum{background:var(--plum);color:#F4E6EB}
.bg-plum h2,.bg-plum h3{color:#fff}
.bg-plum .eyebrow{color:#F2B9C2}
.section-head{text-align:center;max-width:720px;margin:0 auto 56px}
.lead{font-size:1.15rem;color:var(--text-soft)}

/* hero */
.hero{position:relative;padding:0;min-height:640px;display:flex;align-items:center;background:linear-gradient(120deg,#F7DCE1 0%,#F1CDD5 40%,#E6D3E0 100%);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 30%,rgba(255,255,255,.6),transparent 60%),linear-gradient(90deg,rgba(255,252,249,.92) 0%,rgba(255,252,249,.75) 45%,rgba(255,252,249,0) 75%)}
.hero .photo-label{position:absolute;right:24px;bottom:22px;background:rgba(255,255,255,.85);color:var(--plum);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;border-radius:2px;font-weight:700}
.hero-content{position:relative;max-width:640px;padding:90px 0}
.hero h1{margin-bottom:.35em}
.hero h1 em{font-style:italic;color:var(--rose-deep)}
.hero .mission{font-family:var(--serif);font-size:1.32rem;line-height:1.55;color:var(--text);margin-bottom:2em}

.page-hero{padding:90px 0 80px;background:linear-gradient(180deg,var(--blush) 0%,var(--ivory) 100%);text-align:center;border-bottom:1px solid var(--line)}
.page-hero p{max-width:640px;margin:0 auto;color:var(--text-soft);font-size:1.12rem}

/* grids & cards */
.grid{display:grid;gap:32px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px 30px;transition:.25s}
.card:hover{box-shadow:0 14px 34px rgba(110,58,85,.08);transform:translateY(-2px)}
.card h3{margin-bottom:.35em}
.card .photo{margin:-34px -30px 26px;border-radius:var(--radius) var(--radius) 0 0;min-height:200px}
.card .more{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;text-decoration:none}
.icon-num{font-family:var(--serif);font-size:2.6rem;color:var(--rose);line-height:1;display:block;margin-bottom:10px}

.pathways .card{text-align:center}

blockquote.mission-quote{font-family:var(--serif);font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.55;font-style:italic;color:var(--plum);margin:0 auto;max-width:860px;text-align:center}

.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pillars div{padding:40px 30px;text-align:center}
.pillars div+div{border-left:1px solid var(--line)}
.pillars h3{font-size:1.4rem}

.person{text-align:center}
.person .photo.round{width:150px;margin:0 auto 18px}
.person h4{font-size:1.25rem;margin-bottom:.15em}
.person p{font-size:.9rem;color:var(--text-soft)}

.levels{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
.levels th,.levels td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.levels th{font-family:var(--sans);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep);background:var(--blush)}
.levels td:first-child{font-family:var(--serif);font-size:1.2rem;color:var(--plum)}
.table-wrap{overflow-x:auto}

.event{display:grid;grid-template-columns:110px 1fr auto;gap:28px;align-items:center;background:#fff;border:1px solid var(--line);padding:26px 30px;border-radius:var(--radius)}
.event + .event{margin-top:16px}
.event .date{text-align:center;border-right:1px solid var(--line);padding-right:24px}
.event .date .m{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rose-deep);font-weight:700}
.event .date .d{display:block;font-family:var(--serif);font-size:2.4rem;color:var(--plum);line-height:1.1}
.event h3{font-size:1.45rem;margin-bottom:.2em}
.event p{margin:0;color:var(--text-soft);font-size:.95rem}

.give-amounts{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 22px}
.give-amounts a{flex:1 1 80px;text-align:center;padding:14px 8px;border:1px solid var(--line);border-radius:2px;text-decoration:none;color:var(--plum);font-family:var(--serif);font-size:1.35rem;background:#fff}
.give-amounts a:hover{border-color:var(--rose);background:var(--blush)}
.toggle{display:inline-flex;border:1px solid var(--rose-deep);border-radius:2px;overflow:hidden;margin-bottom:6px}
.toggle a{padding:10px 22px;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;text-decoration:none;color:var(--rose-deep)}
.toggle a.on{background:var(--rose-deep);color:#fff}
.give-box{background:#fff;border:1px solid var(--line);border-top:4px solid var(--rose);padding:40px;border-radius:var(--radius);box-shadow:0 20px 50px rgba(110,58,85,.07)}
.tier{border-top:3px solid var(--rose)}
.tier .amt{font-family:var(--serif);font-size:1.9rem;color:var(--rose-deep);display:block;margin-bottom:6px}
.legal-line{font-size:.9rem;color:var(--text-soft);border-top:1px solid var(--line);padding-top:22px;margin-top:10px}

.check-list{list-style:none;padding:0;margin:0 0 1.2em}
.check-list li{padding-left:28px;position:relative;margin-bottom:.55em}
.check-list li::before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border:1px solid var(--rose);transform:rotate(45deg)}

/* forms */
form .field{margin-bottom:18px}
label{display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--plum);margin-bottom:6px}
input,select,textarea{width:100%;font:inherit;font-size:1rem;padding:13px 14px;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--rose);outline-offset:1px;border-color:var(--rose)}
textarea{min-height:150px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.inline-form{display:flex;gap:10px;max-width:520px;margin:0 auto}
.inline-form input{flex:1}
.note{font-size:.85rem;color:var(--text-soft);font-style:italic}

/* news */
.post .meta{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-deep);font-weight:700;display:block;margin-bottom:8px}
.feature-post{display:grid;grid-template-columns:1.2fr 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.feature-post .photo{border-radius:0;min-height:360px}
.feature-post .body{padding:48px}

/* cta band */
.cta-band{background:linear-gradient(120deg,var(--rose-deep),var(--plum));color:#fff;text-align:center;padding:84px 0}
.cta-band h2{color:#fff}
.cta-band p{color:#F4E1E7;max-width:620px;margin:0 auto 28px}

/* footer */
.site-footer{background:#3E2433;color:#E5D3DA;padding:72px 0 28px;font-size:.92rem}
.site-footer a{color:#F2C3CB;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:44px}
.site-footer h4{font-family:var(--sans);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;margin-bottom:16px;font-weight:700}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:8px}
.site-footer .wordmark .wm-top{color:#fff}
.site-footer .wordmark .wm-bottom{color:#D8B9C4}
.footer-legal{border-top:1px solid rgba(255,255,255,.14);margin-top:56px;padding-top:26px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:.8rem;color:#C9AFBA}
.footer-legal .disclosure{max-width:720px}
.site-footer .ph{background:rgba(255,243,201,.16);color:#FFE7A3;border-color:rgba(217,180,74,.6)}
.social{display:flex;gap:10px;margin-top:14px}
.social a{width:38px;height:38px;border:1px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;letter-spacing:.05em}

/* responsive */
@media (max-width:960px){
  section{padding:72px 0}
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:40px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .feature-post{grid-template-columns:1fr}
  .feature-post .photo{min-height:240px}
  .pillars{grid-template-columns:1fr}
  .pillars div+div{border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:640px){
  body{font-size:16px}
  .container{padding:0 20px}
  section{padding:60px 0}
  .g2,.g3,.g4,.form-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:34px}
  .header-inner{min-height:72px}
  .wordmark .wm-top{font-size:1.28rem;letter-spacing:.1em}
  .wordmark .wm-bottom{font-size:.54rem;letter-spacing:.3em}
  .hero{min-height:0}
  .hero::before{background:linear-gradient(180deg,rgba(255,252,249,.88),rgba(255,252,249,.7))}
  .hero-content{padding:64px 0 90px}
  .hero .mission{font-size:1.15rem}
  .btn-row .btn{flex:1 1 100%}
  .event{grid-template-columns:1fr;gap:14px;text-align:left}
  .event .date{border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px;text-align:left;display:flex;gap:10px;align-items:baseline}
  .give-box{padding:26px 22px}
  .feature-post .body{padding:30px 24px}
  .inline-form{flex-direction:column}
  .section-head{margin-bottom:40px}
}

/* building campaign */
.campaign{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.campaign-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}
.campaign-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.campaign-photos .photo:first-child{grid-column:1/-1;min-height:300px}
.campaign-photos .photo{min-height:170px}
.campaign-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--line);margin:24px 0 26px;background:var(--ivory)}
.campaign-facts div{padding:16px 18px;border-bottom:1px solid var(--line)}
.campaign-facts div:nth-child(odd){border-right:1px solid var(--line)}
.campaign-facts div:nth-last-child(-n+2){border-bottom:0}
.campaign-facts small{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep);font-weight:700;margin-bottom:4px}
.progress{height:12px;background:var(--blush-2);border-radius:20px;overflow:hidden;margin:6px 0 8px}
.progress span{display:block;height:100%;width:35%;background:repeating-linear-gradient(45deg,var(--rose),var(--rose) 8px,#E89AA4 8px,#E89AA4 16px)}
.progress-label{font-size:.85rem;color:var(--text-soft)}
.badge{display:inline-block;background:var(--rose-deep);color:#fff;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;padding:5px 12px;border-radius:20px;font-weight:700;margin-bottom:14px}
.studio-list{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.studio-list .card{text-align:center;padding:26px 18px}
@media (max-width:960px){.campaign-grid{grid-template-columns:1fr;gap:40px}.studio-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.campaign-facts{grid-template-columns:1fr}.campaign-facts div:nth-child(odd){border-right:0}.campaign-facts div:nth-last-child(2){border-bottom:1px solid var(--line)}.campaign-photos .photo:first-child{min-height:220px}}

/* countdown */
.countdown-wrap{background:var(--blush);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;text-align:center}
.countdown-wrap h3{font-size:1.7rem;margin-bottom:.15em}
.countdown-wrap .sub{font-size:.85rem;color:var(--text-soft);margin-bottom:16px}
.countdown{display:flex;justify-content:center;gap:10px;margin:8px 0 18px}
.countdown .unit{min-width:78px;background:#fff;border:1px solid var(--line);border-radius:3px;padding:12px 6px 10px}
.countdown .num{display:block;font-family:var(--serif);font-size:2.9rem;line-height:1;color:var(--rose);font-weight:500;font-variant-numeric:lining-nums tabular-nums}
.countdown .lbl{display:block;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plum);font-weight:700;margin-top:6px}
.countdown-done{font-family:var(--serif);font-size:2rem;color:var(--rose-deep);font-style:italic;margin:10px 0 18px}
.countdown-wrap.compact{padding:20px;text-align:left;display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;justify-content:space-between}
.countdown-wrap.compact h3{font-size:1.35rem;margin:0}
.countdown-wrap.compact .countdown{margin:0;gap:8px}
.countdown-wrap.compact .unit{min-width:62px;padding:8px 4px}
.countdown-wrap.compact .num{font-size:2rem}
.countdown-wrap.compact .lbl{font-size:.55rem}
.scripture{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--plum);text-align:center;max-width:720px;margin:0 auto}
.scripture cite{display:block;font-style:normal;font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rose-deep);margin-top:10px}
@media (max-width:640px){.countdown{gap:6px}.countdown .unit{min-width:0;flex:1}.countdown .num{font-size:2.1rem}.countdown .lbl{font-size:.52rem;letter-spacing:.12em}.countdown-wrap.compact{flex-direction:column;align-items:stretch;text-align:center}.countdown-wrap.compact .countdown{width:100%}}
@media (max-width:960px){.campaign-grid > div:last-child{order:-1}}
h1 .ph,h2 .ph,h3 .ph,h4 .ph,.event .d .ph{font-size:.6em;vertical-align:middle;font-weight:400}
.tier .amt .ph{font-size:.6em;vertical-align:middle}

/* v2: hero video + renderings */
.hero::before{z-index:1}
.hero .container{position:relative;z-index:2}
.hero .photo-label{z-index:2;text-transform:none;letter-spacing:.04em;font-weight:400;font-size:.72rem}
figure.rend{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
figure.rend img{width:100%;aspect-ratio:16/9;object-fit:cover}
figure.rend figcaption{font-size:.72rem;color:var(--text-soft);padding:8px 12px;line-height:1.4}
.campaign-photos figure.rend:first-child{grid-column:1/-1}
.card figure.card-fig{margin:-34px -30px 26px;border:0;border-radius:var(--radius) var(--radius) 0 0}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
figure.rend.plan{max-width:1000px;margin:26px auto 0}
figure.rend.plan img{aspect-ratio:auto;object-fit:contain}
.plan-list{list-style:none;padding:0;margin:22px auto 0;max-width:1000px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px 20px;font-size:.88rem}
.plan-list strong{display:block;font-family:var(--serif);font-size:1.1rem;font-weight:500;color:var(--plum)}
.studio-list .dims{font-size:.85rem;color:var(--text-soft);margin-bottom:.4em}
.feature-img{width:100%;height:100%;object-fit:cover;min-height:360px}
@media (max-width:960px){.gallery{grid-template-columns:repeat(2,1fr)}.plan-list{grid-template-columns:repeat(2,1fr)}.feature-img{min-height:240px}}
@media (max-width:640px){.gallery{grid-template-columns:1fr}.hero .photo-label{left:20px;right:auto;bottom:16px}}

/* v3 */
.hero{background-color:#8078F8;background-image:url(../images/hero/hero-ballet-dancers.jpg);background-size:contain;background-repeat:no-repeat;background-position:right center}
@media (max-width:640px){.hero{background-position:center top}}

.goal-sm{font-family:var(--serif);font-size:1.6rem;font-weight:500;color:var(--rose-deep);line-height:1.1}
.campaign-lower{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:64px;align-items:start}
.timeline{list-style:none;margin:18px 0 0;padding:0 0 0 26px;border-left:2px solid var(--blush-2)}
.timeline li{position:relative;padding:0 0 24px}
.timeline li::before{content:"";position:absolute;left:-34px;top:6px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--rose)}
.timeline li:last-child::before{background:var(--rose)}
.timeline .when{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep);font-weight:700}
.timeline strong{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:500;color:var(--plum)}
.timeline .what{display:block;font-size:.95rem;color:var(--text-soft)}
.video-slot{margin-top:18px;aspect-ratio:16/9;border-radius:var(--radius);background:linear-gradient(135deg,#F9E3E6,#EBD9E4);display:flex;align-items:center;justify-content:center;position:relative;border:1px dashed #D9B44A}
.video-slot::before{content:"";position:absolute;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.85);top:calc(50% - 64px);left:calc(50% - 32px)}
.video-slot::after{content:"";position:absolute;top:calc(50% - 44px);left:calc(50% - 7px);border-left:20px solid var(--rose-deep);border-top:12px solid transparent;border-bottom:12px solid transparent}
.video-slot .ph{position:relative;margin-top:60px}
.map-embed{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:14px;background:var(--blush)}
.map-embed iframe{display:block}
.goal-banner{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center;background:linear-gradient(120deg,var(--blush),#fff);border:1px solid var(--line);border-left:4px solid var(--rose);border-radius:var(--radius);padding:30px 36px}
.goal-big{display:block;font-family:var(--serif);font-size:clamp(2.8rem,5vw,3.8rem);line-height:1;color:var(--rose-deep);font-weight:500}
.goal-cap{display:block;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plum);font-weight:700;margin-top:6px}
.opt-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}
.opt-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--rose);padding:16px;border-radius:var(--radius)}
.opt-card h4{font-size:1.25rem;margin-bottom:.2em}
.opt-card p{font-size:.88rem;color:var(--text-soft);margin:0}
.giving-contact{font-size:.95rem;background:var(--blush);padding:14px 18px;border-radius:var(--radius)}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rose-deep);border-radius:2px;overflow:hidden;margin-bottom:18px}
.tab{font:inherit;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:12px 6px;background:#fff;color:var(--rose-deep);border:0;cursor:pointer}
.tab+.tab{border-left:1px solid var(--rose-deep)}
.tab.on{background:var(--rose-deep);color:#fff}
.panel-label{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);font-weight:700;margin:0 0 -6px}
.give-amounts small{font-family:var(--sans);font-size:.7rem;color:var(--text-soft)}
.event .date .m{white-space:nowrap}
@media (max-width:960px){.campaign-lower{grid-template-columns:1fr;gap:40px}.goal-banner{grid-template-columns:1fr;gap:18px}}
@media (max-width:640px){.opt-cards{grid-template-columns:1fr}.goal-banner{padding:24px 20px}}
.video-fig{margin:18px 0 0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.video-fig video{display:block;width:100%;aspect-ratio:16/9;background:#EFE6E8}
.video-fig figcaption{font-size:.72rem;color:var(--text-soft);padding:8px 12px;line-height:1.4}
.campaign-lower + .campaign-lower{margin-top:48px}
.campaign-lower.loc{grid-template-columns:1fr 2fr;align-items:center}.campaign-lower.loc .map-embed{margin-top:0}@media (max-width:960px){.campaign-lower.loc{grid-template-columns:1fr}}
/* v3 Zeffy funds */
.fund-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.fund-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--rose);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column}
.fund-card h3{font-size:1.5rem}
.fund-card p{font-size:.95rem}
.fund-card .give-btn{margin-top:auto}
.fund-card.fund-feature{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;gap:10px 40px;border-top-color:var(--rose-deep);background:linear-gradient(120deg,var(--blush),#fff)}
.fund-card.fund-feature h3,.fund-card.fund-feature > p{grid-column:1}
.fund-card.fund-feature .fund-goal{grid-column:2;grid-row:1/span 4}
.fund-card.fund-feature .freq-group,.fund-card.fund-feature .give-btn{grid-column:1;justify-self:start}
.fund-card.is-selected{box-shadow:0 0 0 3px var(--rose)}
.freq-group{display:flex;border:1px solid var(--line);border-radius:2px;overflow:hidden;margin:6px 0 16px}
.freq{flex:1;margin:0;cursor:pointer;text-transform:none;letter-spacing:0}
.freq input{position:absolute;opacity:0;pointer-events:none}
.freq span{display:block;text-align:center;padding:9px 10px;font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--rose-deep);background:#fff;white-space:nowrap}
.freq + .freq span{border-left:1px solid var(--line)}
.freq input:checked + span{background:var(--rose-deep);color:#fff}
.freq input:focus-visible + span{outline:2px solid var(--plum);outline-offset:-2px}
.btn.is-inactive{opacity:.55;cursor:not-allowed}
.zeffy-line{text-align:center;max-width:760px;margin:28px auto 0;font-size:.92rem;color:var(--text-soft)}
.zeffy-embed{background:#fff;border:1px dashed #D9B44A;border-radius:var(--radius);min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;margin-top:14px}
.give-amounts span{flex:1 1 70px;text-align:center;padding:12px 6px;border:1px solid var(--line);border-radius:2px;color:var(--plum);font-family:var(--serif);font-size:1.3rem;background:#fff}
@media (max-width:960px){.fund-grid{grid-template-columns:1fr 1fr}.fund-card.fund-feature{grid-template-columns:1fr}.fund-card.fund-feature .fund-goal{grid-column:1;grid-row:auto}}
@media (max-width:640px){.fund-grid{grid-template-columns:1fr}}
.g5{grid-template-columns:repeat(5,1fr)}
.g5 .person .photo.round{width:130px}
.staff-block{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
@media (max-width:960px){.g5{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.g5{grid-template-columns:repeat(2,1fr)}}
.g5 .person{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 16px 18px}
.g5 .person .photo.round{width:96px;margin-bottom:14px}
.g5 .person > p:not(.bio){font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rose-deep);font-weight:700;margin-bottom:.4em}
.person .bio{font-size:.86rem;color:var(--text-soft);margin:0}
.person .bio:empty{display:none}
.freq{position:relative}
.freq input{width:1px;height:1px;padding:0;margin:0;left:0;top:0}
.bg-blush .giving-contact{background:#fff;border:1px solid var(--line)}
/* bio */
.years{font-family:var(--serif);font-size:1.25rem;letter-spacing:.12em;color:var(--rose-deep);margin:-.2em 0 .8em}
.draft-tag{display:inline-block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--text-soft);border:1px solid var(--line);background:var(--ivory);border-radius:20px;padding:4px 12px}
.bio-layout{display:grid;grid-template-columns:minmax(260px,1fr) 1.6fr;gap:64px;align-items:start}
.bio-photo{position:sticky;top:120px}
.bio-text p{font-size:1.06rem;line-height:1.8}
.bio-text p:first-child::first-letter{font-family:var(--serif);float:left;font-size:4.2rem;line-height:.8;padding:8px 10px 0 0;color:var(--rose-deep)}
.pull-quote{margin:34px 0;padding:6px 0 6px 28px;border-left:2px solid var(--rose);font-family:var(--serif);font-style:italic;font-size:1.6rem;line-height:1.4;color:var(--plum)}
@media (max-width:960px){.bio-layout{grid-template-columns:1fr;gap:32px}.bio-photo{position:static}.bio-photo .photo{min-height:320px}}
/* portrait */
.portrait{margin:0;background:#fff;border:1px solid var(--rose);border-radius:10px;padding:10px;box-shadow:0 18px 40px rgba(110,58,85,.10);max-width:440px;justify-self:center}
.portrait img{width:100%;height:auto;border-radius:6px;display:block}
.portrait figcaption{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--plum);text-align:center;padding:12px 6px 4px}
.portrait figcaption .ph{font-style:italic;font-size:.72rem}
.bio-photo .portrait{max-width:none}
@media (max-width:960px){.portrait{max-width:380px;margin:0 auto}}

/* pathways Vimeo: click-to-open modal */
.card .video-thumb{position:relative;display:block;width:calc(100% + 60px);margin:-34px -30px 26px;border:0;padding:0;cursor:pointer;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;aspect-ratio:16/9;background:#1a1020 url(../images/video/ballet-emc-2026-thumb.jpg) center/cover no-repeat;font:inherit;color:inherit;text-align:left}
.card .video-thumb::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(62,36,51,.15),rgba(62,36,51,.35))}
.video-thumb-label{position:relative;z-index:1;display:inline-block;margin:14px;background:rgba(255,255,255,.92);color:var(--plum);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;border-radius:2px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.video-play{position:absolute;left:50%;top:50%;z-index:2;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 8px 24px rgba(110,58,85,.18)}
.video-play::after{content:"";position:absolute;left:26px;top:20px;border-left:18px solid var(--rose-deep);border-top:12px solid transparent;border-bottom:12px solid transparent}
.card .video-thumb:hover .video-play,.card .video-thumb:focus-visible .video-play{background:#fff;transform:scale(1.04)}
.card .video-thumb:focus-visible{outline:2px solid var(--rose-deep);outline-offset:2px}
.pathways .video-privacy-note{margin:10px 0 0;font-size:.72rem;line-height:1.4;color:var(--text-soft)}
.video-modal[hidden]{display:none !important}
.video-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:24px}
.video-modal.is-open,.video-modal:not([hidden]){display:flex !important}
.video-modal-backdrop{position:absolute;inset:0;background:rgba(62,36,51,.72)}
.video-modal-dialog{position:relative;z-index:1;width:min(960px,100%);background:#fff;border-radius:var(--radius);box-shadow:0 24px 60px rgba(0,0,0,.28);overflow:hidden}
.video-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line)}
.video-modal-head h2{margin:0;font-size:1.25rem}
.video-modal-close{appearance:none;border:0;background:transparent;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--plum);padding:4px 8px}
.video-modal-frame{position:relative;aspect-ratio:16/9;background:#1a1020}
.video-modal-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.video-modal-note{margin:0;padding:12px 18px 16px;font-size:.78rem;color:var(--text-soft);line-height:1.45}
.video-modal-note code{font-size:.85em}
body.video-modal-open{overflow:hidden}

/* photo lightbox — same scale as .video-modal-dialog */
.campaign figure.rend img,
.campaign figure.rend.plan img{cursor:zoom-in}
.photo-lightbox[hidden]{display:none !important}
.photo-lightbox{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:24px}
.photo-lightbox.is-open,.photo-lightbox:not([hidden]){display:flex !important}
.photo-lightbox-backdrop{position:absolute;inset:0;background:rgba(62,36,51,.72)}
.photo-lightbox-dialog{position:relative;z-index:1;width:min(960px,100%);background:#fff;border-radius:var(--radius);box-shadow:0 24px 60px rgba(0,0,0,.28);overflow:hidden}
.photo-lightbox-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line)}
.photo-lightbox-head h2{margin:0;font-size:1.15rem;font-weight:500}
.photo-lightbox-close{appearance:none;border:0;background:transparent;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--plum);padding:4px 8px}
.photo-lightbox-frame{position:relative;aspect-ratio:16/9;background:#1a1020;display:flex;align-items:center;justify-content:center}
.photo-lightbox-frame img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.photo-lightbox-caption{margin:0;padding:12px 18px 16px;font-size:.78rem;color:var(--text-soft);line-height:1.45}
body.photo-lightbox-open{overflow:hidden}
