/* YAYOE public site — "Flame & Sky" (from the school seal: navy ring, sky gradient, gold letters, white flame) */
:root{
  --paper:#F8F7F2;--surface:#FFFFFF;--ink:#14213D;--ink-2:#4A5A78;--ink-3:#66739A;--line:#DDE1E9;--line-soft:#EAEDF2;
  --navy:#1C2F6E;--navy-deep:#14213D;--navy-ink:#0F1B3F;
  --sky:#4A9BDD;--sky-deep:#1C5FA8;--sky-soft:#BFE0F7;--sky-tint:#EAF3FB;
  --gold:#E8A825;--gold-ink:#9A6A0F;--gold-soft:#FBF0D6;--gold-bright:#F2C14E;
  --blue:var(--navy);--blue-dark:var(--navy-deep);--blue-soft:var(--sky-tint);--drop:#9C3F3F;--drop-bg:#F5E3E3;
  --radius:12px;--radius-lg:18px;--shadow:0 1px 2px rgba(20,33,61,.05),0 14px 32px -18px rgba(20,33,61,.25);
  --font-display:"Newsreader",Georgia,"Times New Roman",serif;--font-body:"Figtree","Helvetica Neue",Arial,sans-serif;--font-hebrew:"Frank Ruhl Libre","Times New Roman",serif;
  --wrap:1180px;--measure:68ch;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--gold-ink)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.1;margin:0 0 .5em;text-wrap:balance;letter-spacing:-.01em;font-variation-settings:"opsz" 72}
h1{font-size:clamp(36px,4.6vw,56px)}
h2{font-size:clamp(28px,3.2vw,40px)}
h3{font-size:24px}
p{margin:0 0 1em}
:lang(he),[dir=rtl]{font-family:var(--font-hebrew)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:8px 14px;border-radius:6px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 8px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--gold);display:inline-block}
.lede{font-size:20px;color:var(--ink-2);max-width:56ch}
.muted{color:var(--ink-3)}
.more{font-weight:600;text-decoration:none}
.caption{font-size:14px;color:var(--ink-2);margin-top:8px}
.hp{position:absolute;left:-9999px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-weight:700;font-size:16px;padding:12px 22px;border-radius:999px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .1s;line-height:1.1;min-height:44px}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--gold);color:var(--navy)}.btn-primary:hover{background:#d99a1c;color:var(--navy)}
.btn-secondary{background:transparent;color:var(--navy);border-color:var(--navy)}.btn-secondary:hover{background:var(--sky-tint)}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy-deep);color:#fff}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}.btn-ghost:hover{border-color:#fff;color:#fff}
.btn-link{background:none;color:var(--navy);padding:0;border:0}

/* announcement */
.announce{background:var(--gold);color:var(--navy);font-size:15px;font-weight:600}
.announce .wrap{display:flex;align-items:center;justify-content:center;gap:16px;padding:9px 24px}
.announce a{color:var(--navy)}
.announce-x{background:none;border:0;color:var(--navy);font-size:20px;cursor:pointer;line-height:1;opacity:.7}

/* header — one slim navy band: seal · single-face wordmark · nav · one gold button */
.site-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 1px 0 rgba(255,255,255,.06),0 6px 24px -12px rgba(15,27,63,.6)}
.header-inner{display:flex;align-items:center;gap:28px;min-height:72px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:#fff;flex:none}
.brand-mark{width:48px;height:48px;border-radius:50%;flex:none}
/* The name always stacks on two lines. The header is capped at the page width, and with the nav, Donate and the
   search slot beside it a one-line name (~500px) does not fit at ANY width — it pushed the last menu items under
   the Donate button on wide screens. */
.brand-name{font-family:var(--font-display);font-weight:500;font-size:18px;line-height:1.08;color:#fff;letter-spacing:.005em;max-width:11.5em;font-variation-settings:"opsz" 24}
.main-nav{margin-left:auto;min-width:0}
.nav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:0;flex-wrap:nowrap}
.nav-list>li{position:relative}
.nav-list a{display:block;padding:10px 12px;color:rgba(255,255,255,.86);text-decoration:none;font-weight:500;font-size:14.5px;border-radius:8px;letter-spacing:.01em}
.nav-list a:hover{color:#fff;background:rgba(255,255,255,.07)}
.nav-util a{color:var(--gold-bright)}
.sub-toggle{display:none;background:none;border:0;cursor:pointer;font-size:14px;color:#BFD9F2}
.has-children>.sub{position:absolute;top:100%;left:0;min-width:240px;background:var(--surface);border-radius:var(--radius);box-shadow:0 12px 40px -12px rgba(15,27,63,.45);padding:8px;list-style:none;margin:8px 0 0;display:none;z-index:60}
.has-children>.sub::before{content:'';position:absolute;left:0;right:0;top:-14px;height:14px}
.has-children:hover>.sub,.has-children:focus-within>.sub,.has-children.open>.sub{display:block}
.sub a{font-weight:500;padding:9px 12px;color:var(--ink)}.sub a:hover{background:var(--sky-tint);color:var(--navy)}
.sub .sub{position:static;border:0;box-shadow:none;padding:0 0 0 12px;margin:0;display:block}
/* Search sits at the far right of the header, after Donate, and is always open at its own reserved width. It used to
   live inside the nav and expand on hover, which meant it either overflowed into the Donate button or covered the menu
   items beside it — there is no room in that row for something that grows. Given its own slot nothing ever moves.
   Below 1160px this copy is hidden and the one inside the mobile menu (.nav-search) takes over as a full-width row. */
.hdr-search{flex:none;margin-left:4px}
.nav-search{display:none}
.hdr-search form{display:flex;align-items:center;border:1px solid rgba(255,255,255,.22);border-radius:999px;overflow:hidden;height:36px;background:rgba(255,255,255,.06);transition:border-color .2s,background .2s}
.hdr-search form:focus-within{border-color:rgba(255,255,255,.55);background:var(--navy-deep)}
.hdr-search input,.nav-search input{border:0;padding:0 4px 0 12px;width:104px;font:inherit;font-size:14px;background:transparent;color:#fff;height:100%}
.hdr-search input::placeholder,.nav-search input::placeholder{color:rgba(255,255,255,.55)}
.hdr-search button,.nav-search button{border:0;background:transparent;padding:0 12px 0 4px;cursor:pointer;color:rgba(255,255,255,.8);display:grid;place-items:center;height:100%;min-width:34px}
.hdr-search button:hover,.nav-search button:hover{color:#fff}
@media (max-width:1180px){.hdr-search input{width:78px}}
.header-cta{flex:none;padding:10px 20px;font-size:15px}
.header-donate{position:relative;flex:none}.header-donate>.sub{left:auto;right:0;min-width:220px}.header-donate .sub a{display:block}
.nav-donate{display:none}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:8px;cursor:pointer;min-width:44px;min-height:44px;justify-content:center;align-items:center}
.nav-toggle span{width:22px;height:2px;background:#fff;display:block;border-radius:1px}
/* The search slot at the right costs the row about 150px, so the school's name stacks onto two lines earlier than it
   used to and the nav tightens in two steps — otherwise the last menu items run under the Donate button. */
/* One spacing for every desktop width: the header row is capped at the page width (1180px) however wide the
   screen is, so there is never more room for the nav than this. */
.header-inner{gap:16px}.nav-list a{padding:10px 8px;font-size:13.5px;white-space:nowrap}.header-cta{padding:10px 16px;font-size:14px}
.brand{flex:none}
@media (max-width:1160px){
  .nav-donate{display:block}.header-donate>.sub{display:none!important}
  .nav-toggle{display:flex}
  .nav-list{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);box-shadow:0 20px 40px -20px rgba(0,0,0,.6);flex-direction:column;align-items:stretch;padding:8px 24px 20px;max-height:calc(100vh - 72px);overflow:auto}
  .main-nav.open .nav-list{display:flex}
  .nav-list>li{display:flex;flex-wrap:wrap;align-items:center;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav-list>li:last-child{border:0}
  .nav-list>li>a{flex:1;padding:14px 4px;font-size:17px}
  .sub-toggle{display:block;padding:10px;min-width:44px;min-height:44px}
  .has-children>.sub{position:static;display:none;width:100%;box-shadow:none;background:rgba(255,255,255,.05);margin:0 0 8px}
  .has-children.open>.sub{display:block}
  .sub a{color:#fff}.sub a:hover{background:rgba(255,255,255,.08);color:var(--gold-bright)}
  .hdr-search{display:none}
  .nav-search{display:flex;width:100%}
  .nav-search form{display:flex;align-items:center;margin:12px 0 0;width:100%;height:44px;border:1px solid rgba(255,255,255,.22);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.06)}
  .nav-search input{flex:1;width:auto;font-size:16px;padding:0 12px}
  .main-nav{position:static;margin-left:auto}
  .brand-name{white-space:normal;max-width:22ch;font-size:16.5px;line-height:1.1}
}
.admin-bar{display:flex;gap:18px;align-items:center;background:#14213D;color:#fff;padding:7px 16px;font-size:13.5px;font-family:Figtree,system-ui,sans-serif}.admin-bar a{color:#F2C14E;font-weight:600;text-decoration:none}.admin-bar a:hover{text-decoration:underline}.admin-bar-who{margin-left:auto;opacity:.7}
.preview-bar{background:var(--gold-soft);color:#6b4d0f;text-align:center;padding:8px;font-size:14px}

/* sections */
.sec{margin:0 auto;padding:44px 0}
.page-body .sec{max-width:100%}
.is-home main>.sec:not(.sec-hero):not(.sec-quicklinks):not(.sec-cta):not(.sec-home-news):not(.sec-home-video):not(.sec-dvar-band):not(.sec-parnes):not(.sec-parnes-pic):not(.sec-parnes-recent){max-width:var(--wrap);padding-left:24px;padding-right:24px;box-sizing:border-box}
@media (max-width:640px){.is-home main>.sec:not(.sec-hero):not(.sec-quicklinks):not(.sec-cta):not(.sec-home-news):not(.sec-home-video):not(.sec-dvar-band):not(.sec-parnes):not(.sec-parnes-pic):not(.sec-parnes-recent){padding-left:18px;padding-right:18px}}
.sec-title{margin-bottom:24px}
.sec-text .prose{max-width:var(--measure)}
.prose{font-size:17.5px}
.prose>*:first-child{margin-top:0}
.prose h2{margin-top:1.4em}.prose h3{margin-top:1.2em}
.prose ul,.prose ol{padding-left:1.4em}
.prose blockquote{margin:1.4em 0;padding:18px 24px;background:var(--surface);border-left:4px solid var(--gold);border-radius:0 12px 12px 0;color:var(--ink);font-family:var(--font-display);font-size:1.25em;line-height:1.35}
.prose img{border-radius:var(--radius);margin:1em 0}
.prose table{border-collapse:collapse;width:100%;margin:1em 0;font-size:15.5px}
.prose td,.prose th{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.prose iframe{max-width:100%}
.prose .btn{margin:6px 8px 6px 0}
.page-head{background:linear-gradient(180deg,var(--sky-soft),var(--paper));padding:64px 0 40px}
.page-head-compact{padding:40px 0 16px}
.page-head h1{max-width:20ch}
.page-form .page-body{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.page-form .sec{padding:12px 0 40px}
.page-body>.sec-text:first-child{padding-top:8px}

/* hero */
.sec-hero{padding:0;position:relative;background:var(--navy);color:#fff;overflow:hidden;min-height:560px;display:flex;align-items:center}
.hero-bg{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;object-position:30% 60%;will-change:transform}
.sec-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,33,61,.88) 0%,rgba(20,33,61,.55) 45%,rgba(20,33,61,.08) 100%);pointer-events:none;z-index:1}
.sec-hero:not(.has-media){background:radial-gradient(1200px 500px at 85% -10%,#2b63a8,var(--navy) 60%)}
.sec-hero:not(.has-media)::before{display:none}
.hero-video{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0;opacity:0;transition:opacity 1.2s ease}
.hero-video.ready{opacity:1}
.hero-video iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%);border:0}
.hero-video-local video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.sec-hero.has-video .hero-bg{z-index:0}
.sec-hero.has-video::before{z-index:1}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}
.hero-inner{position:relative;z-index:2;max-width:var(--wrap);width:100%;margin:0 auto;padding:96px 24px 72px}
.hero-inner .eyebrow{color:var(--gold-bright)}.hero-inner .eyebrow::before{background:var(--gold-bright)}
.hero-inner h1{color:#fff;max-width:17ch;margin-bottom:16px;font-size:clamp(38px,5vw,64px);line-height:1.02}
.hero-inner .lede{color:#DCE8F5;max-width:34em}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.hero-ctas .btn-secondary{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.6)}.hero-ctas .btn-secondary:hover{background:rgba(255,255,255,.2)}
.hero-center .hero-inner{text-align:center}.hero-center h1,.hero-center .lede{margin-left:auto;margin-right:auto}.hero-center .hero-ctas{justify-content:center}.hero-center .eyebrow{justify-content:center}
.is-home .sec-hero{min-height:min(80vh,640px)}

/* quick links strip */
.sec-quicklinks{padding:0;background:linear-gradient(180deg,var(--sky-soft) 0%,#A9D4F3 100%)}
.ql-grid{max-width:var(--wrap);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ql{display:flex;align-items:center;gap:14px;padding:22px 20px;text-decoration:none;color:var(--ink);font-weight:600;font-size:16px;border-right:1px solid rgba(28,47,110,.15);min-height:44px}
.ql:last-child{border-right:0}.ql:hover{background:rgba(255,255,255,.35);color:var(--navy)}
.ql svg{flex:none;stroke:var(--navy)}

/* image + text */
.sec-image-text{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;max-width:var(--wrap);padding:56px 0}
.sec-image-text img{border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.img-right .it-media{order:2}
.it-body .prose{max-width:56ch}
@media (max-width:820px){.sec-image-text{grid-template-columns:1fr;gap:24px}.img-right .it-media{order:0}}

/* columns / cards / people */
.sec-columns{display:grid;gap:36px;max-width:var(--wrap)}
.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}
.col-img{border-radius:var(--radius);margin-bottom:14px;aspect-ratio:3/2;object-fit:cover;width:100%}
.col h3{font-size:24px}
.col h3::before{content:"";display:block;width:32px;height:3px;background:var(--gold);margin-bottom:12px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px}
.card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
a.card:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(20,33,61,.06),0 22px 40px -18px rgba(20,33,61,.35)}
.card-img{aspect-ratio:3/2;object-fit:cover;width:100%;transition:transform .5s ease}
a.card:hover .card-img{transform:scale(1.03)}
.card-body{padding:22px 24px 26px}
.card-body h3{font-size:24px;margin-bottom:6px}
.card-body p{color:var(--ink-2);font-size:16px;margin:0}
.card-link{display:inline-block;margin-top:12px;font-weight:700;color:var(--gold-ink);font-size:15px}
.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:26px;justify-content:center}
.person-initials{display:grid;place-items:center;font-family:var(--font-display);font-size:34px;color:var(--navy);background:var(--sky-tint);box-shadow:0 0 0 4px var(--sky-soft)}
.people-rows{display:flex;flex-direction:column;gap:18px;max-width:900px}
.people-rows .person{display:grid;grid-template-columns:96px 1fr;gap:22px;text-align:left;background:var(--surface);border-radius:var(--radius-lg);padding:24px 26px;box-shadow:var(--shadow)}
.people-rows .person-img{width:96px;height:96px;margin:0;font-size:28px}
.people-rows .person h3{font-size:24px;margin-bottom:2px}
.people-rows .person-title{color:var(--gold-ink);font-weight:600;font-size:15px}
.people-rows .person-bio{font-size:16px;color:var(--ink-2);margin-top:10px}.people-rows .person-bio p{margin:0 0 .7em}.people-rows .person-bio p:last-child{margin:0}
@media (max-width:640px){.people-rows .person{grid-template-columns:64px 1fr;gap:14px;padding:18px}.people-rows .person-img{width:64px;height:64px;font-size:20px}}
.series-card .card-body{padding-top:26px}
.series-mark{display:inline-block;color:var(--navy);margin-bottom:8px}
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}
.subnav a{padding:8px 14px;border-radius:999px;text-decoration:none;border:1px solid rgba(28,47,110,.25);color:var(--navy);font-size:14.5px;font-weight:600;background:rgba(255,255,255,.55)}
.subnav a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.page-body .sec-image-text:first-child{padding-top:8px}
.page-body .sec-columns .col{background:var(--surface);border-radius:var(--radius-lg);padding:26px 28px;box-shadow:var(--shadow)}
.page-body .sec-columns .col .prose{font-size:16.5px}.page-body .sec-columns .col .prose ul{padding-left:1.2em}.page-body .sec-columns .col .prose li{margin-bottom:.5em}
.page-body .sec-columns .col h2{font-size:22px;margin-top:0}
.person{text-align:center}
.person-img{width:150px;height:150px;border-radius:50%;object-fit:cover;margin:0 auto 12px;background:var(--sky-tint);box-shadow:0 0 0 4px var(--sky-soft)}
.person h3{font-size:20px;margin-bottom:2px}
.person-title{color:var(--ink-2);font-size:15px;margin:0 0 4px}
.person-email{font-size:14px}
.person-bio{font-size:14.5px;color:var(--ink-2);margin-top:8px}
@media (max-width:900px){.cols-3,.cols-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}

/* steps + timeline */
.steps{list-style:none;margin:0;padding:0;max-width:820px}
.step{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:26px 0;border-top:1px solid var(--line);position:relative}
.step:last-child{border-bottom:1px solid var(--line)}
.step-n span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--font-display);font-size:22px;font-variation-settings:"opsz" 24}
.step-body h3{font-size:24px;margin-bottom:6px}
.step-body .prose{font-size:17px;color:var(--ink-2)}.step-body .prose p:last-child{margin-bottom:0}
.step-body .prose ul{margin:.4em 0 0}
.step-note{margin:10px 0 0;font-size:14.5px;color:var(--gold-ink);font-weight:600}
.timeline{list-style:none;margin:0;padding:0;max-width:820px;border-left:3px solid var(--sky-soft);margin-left:8px}
.tl{display:grid;grid-template-columns:170px 1fr;gap:20px;padding:0 0 28px 28px;position:relative}
.tl::before{content:"";position:absolute;left:-10px;top:6px;width:17px;height:17px;border-radius:50%;background:var(--gold);border:3px solid var(--paper)}
.tl-date{font-weight:700;color:var(--navy);font-size:16px;padding-top:1px}
.tl-body h3{font-size:20px;margin-bottom:4px}.tl-body p{margin:0;color:var(--ink-2);font-size:16px}
@media (max-width:640px){.step{grid-template-columns:40px 1fr;gap:14px;padding:20px 0}.step-n span{width:34px;height:34px;font-size:17px}.step-body h3{font-size:21px}.tl{grid-template-columns:1fr;gap:4px;padding-left:22px}.tl-date{font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-ink)}}
/* faq / cta / misc */
.faq{border-top:1px solid var(--line);padding:6px 0}
.faq:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:600;font-size:18px;padding:12px 0;list-style:none;display:flex;justify-content:space-between}
.faq summary::after{content:"+";color:var(--gold-ink);font-size:22px}
.faq[open] summary::after{content:"−"}
.faq .prose{padding:0 0 14px;max-width:var(--measure)}
.sec-cta{padding:0}
.cta-band{background:var(--navy);color:#fff;margin:48px 0}
.cta-band .cta-inner{max-width:var(--wrap);margin:0 auto;padding:64px 24px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta-band h2{color:#fff;margin:0 0 6px;max-width:22ch}.cta-band p{margin:0;color:#C9D4E6;max-width:48ch}
.cta-card .cta-inner{background:var(--gold-soft);border-radius:var(--radius-lg);padding:40px;text-align:center;max-width:800px;margin:0 auto}
.sec-buttons{display:flex;gap:12px;flex-wrap:wrap}
.sec-divider{border:0;border-top:1px solid var(--line);margin:24px 0}
.embed iframe{width:100%;border:0;border-radius:var(--radius)}
.embed-video{position:relative;aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden}
.embed-video iframe{position:absolute;inset:0;width:100%;height:100%}
.embed-map iframe{height:380px}
.embed-missing{background:var(--gold-soft);border:1px dashed var(--gold);padding:14px 18px;border-radius:var(--radius);color:#6b4d0f}

/* gallery + lightbox */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.gallery-item img{aspect-ratio:1;object-fit:cover;width:100%;border-radius:10px;transition:transform .25s}
.gallery-item:hover img{transform:scale(1.03)}
.lightbox{position:fixed;inset:0;background:rgba(15,27,63,.94);z-index:200;display:grid;place-items:center;padding:24px}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;max-width:min(1200px,92vw);text-align:center}
.lightbox img{max-height:82vh;width:auto;margin:0 auto;border-radius:6px}
.lightbox figcaption{color:#fff;margin-top:10px;font-size:15px}
.lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:40px;cursor:pointer;padding:16px;opacity:.85}
.lb-x{top:8px;right:14px}.lb-prev{left:8px;top:50%;transform:translateY(-50%)}.lb-next{right:8px;top:50%;transform:translateY(-50%)}

/* audio */
.audio-single{margin:20px 0;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);padding:14px 18px}
.audio-single figcaption{font-weight:600;margin-bottom:8px}.audio-single .dur{color:var(--ink-3);font-weight:400;margin-left:8px}
.audio-single audio{width:100%}
.pl-dl{font-size:13px;text-decoration:none;color:var(--ink-3);padding:0 6px}
.playlist{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.playlist-player{padding:22px 24px;background:linear-gradient(160deg,var(--sky),var(--sky-deep));color:#fff}
.playlist-player audio{width:100%;border-radius:999px}
.playlist-now{margin:10px 0 0;font-family:var(--font-display);font-size:22px}
.playlist-list{list-style:none;margin:0;padding:6px 0;max-height:560px;overflow:auto}
.playlist-list li{display:flex;align-items:center}
.playlist-list button{flex:1;display:flex;align-items:center;gap:14px;background:none;border:0;padding:12px 22px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);border-radius:0;min-height:44px}
.playlist-list button:hover{background:var(--paper)}.playlist-list button.on{background:var(--sky-tint)}
.playlist-list button.on .pl-n{background:var(--navy);color:#fff}
.pl-n{font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-2);min-width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#EEF3F8}
.pl-t{flex:1;display:flex;flex-direction:column;font-weight:600}.pl-t small{color:var(--ink-3);font-size:13px;font-weight:400}
.pl-d{font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:14px}

/* posts */
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.post-grid-compact{grid-template-columns:1fr;gap:0}
.post-card{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-3px)}
.post-grid-compact .post-card{border:0;border-bottom:1px solid var(--line-soft);border-radius:0;background:transparent;box-shadow:none}
.post-grid-compact .post-card:hover{transform:none}
.pc-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--sky-tint)}
.pc-img{width:100%;height:100%;object-fit:cover}
.pc-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:44px;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.pc-body{padding:18px 20px 20px}
.pc-body .eyebrow{font-size:12px}.pc-body .eyebrow::before{display:none}
.pc-body h3{font-size:22px;margin-bottom:6px}
.pc-body p{color:var(--ink-2);font-size:15.5px;margin:0}
.post{max-width:860px;padding-top:48px;padding-bottom:64px}
.post-head{margin-bottom:24px}
.event-date{font-size:18px;color:var(--navy);font-weight:600}
.post-figure{margin:0 0 24px}.post-img{border-radius:var(--radius-lg)}
.post-foot{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
.cat-nav{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.cat-nav a{padding:8px 16px;border-radius:999px;text-decoration:none;border:1px solid rgba(28,47,110,.25);color:var(--navy);font-size:14.5px;font-weight:600;min-height:40px;display:inline-flex;align-items:center}
.cat-nav a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.pager{display:flex;gap:6px;margin:32px 0}.pager a{padding:8px 14px;border:1px solid var(--line);border-radius:8px;text-decoration:none;min-width:44px;text-align:center}.pager a.on{background:var(--navy);color:#fff}

/* homepage dynamic blocks */
.sec-home-news{background:var(--navy);color:#fff;padding:72px 0}
.dvar-img{display:block;margin:0 0 16px;border-radius:12px;overflow:hidden}.dvar-img img{width:100%;height:auto;display:block}
.sec-home-news .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:64px}
.sec-home-news h2{color:#fff}
.sec-home-news .post-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;color:#fff;padding:0}
.sec-home-news .post-grid-compact{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.sec-home-news .post-grid-compact .post-card{border-bottom:1px solid rgba(255,255,255,.12)}
.sec-home-news .pc-body{padding:18px 20px}
.sec-home-news .pc-body .eyebrow{color:var(--gold-bright)}.sec-home-news .pc-body h3{color:#fff;font-size:21px}
.sec-home-news .more{color:var(--gold-bright)}
.dvar{background:linear-gradient(160deg,var(--sky),var(--sky-deep));border-radius:var(--radius-lg);padding:28px;color:#fff;display:flex;flex-direction:column;gap:12px}
.dvar .eyebrow{color:var(--gold-bright);margin:0}.dvar .eyebrow::before{background:var(--gold-bright)}
.dvar h3{color:#fff;font-size:28px;margin:0}
.dvar p{color:#E4EFF9;margin:0}
.dvar a.more{color:#fff}
.sec-home-video{padding:64px 0}
.sec-home-video .embed-video{max-width:900px;margin:0 auto;box-shadow:var(--shadow)}

/* This week's Dvar Torah, as a band between the school's own blocks. The card carries all the words, so the band
   is just the card, centred, with the eyebrow above and the byline below — nothing beside it to read as a second
   Dvar Torah. The ground is a quiet sky tint between two hairlines; the card is already dark and detailed. */
.sec-dvar-band{background:var(--sky-tint);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:56px 0;margin:8px 0}
.dvar-band{display:flex;flex-direction:column;align-items:center;gap:18px}
.dvar-band .eyebrow{margin:0}
.dvar-band-img{display:block;width:100%;max-width:820px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);line-height:0;transition:transform .2s ease,box-shadow .2s ease}
.dvar-band-img:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(20,33,61,.06),0 22px 44px -18px rgba(20,33,61,.35)}
.dvar-band-img img{width:100%;height:auto;display:block}
.dvar-band-tile{display:block;width:100%;max-width:820px;background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;border-radius:var(--radius-lg);padding:40px 44px;text-decoration:none;box-shadow:var(--shadow)}
.dvar-band-tile-title{display:block;font-family:var(--font-display);font-size:34px;line-height:1.15;margin-bottom:14px}
.dvar-band-tile-text{display:block;color:#E4EFF9;font-size:17px;line-height:1.55}
.dvar-band-foot{display:flex;align-items:baseline;gap:22px;flex-wrap:wrap;justify-content:center;margin:0}
.dvar-band-by{font-size:14.5px;color:var(--ink-3)}
@media (max-width:860px){.sec-dvar-band{padding:40px 0}.dvar-band{gap:14px}.dvar-band-tile{padding:28px 24px}.dvar-band-tile-title{font-size:26px}}


/* Parnes Hayom — the day of learning a family sponsored. It borrows the school's own Parnes Hayom graphics (navy,
   a fine triangle lattice shading violet to cyan across the top, an italic lead-in, the name set large) so the band
   matches the email families have just received, but sets it in the site's typefaces and colours. The lattice is a
   mask over a gradient, so the lines carry the violet→cyan shift and fade out downward, as in the graphics; where
   masks are unsupported the band is plain navy. The lattice stays in the top 190px and has faded out before the
   lead-in, so nothing runs behind the name. Centred, because it reads as a dedication, not an article. */
.sec-parnes{position:relative;overflow:hidden;background:linear-gradient(180deg,#223776 0%,var(--navy) 55%,var(--navy-deep) 100%);color:#fff;padding:68px 0 60px;text-align:center;isolation:isolate}
@supports ((mask-image:url(x)) or (-webkit-mask-image:url(x))){
  .sec-parnes::before{content:"";position:absolute;inset:0 0 auto 0;height:190px;z-index:-1;background:linear-gradient(90deg,#B08CFF 0%,#7C93FF 45%,#4FD3F2 100%);opacity:.85;
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='110.85'%3E%3Cpath d='M0 0H64M0 55.43H64M0 110.85L64 0M0 0L64 110.85' stroke='%23000' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"),linear-gradient(180deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,.45) 40%,transparent 92%);-webkit-mask-size:64px 110.85px,100% 100%;-webkit-mask-composite:source-in;
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='110.85'%3E%3Cpath d='M0 0H64M0 55.43H64M0 110.85L64 0M0 0L64 110.85' stroke='%23000' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"),linear-gradient(180deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,.45) 40%,transparent 92%);mask-size:64px 110.85px,100% 100%;mask-composite:intersect}
}
.parnes{display:flex;flex-direction:column;align-items:center;max-width:780px}
/* on an ordinary page the band sits inside the content column, so it is a rounded panel like the site's other boxes;
   and with no gold label above it, the lead-in is pushed below the lattice */
body:not(.is-home) .sec-parnes{border-radius:var(--radius-lg)}
.parnes>.parnes-lead:first-child{margin-top:64px}
.parnes .eyebrow{color:var(--gold-bright);margin-bottom:18px}.parnes .eyebrow::before{background:var(--gold-bright)}
.parnes-lead{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:25px;line-height:1.3;color:var(--sky-soft);margin:0 0 20px;text-wrap:balance}
.parnes-occasion{font-family:var(--font-display);font-size:19px;letter-spacing:.04em;color:rgba(255,255,255,.82);margin:0 0 4px}
.parnes-name{font-family:var(--font-display);font-weight:500;font-size:clamp(34px,5vw,50px);line-height:1.12;color:#fff;margin:0;text-wrap:balance;letter-spacing:.005em}
.parnes-name-long{font-size:clamp(26px,3.6vw,34px);font-weight:400}
.parnes-note{font-family:var(--font-display);font-style:italic;font-size:20px;line-height:1.4;color:rgba(255,255,255,.86);margin:8px 0 0;max-width:40ch;text-wrap:balance}
.parnes-rule{display:block;width:44px;height:2px;background:var(--gold-bright);margin:24px 0 18px;opacity:.9}
.parnes-by{font-size:17px;font-weight:500;color:#fff;margin:0 0 6px}
.parnes-date{font-size:14px;color:var(--sky-soft);margin:0;font-variant-numeric:tabular-nums;opacity:.9}
.parnes-contact{font-size:14px;color:rgba(255,255,255,.72);margin:26px 0 0;line-height:1.7}
.parnes-contact a{color:var(--gold-bright);text-decoration:none;font-weight:600;white-space:nowrap}
.parnes-contact a:hover,.parnes-contact a:focus-visible{text-decoration:underline}
/* a section reached by its anchor (e.g. /parnes-hayom#sponsor) stops below the sticky header, not under it */
.sec[id]{scroll-margin-top:96px}
.parnes-cta{margin:26px 0 0}
.parnes-cta+.parnes-contact{margin-top:12px}
.parnes-date+.parnes-cta{padding-top:24px;border-top:1px solid rgba(255,255,255,.12);width:min(100%,460px)}
/* When today's dedication came with the school's graphic, the band shows that graphic, framed exactly like the
   Dvar Torah card (same width, radius and shadow) on the plain page ground, so the two read as a pair. */
.sec-parnes-pic{padding:56px 0 48px;text-align:center}
.parnes-pic{display:flex;flex-direction:column;align-items:center;gap:16px}
.parnes-pic .eyebrow{margin:0}
.parnes-pic-img{margin:0;width:100%;max-width:820px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);line-height:0;background:var(--navy)}
.parnes-pic-img img{width:100%;height:auto;display:block}
.parnes-pic-date{font-size:14.5px;color:var(--ink-3);margin:2px 0 0;font-variant-numeric:tabular-nums}
.parnes-pic .parnes-cta{margin:6px 0 0}
.parnes-pic .parnes-contact{color:var(--ink-2);margin:0}
/* the "Become a Parnes Hayom" banner is wider (3:1) than a dedication graphic, and is itself a link to the form */
.parnes-pic-invite{display:block;max-width:1000px;transition:transform .2s ease,box-shadow .2s ease}
.parnes-pic-invite:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(20,33,61,.06),0 22px 44px -18px rgba(20,33,61,.35)}
.parnes-pic .parnes-contact a{color:var(--navy)}
@media (max-width:640px){.sec-parnes-pic{padding:40px 0 36px}.parnes-pic{gap:12px}}
/* the days before, on the Parnes Hayom page */
.sec-parnes-recent{padding:56px 0 24px}
.parnes-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:0;max-width:820px}
.parnes-list li{display:grid;grid-template-columns:92px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line-soft);align-items:baseline}
.parnes-list time{display:flex;flex-direction:column;font-variant-numeric:tabular-nums}
.parnes-list time b{font-size:16px;color:var(--navy)}.parnes-list time small{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.parnes-list-occ{font-family:var(--font-display);font-style:italic;color:var(--ink-2);font-size:17px}
.parnes-list-name{font-family:var(--font-display);font-size:20px;color:var(--ink);font-weight:500}
.parnes-list-note{font-family:var(--font-display);font-style:italic;color:var(--ink-2);font-size:17px}
.parnes-list li small{display:block;font-size:14px;color:var(--ink-3);margin-top:4px}
@media (max-width:640px){.sec-parnes{padding:52px 0 46px}.sec-parnes::before{height:140px}.parnes>.parnes-lead:first-child{margin-top:44px}.parnes-lead{font-size:21px}.parnes-note{font-size:18px}.parnes-list li{grid-template-columns:70px 1fr;gap:14px}}

@media (max-width:820px){.sec-home-news .wrap{grid-template-columns:1fr;gap:32px}.sec-home-news .post-grid-compact{grid-template-columns:1fr}}

/* search / errors */
.search-form{display:flex;gap:8px;max-width:600px;margin-top:12px}
.search-form input{flex:1;font:inherit;padding:12px 16px;border:1.5px solid var(--line);border-radius:999px;font-size:16px}
.result{padding:16px 0;border-bottom:1px solid var(--line-soft)}.result h3{margin-bottom:4px}.result p{color:var(--ink-2);margin:0}
.error-page{padding:80px 24px;max-width:640px}
.empty{color:var(--ink-3);padding:40px 0}

/* footer */
.site-footer{background:var(--navy-deep);color:#C9D4E6;margin-top:64px;font-size:15px}
.site-footer a{color:#fff;text-decoration:none}.site-footer a:hover{color:var(--gold-bright)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:40px;padding:56px 24px 32px}
.footer-brand img{width:56px;height:56px;border-radius:50%}
.footer-name{font-family:var(--font-display);font-size:20px;color:#fff;margin:12px 0 6px}
.footer-brand p{margin:0 0 4px}
.footer-nav ul{list-style:none;margin:0;padding:0;columns:2;gap:24px}
.footer-nav a{display:block;padding:5px 0}
.footer-signup h3{color:#fff;font-size:20px}
.signup{display:flex;gap:8px;flex-wrap:wrap}
.signup input[type=email]{flex:1;min-width:180px;font:inherit;padding:11px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font-size:16px}
.signup input::placeholder{color:rgba(255,255,255,.6)}
.footer-affil{display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap;padding:8px 24px 30px;border-top:1px solid rgba(255,255,255,.12);margin-top:8px}
.footer-affil .affil{display:inline-flex;align-items:center;justify-content:center;height:64px}
.footer-affil img{max-height:64px;width:auto;max-width:220px;object-fit:contain;filter:drop-shadow(0 1px 0 rgba(0,0,0,.2))}
.footer-affil img.on-light{background:#fff;padding:8px 12px;border-radius:8px;max-height:60px}
@media (max-width:640px){.footer-affil{gap:28px;padding-bottom:22px}.footer-affil .affil{height:52px}.footer-affil img{max-height:52px;max-width:160px}}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:18px 24px 28px;border-top:1px solid rgba(255,255,255,.12);font-size:13.5px;color:#8FA3C2}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr;gap:28px}}

/* popups */
.popup{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px}
.popup[hidden]{display:none}
.popup-backdrop{position:absolute;inset:0;background:rgba(15,27,63,.65)}
.popup-card{position:relative;background:var(--surface);border-radius:var(--radius-lg);max-width:520px;width:100%;padding:10px 10px 14px;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);animation:pop .25s ease-out;max-height:calc(100vh - 40px);overflow:auto}
.popup-card .prose p{margin:0}.popup-card .prose p+p{margin-top:12px}.popup-card .prose img{border-radius:calc(var(--radius-lg) - 4px);width:100%;height:auto;display:block}
.popup-card .prose h2,.popup-card .prose h3{padding:8px 14px 0}.popup-card .prose p:not(:has(img)):not(:has(.btn)){padding:0 14px}
.popup-x{position:absolute;top:18px;right:18px;z-index:2;background:rgba(255,255,255,.92);border:0;border-radius:50%;font-size:26px;line-height:1;cursor:pointer;color:var(--navy);width:40px;height:40px;min-width:0;min-height:0;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.popup-x:hover{background:#fff}
@keyframes pop{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}

/* ---------- Motion: reveal on scroll, image fade-in, hero drift ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.65,.2,1),transform .7s cubic-bezier(.2,.65,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-stagger>*{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.65,.2,1),transform .6s cubic-bezier(.2,.65,.2,1)}
.js .reveal-stagger.in>*{opacity:1;transform:none}
.js .reveal-stagger.in>*:nth-child(2){transition-delay:.08s}.js .reveal-stagger.in>*:nth-child(3){transition-delay:.16s}.js .reveal-stagger.in>*:nth-child(4){transition-delay:.24s}.js .reveal-stagger.in>*:nth-child(5){transition-delay:.32s}.js .reveal-stagger.in>*:nth-child(6){transition-delay:.4s}
.js img.fade{opacity:0;transition:opacity .8s ease}
.js img.fade.loaded{opacity:1}
.js .hero-inner>*{opacity:0;transform:translateY(16px);animation:heroIn .8s cubic-bezier(.2,.65,.2,1) forwards}
.js .hero-inner>*:nth-child(2){animation-delay:.12s}.js .hero-inner>*:nth-child(3){animation-delay:.24s}.js .hero-inner>*:nth-child(4){animation-delay:.36s}
@keyframes heroIn{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .js .reveal,.js .reveal-stagger>*,.js img.fade,.js .hero-inner>*{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .hero-bg{transform:none!important}
  *{scroll-behavior:auto!important}
}
@media (max-width:420px){.brand-name{font-size:13.5px}.brand-mark{width:36px;height:36px}.brand{gap:8px}.header-cta{padding:8px 12px;font-size:13.5px}}
@media print{.site-header,.site-footer,.popup,.announce,.preview-bar,.admin-bar{display:none}}

/* ---------- School forms (form builder) ---------- */
.form-page{max-width:760px;padding-bottom:64px}
.bform{max-width:760px}
.bform-form{background:var(--surface);border-radius:var(--radius-lg);padding:28px 28px 24px;box-shadow:var(--shadow)}
.bform-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.bf{grid-column:1 / -1;display:flex;flex-direction:column;gap:6px;min-width:0}
.bf-half{grid-column:span 1}
.bf-heading{grid-column:1 / -1;margin:16px 0 0;padding-top:16px;border-top:1px solid var(--line-soft);font-size:22px}
.bf-heading:first-child{margin-top:0;padding-top:0;border:0}
.bf-para{grid-column:1 / -1;color:var(--ink-2);margin:0}
.bf-label{font-weight:600;font-size:15px}
.req{color:var(--drop)}
.bf input:not([type=checkbox]):not([type=radio]):not([type=file]),.bf select,.bf textarea{font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);width:100%;min-width:0}
.bf input:focus,.bf select:focus,.bf textarea:focus{outline:0;border-color:var(--sky-deep);box-shadow:0 0 0 3px var(--sky-tint)}
.bf textarea{resize:vertical;min-height:120px}
.bf input[type=file]{font-size:14px;padding:10px 0}
.bf-choices{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.bf-choices legend{padding:0;margin-bottom:6px}
.bf-choice{display:flex;align-items:center;gap:10px;font-size:16px;cursor:pointer;min-height:32px}
.bf-choice input{width:20px;height:20px;accent-color:var(--navy)}
.bf-help{font-size:13.5px;color:var(--ink-3)}
.bf-err input,.bf-err select,.bf-err textarea{border-color:var(--drop)}
.bf-error{font-size:13.5px;color:var(--drop);font-weight:600}
.bform-errors{background:var(--drop-bg);color:var(--drop);padding:10px 14px;border-radius:10px;margin-bottom:16px}
.bf-actions{margin-top:22px;display:flex;justify-content:flex-end}
.bf-actions .btn{min-width:160px;justify-content:center}
.bform-success,.bform-closed{background:var(--sky-tint);border-radius:var(--radius-lg);padding:28px;font-size:18px}
.bform-success p,.bform-closed p{margin:0}
.bform-success::before{content:"✓";display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;margin-right:12px;font-weight:700}

/* ---------- Mobile ---------- */
@media (max-width:640px){
  .wrap{padding:0 18px}
  .header-inner{min-height:64px;gap:10px}
  .brand-mark{width:42px;height:42px}
  .brand-name{font-size:15px;line-height:1.1;max-width:22ch}
  .header-inner{gap:8px}
  .brand{flex:1 1 auto;min-width:0;overflow:visible}
  .brand-name{max-width:none;font-size:14.5px;white-space:normal;display:block}
  .main-nav,.header-cta{flex:none}
  .header-cta{padding:9px 14px;font-size:14px}
  .nav-list{padding:4px 18px 16px;max-height:calc(100vh - 64px)}
  .sec-hero{min-height:540px;align-items:flex-end}
  .hero-bg{object-position:22% 65%}
  .is-home .sec-hero{min-height:min(88vh,640px)}
  .hero-inner{padding:48px 18px 36px}
  .hero-inner h1{font-size:36px}
  .hero-inner .lede{font-size:16px}
  .hero-ctas .btn{padding:11px 18px;font-size:15px}
  .ql-grid{grid-template-columns:1fr 1fr;padding:0}
  .ql{padding:16px 18px;font-size:14px;border-bottom:1px solid rgba(28,47,110,.15)}
  .ql:nth-child(2n){border-right:0}
  .sec{padding:30px 0}
  .page-head{padding:40px 0 16px}
  h1{font-size:32px}h2{font-size:27px}
  .cta-band .cta-inner{padding:44px 18px}
  .sec-home-news{padding:44px 0}
  .playlist-list button{padding:10px 12px;gap:10px}
  .pl-t small{display:none}
  .footer-nav ul{columns:1}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .card-grid,.post-grid{grid-template-columns:1fr}
  .embed iframe{min-height:60vh}
  .bform-grid{grid-template-columns:1fr}.bf-half{grid-column:1 / -1}.bform-form{padding:20px 16px}.bf-actions .btn{width:100%}
}

/* PDF reader */
.tpl-reader main{display:flex;flex-direction:column;min-height:calc(100vh - 70px)}
.reader-head{background:var(--navy);color:#fff;padding:14px 0}.reader-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.reader-bar h1{font-size:1.25rem;margin:0;color:#fff}.reader-actions{display:flex;gap:8px;flex-wrap:wrap}.reader-actions .btn{padding:8px 14px;font-size:14px;color:#fff;border-color:rgba(255,255,255,.5);background:transparent}.reader-actions .btn:hover{background:rgba(255,255,255,.12);color:#fff}
.reader-frame{flex:1;min-height:70vh;background:#2a2a2e}.reader-frame iframe{width:100%;height:100%;min-height:calc(100vh - 150px);border:0;display:block}
.pdf-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:16px 0}.pdf-card-body{display:flex;flex-direction:column;gap:2px}.pdf-card-actions{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:640px){.reader-bar h1{font-size:1.05rem}.reader-frame iframe{min-height:calc(100vh - 190px)}}

/* form builder: thirds, name/address groups, yes/no inline, ratings, consent, steps */
.bf-third{grid-column:span 1}
@media (min-width:641px){.bform-grid{grid-template-columns:repeat(6,1fr)}.bf{grid-column:1 / -1}.bf-half{grid-column:span 3}.bf-third{grid-column:span 2}}
.bf-name-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bf-address{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}.bf-address input:first-child{grid-column:1 / -1}
.bf-inline{flex-direction:row;gap:18px;flex-wrap:wrap}.bf-inline legend{width:100%}
.bf-stars{display:flex;gap:4px;flex-direction:row-reverse;justify-content:flex-end}
.bf-star{cursor:pointer;font-size:34px;line-height:1;color:var(--line)}.bf-star input{position:absolute;opacity:0;width:0;height:0}
.bf-star:hover,.bf-star:hover~.bf-star,.bf-star input:checked~span,.bf-star:has(input:checked),.bf-star:has(input:checked)~.bf-star{color:var(--gold)}
.bf-star-ends{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-3);max-width:190px}
.bf-consent{align-items:flex-start;font-size:15px;line-height:1.45}.bf-consent input{margin-top:3px;flex:none}
.bf-sig{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:20px!important}
.bf-step[hidden]{display:none}.bf-nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
.bf-back[hidden]{display:none}.bf-actions .bf-back{margin-right:auto}
.bf-progress{margin:0 0 18px}.bf-progress-text{display:block;font-size:14px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.bf-progress-bar{display:block;height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden}.bf-progress-bar i{display:block;height:100%;background:var(--navy);transition:width .25s}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:640px){.bf-address{grid-template-columns:1fr 1fr}.bf-address input:first-child{grid-column:1 / -1}.bf-third{grid-column:1 / -1}}
.bf-calc{display:block;font-size:24px;font-weight:700;color:var(--navy);padding:10px 14px;background:var(--sky-tint);border-radius:10px}
.bf-price{font-style:normal;color:var(--ink-3);font-size:14px;margin-left:4px}.bf-line{display:flex;justify-content:space-between}.bf-line-total{font-weight:700;color:var(--ink)}

/* Shabbos strip in the footer */
.footer-zmanim{padding:10px 0 0}.zmanim{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;font-size:14px;color:rgba(255,255,255,.85);border-top:1px solid rgba(255,255,255,.14);padding-top:14px}
.zm-item b{font-weight:700;color:#fff;margin-right:4px}.zm-note{width:100%;font-size:12px;color:rgba(255,255,255,.5)}
/* a self-hosted video */
.embed-local{aspect-ratio:auto}.embed-local video{display:block;width:100%;height:auto;border-radius:var(--radius);background:#000}

/* School calendar */
.cal-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.cal-nav{display:flex;align-items:center;gap:8px}.cal-nav select{font:inherit;font-size:16px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface)}
.cal-nav .btn[aria-disabled=true]{opacity:.35;pointer-events:none}
.cal-subscribe{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cal-grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cal-grid{width:100%;min-width:640px;border-collapse:separate;border-spacing:4px;table-layout:fixed}
.cal-grid caption{text-align:left;font-family:var(--font-display,Georgia,serif);font-size:26px;color:var(--navy);padding:0 4px 10px}
.cal-grid th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:4px;text-align:left}
.cal-grid td{vertical-align:top;height:96px;padding:6px 6px 8px;background:var(--surface);border:1px solid var(--line-soft);border-radius:8px}
.cal-grid td.cal-out{background:transparent;border-color:transparent;color:var(--ink-3)}
.cal-grid td.cal-today{outline:2px solid var(--gold);outline-offset:-2px}
.cal-day{display:block;font-weight:700;font-size:14px;margin-bottom:4px}.cal-today .cal-day{color:var(--gold-deep,#9a6a00)}
.cal-ev{display:block;font-size:12.5px;line-height:1.3;margin:2px 0;padding:3px 6px;border-radius:6px;border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.cal-ev b{font-weight:700}
.cal-legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;color:var(--ink-2)}
.cal-legend i,.cal-dot{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--c);margin-right:7px;vertical-align:-1px}
.cal-below{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;margin-top:36px;align-items:start}
.cal-list ul{list-style:none;margin:0;padding:0}.cal-list li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.cal-list-month{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:700;border:0!important;padding:16px 0 4px!important}
.cal-list-date{flex:none;width:44px;text-align:center;line-height:1.05}.cal-list-date b{display:block;font-size:22px;color:var(--navy)}.cal-list-date small{font-size:11px;text-transform:uppercase;color:var(--ink-3)}
.cal-list-body{font-size:16px;padding-top:4px}
.cal-hours table{width:100%;border-collapse:collapse}.cal-hours th{text-align:left;padding:8px 10px 8px 0;font-weight:600;white-space:nowrap;vertical-align:top}.cal-hours td{padding:8px 0;border-bottom:1px solid var(--line-soft)}.cal-hours tr:last-child td,.cal-hours tr:last-child th{border:0}
@media (max-width:760px){.cal-below{grid-template-columns:1fr}.cal-grid td{height:auto;min-height:70px}}
/* Upcoming block */
.sec-events .sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.events-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 28px}
.events-list li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.ev-date{flex:none;width:46px;text-align:center;line-height:1.05}.ev-date b{display:block;font-size:24px;color:var(--navy)}.ev-date small{font-size:11px;text-transform:uppercase;color:var(--ink-3)}
.ev-body{font-size:16px;padding-top:3px}.ev-body small{display:block;font-size:13px}

/* Calendar on phones: the month as a list; the 7-column grid needs a wider screen */
.cal-month-list{display:none;list-style:none;margin:0 0 8px;padding:0}
.cal-month-list li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.cal-month-list li.cal-today{background:var(--gold-soft);margin:0 -8px;padding:10px 8px;border-radius:8px}
.cal-month-ev{display:block;font-size:16px;padding:2px 0}
@media (max-width:640px){.cal-month-list{display:block}.cal-grid-wrap,.cal-legend{display:none}.cal-tools{flex-direction:column;align-items:stretch}.cal-nav{justify-content:space-between}}
.site-footer .footer-bottom a,.site-footer .footer-contact a{display:inline-block;padding:6px 0}
.footer-credit{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 0 4px;margin-top:8px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:rgba(255,255,255,.62)}
.footer-credit strong{color:rgba(255,255,255,.85);font-weight:600}.footer-credit a{color:rgba(255,255,255,.85);text-decoration:none;padding:6px 0;display:inline-block}.footer-credit a:hover strong{text-decoration:underline}.footer-credit em{font-style:italic;color:rgba(255,255,255,.55)}.footer-credit a:hover{color:#fff}
