
:root{
  --bg:#f4efe8;
  --bg-strong:#ece4d7;
  --surface:#fffaf5;
  --surface-2:#f7f0e7;
  --line:#e4d8ca;
  --line-strong:#d6c6b3;
  --ink:#202536;
  --ink-soft:#4b5569;
  --ink-faint:#6d7688;
  --brand:#2b3350;
  --brand-2:#6c4356;
  --accent:#c69b47;
  --shadow:0 18px 40px rgba(32,37,54,.12);
  --shadow-soft:0 10px 30px rgba(32,37,54,.08);
  --radius:28px;
  --radius-sm:18px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(198,155,71,.18), transparent 26%),
    radial-gradient(circle at 85% 15%, rgba(108,67,86,.18), transparent 24%),
    var(--bg);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
}
.skip-link:focus{
  left:1rem;
  top:1rem;
  background:var(--brand);
  color:#fff;
  padding:.75rem 1rem;
  border-radius:999px;
  z-index:1000;
}
.container{width:min(calc(100% - 2rem), var(--max)); margin:0 auto}
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:blur(18px);
  background:rgba(244,239,232,.78);
  border-bottom:1px solid rgba(214,198,179,.65);
}
.announcement{
  background:linear-gradient(90deg, var(--brand), var(--brand-2));
  color:#fefcf9;
  padding:.65rem 1rem;
  text-align:center;
  font-size:.94rem;
}
.announcement a{
  display:inline-block;
  margin-left:.75rem;
  padding:.35rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
}
.announcement-text{display:inline;}
.announcement a[x-apple-data-detectors],
.announcement .announcement-text a[x-apple-data-detectors],
.announcement .announcement-text span[x-apple-data-detectors]{
  color:inherit !important;
  text-decoration:none !important;
  font:inherit !important;
  pointer-events:none !important;
}
.nav-shell{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:78px;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:.85rem;
  font-size:.95rem;
}
.brand img{
  width:38px;
  height:38px;
}
.brand strong{
  display:block;
  font-size:1rem;
  letter-spacing:.01em;
}
.brand small{
  display:block;
  color:var(--ink-soft);
  font-size:.83rem;
}
.site-nav{
  display:flex;
  align-items:center;
  gap:1.2rem;
}
.site-nav a{
  font-size:.97rem;
  color:var(--ink-soft);
  padding:.35rem .15rem;
  position:relative;
}
.site-nav a:hover,
.site-nav a[aria-current="page"]{
  color:var(--ink);
}
.site-nav a[aria-current="page"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-.55rem;
  margin:auto;
  width:100%;
  height:2px;
  background:linear-gradient(90deg, var(--accent), var(--brand-2));
  border-radius:999px;
}
.nav-meta{
  display:flex;
  align-items:center;
  gap:.8rem;
}
.nav-toggle{
  display:none;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.72);
  color:var(--ink);
  border-radius:999px;
  padding:.55rem .9rem;
  box-shadow:var(--shadow-soft);
}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.9rem 1.25rem;
  border-radius:999px;
  border:1px solid transparent;
  min-height:46px;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
  box-shadow:var(--shadow-soft);
}
.button:hover{transform:translateY(-1px)}
.button-primary{
  background:linear-gradient(135deg, var(--brand), var(--brand-2));
  color:#fffaf5;
}
.button-secondary{
  background:rgba(255,255,255,.82);
  color:var(--ink);
  border-color:var(--line-strong);
}
.button-ghost{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.35);
  box-shadow:none;
}
.hero{
  position:relative;
  overflow:hidden;
  padding:5.75rem 0 4.25rem;
  min-height:74vh;
  display:flex;
  align-items:center;
}
.hero:not(.hero-home){
  min-height:54vh;
}
.hero-overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.hero-layout{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(290px,.82fr);
  gap:2rem;
  align-items:end;
}
.hero-copy{
  padding:clamp(1rem,2vw,1.75rem) 0;
}
.eyebrow{
  margin:0 0 .65rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.78rem;
  font-weight:700;
  color:var(--brand);
}
.hero h1{
  font-family:Georgia, "Times New Roman", ui-serif, serif;
  font-size:clamp(2.8rem, 5vw, 5rem);
  line-height:1.02;
  margin:.1rem 0 1rem;
  max-width:10ch;
  letter-spacing:-.025em;
}
.hero-intro{
  font-size:clamp(1.05rem, 1.6vw, 1.28rem);
  max-width:62ch;
  color:rgba(255,255,255,.92);
  margin:0 0 1.45rem;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
}
.hero-note{
  margin:1rem 0 0;
  font-size:.93rem;
  color:rgba(255,255,255,.78);
}
.hero-panel{
  position:relative;
  background:rgba(255,250,245,.84);
  border:1px solid rgba(255,250,245,.42);
  border-radius:30px;
  padding:1.4rem 1.4rem 1.25rem;
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
}
.panel-kicker{
  margin:0 0 .35rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:700;
  font-size:.74rem;
  color:var(--brand);
}
.hero-panel h2{
  font-family:Georgia, "Times New Roman", ui-serif, serif;
  font-size:1.7rem;
  line-height:1.1;
  margin:.1rem 0 .9rem;
}
.torah-reading-page .hero-layout{
  grid-template-columns:minmax(0,1fr);
}
.torah-reading-page .hero-copy{
  max-width:72ch;
}
.torah-reading-page .hero h1{
  max-width:none;
}
.torah-reading-page .hero-intro{
  max-width:56ch;
}
.panel-small{
  color:var(--ink-faint);
  font-size:.92rem;
  margin:.75rem 0 0;
}
.panel-link{
  display:inline-block;
  margin-top:1rem;
  font-weight:600;
  color:var(--brand);
}
.hero-home{
  color:#fff;
  background:
    linear-gradient(115deg, rgba(23,28,42,.88) 0%, rgba(43,51,80,.72) 38%, rgba(108,67,86,.58) 100%),
    url("assets/holding.webp") center/cover no-repeat;
}
.hero-home .hero-overlay{
  background:
    radial-gradient(circle at 20% 20%, rgba(198,155,71,.24), transparent 32%),
    linear-gradient(to top, rgba(23,28,42,.34), transparent 42%);
}
.hero-about{
  color:#fff;
  background:
    linear-gradient(135deg, rgba(33,39,58,.95), rgba(70,42,56,.85)),
    linear-gradient(135deg, rgba(198,155,71,.18), transparent 45%);
}
.hero-about .hero-overlay{
  background:
    radial-gradient(circle at 82% 22%, rgba(255,255,255,.08), transparent 16%),
    url("assets/shira-logo.webp") calc(100% - 4.5rem) calc(100% - 3rem)/110px no-repeat;
  opacity:.65;
}
.hero-community{
  color:#fff;
  background:
    linear-gradient(115deg, rgba(24,31,48,.94), rgba(41,50,77,.82) 45%, rgba(108,67,86,.72)),
    url("assets/barmitzvah-family.webp") center/cover no-repeat;
}
.hero-community .hero-overlay{
  background:linear-gradient(to top, rgba(24,31,48,.26), transparent 40%);
}
.hero-membership{
  color:#fff;
  background:
    linear-gradient(135deg, rgba(33,39,58,.94), rgba(108,67,86,.86)),
    radial-gradient(circle at 80% 20%, rgba(198,155,71,.22), transparent 25%);
}
.hero-donate{
  color:#fff;
  background:
    linear-gradient(135deg, rgba(24,31,48,.95), rgba(55,40,61,.92)),
    linear-gradient(135deg, rgba(198,155,71,.12), transparent 45%);
}
.hero-donate .hero-overlay{
  background:url("assets/siddur.webp") calc(100% - 2rem) calc(100% - 2rem)/220px auto no-repeat;
  opacity:.26;
}
.hero-resources{
  color:#fff;
  background:
    linear-gradient(135deg, rgba(38,45,69,.94), rgba(49,72,84,.84)),
    radial-gradient(circle at 20% 18%, rgba(198,155,71,.2), transparent 28%);
}
.hero-contact{
  color:#fff;
  background:
    linear-gradient(135deg, rgba(24,31,48,.94), rgba(41,50,77,.80)),
    url("assets/batmitzvah-girl.webp") center 18%/cover no-repeat;
}
.hero-contact .hero-overlay{
  background:linear-gradient(90deg, rgba(24,31,48,.48), rgba(24,31,48,.14) 50%, rgba(24,31,48,.42));
}
.section{
  padding:clamp(4rem, 8vw, 6rem) 0;
}
.section-tint{
  padding:1.35rem 0;
  background:rgba(255,255,255,.35);
  border-top:1px solid rgba(255,255,255,.55);
  border-bottom:1px solid rgba(214,198,179,.6);
}
.section-soft{
  background:
    linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.35)),
    var(--surface-2);
  border-top:1px solid rgba(214,198,179,.45);
  border-bottom:1px solid rgba(214,198,179,.45);
}
.section-band{
  background:
    linear-gradient(135deg, rgba(43,51,80,.92), rgba(108,67,86,.84));
  color:#fff;
}
.section-head{
  margin-bottom:2rem;
}
.section-head.center{
  text-align:center;
  max-width:760px;
  margin-inline:auto;
  margin-bottom:2.3rem;
}
.section-head h2,
.split h2,
.band h2{
  font-family:Georgia, "Times New Roman", ui-serif, serif;
  font-size:clamp(2rem, 3.2vw, 3.25rem);
  line-height:1.1;
  margin:.15rem 0 1rem;
  letter-spacing:-.025em;
}
.section-head p:last-child,
.split p,
.card p,
.callout p,
.detail-card p,
.bank-card p,
.faq-list p,
.quote-card p{
  color:var(--ink-soft);
}
.badge-row{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  justify-content:center;
}
.badge{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:.55rem .95rem;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  color:var(--ink);
  box-shadow:var(--shadow-soft);
  font-weight:600;
  font-size:.92rem;
}
.split{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:2.25rem;
  align-items:center;
}
.split-balanced{
  align-items:start;
}
.stack{
  display:grid;
  gap:1.15rem;
}
.card-grid{
  display:grid;
  gap:1rem;
}
.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}
.three-up{grid-template-columns:repeat(3,minmax(0,1fr))}
.four-up{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{
  background:rgba(255,250,245,.88);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:1.2rem 1.2rem 1.1rem;
  box-shadow:var(--shadow-soft);
}
.roomy{padding:1.35rem}
.card h3,
.callout h3,
.detail-card h3,
.bank-card h2,
.quote-card blockquote{
  font-family:Georgia, "Times New Roman", ui-serif, serif;
  line-height:1.16;
}
.card h3{
  font-size:1.36rem;
  margin:.15rem 0 .55rem;
}
.card-kicker{
  margin:0 0 .28rem;
  color:var(--brand);
  font-size:.75rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
}
.detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.detail-card{
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  border-radius:24px;
  padding:1.15rem;
  box-shadow:var(--shadow-soft);
}
.detail-card h3{
  font-size:1.22rem;
  margin:.1rem 0 .45rem;
}
.text-link{
  font-weight:700;
  color:var(--brand);
}
.inline-links{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
.icon-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.58rem;
}
.icon-list li{
  position:relative;
  padding-left:1.25rem;
  color:var(--ink-soft);
}
.icon-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.58rem;
  width:.45rem;
  height:.45rem;
  border-radius:999px;
  background:linear-gradient(135deg, var(--accent), var(--brand-2));
}
.icon-list.compact{gap:.45rem}
.image-stack{
  display:grid;
  grid-template-columns:1fr .82fr;
  gap:1rem;
  align-items:end;
}
.image-stack img,
.gallery-grid img,
.art-card img,
.portrait-card img,
.media-card img{
  border-radius:26px;
  box-shadow:var(--shadow);
  width:100%;
  height:100%;
  object-fit:cover;
}
.image-stack img:first-child{
  min-height:430px;
}
.image-stack img:last-child{
  min-height:330px;
}
.gallery-grid{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:1rem;
}
.gallery-grid img:first-child{min-height:340px}
.gallery-grid img:last-child{min-height:340px}
.art-card,
.portrait-card,
.media-card{
  position:relative;
}
.art-card img{
  min-height:480px;
}
.art-caption{
  margin:.9rem 0 0;
  color:var(--ink-faint);
  font-size:.93rem;
}
.callout{
  background:rgba(255,255,255,.74);
  border:1px solid var(--line);
  border-radius:28px;
  padding:1.3rem;
  box-shadow:var(--shadow-soft);
}
.callout h3{
  font-size:1.45rem;
  margin:.1rem 0 .55rem;
}
.leader-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.9rem;
  margin-bottom:1rem;
}
.mini-card{
  background:rgba(255,255,255,.74);
  border:1px solid var(--line);
  border-radius:20px;
  padding:1rem 1rem .95rem;
  box-shadow:var(--shadow-soft);
  display:grid;
  gap:.2rem;
}
.mini-card span{color:var(--ink-soft)}
.pill-list{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}
.pill{
  display:inline-flex;
  align-items:center;
  padding:.5rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  font-size:.93rem;
}
.band{
  display:flex;
  gap:2rem;
  align-items:center;
  justify-content:space-between;
}
.band-actions,
.center-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
}
.band p{color:var(--ink-soft)}
.section-band .band p{color:rgba(255,255,255,.82)}
p.eyebrow{color:var(--brand)}
.hero p.eyebrow,
.section-band p.eyebrow{color:rgba(255,255,255,.82)}

.split-quote{
  align-items:stretch;
}
.quote-card{
  background:linear-gradient(135deg, rgba(255,250,245,.96), rgba(247,240,231,.92));
  border:1px solid var(--line);
  border-radius:32px;
  padding:1.65rem;
  box-shadow:var(--shadow);
  display:grid;
  align-content:start;
}
.quote-card blockquote{
  margin:.2rem 0 .9rem;
  font-size:clamp(1.45rem, 2.3vw, 2.25rem);
  letter-spacing:-.02em;
}
.quote-attribution{
  margin-top:auto;
  font-size:.94rem;
  color:var(--ink-faint);
}
.bank-card{
  background:rgba(255,250,245,.88);
  border:1px solid var(--line);
  border-radius:32px;
  padding:1.5rem;
  box-shadow:var(--shadow);
}
.bank-details{
  display:grid;
  gap:.8rem;
  margin:1.2rem 0;
}
.bank-details div{
  display:grid;
  gap:.15rem;
  padding:.9rem 1rem;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  border-radius:18px;
}
.bank-details dt{
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  color:var(--brand-2);
}
.bank-details dd{
  margin:0;
  font-size:1.08rem;
}
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1rem;
}
.pricing-card{
  text-align:center;
  background:rgba(255,250,245,.92);
  border:1px solid var(--line);
  border-radius:26px;
  padding:1.3rem 1rem;
  box-shadow:var(--shadow-soft);
}
.pricing-card h3{
  font-family:Georgia, "Times New Roman", ui-serif, serif;
  font-size:1.25rem;
  margin:.1rem 0 .55rem;
}
.price{
  font-size:2rem;
  font-weight:800;
  line-height:1;
  margin:.35rem 0;
  color:var(--brand);
}
.price-inline{
  color:var(--brand);
  font-weight:800;
  font-size:1.5rem;
  margin:.25rem 0 .45rem;
}
.faq-layout{
  display:grid;
  gap:1.5rem;
}
.faq-list{
  display:grid;
  gap:1rem;
}
details{
  background:rgba(255,250,245,.86);
  border:1px solid var(--line);
  border-radius:20px;
  padding:1rem 1.1rem;
  box-shadow:var(--shadow-soft);
}
summary{
  cursor:pointer;
  list-style:none;
  font-weight:700;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"+";
  float:right;
  font-size:1.15rem;
  color:var(--brand-2);
}
details[open] summary::after{
  content:"–";
}
details p{
  margin:.8rem 0 0;
}
.resource-card p{
  margin-bottom:.7rem;
}
.contact-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin-top:1rem;
}
.contact-form label{
  display:grid;
  gap:.45rem;
}
.contact-form span{
  font-weight:600;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.84);
  color:var(--ink);
  border-radius:16px;
  padding:.85rem .95rem;
  box-shadow:inset 0 1px 2px rgba(32,37,54,.03);
}
.form-wide{
  grid-column:1 / -1;
}
.contact-form button{
  border:none;
  cursor:pointer;
}
/* Simchas section */
.simchas-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:1rem;
  margin-bottom:1.5rem;
}
.simchas-loading,
.simchas-empty{
  text-align:center;
  color:var(--ink-faint);
  grid-column:1 / -1;
  padding:2rem 0;
}
.simcha-card{
  background:rgba(255,250,245,.88);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:1.15rem 1.2rem;
  box-shadow:var(--shadow-soft);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 1rem;
  align-items:start;
}
.simcha-date{
  grid-row:1 / 3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:3.6rem;
  padding:.55rem .45rem;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(43,51,80,.07), rgba(108,67,86,.07));
  border:1px solid rgba(214,198,179,.45);
  text-align:center;
  line-height:1.1;
}
.simcha-day{
  font-size:1.45rem;
  font-weight:800;
  color:var(--brand);
}
.simcha-month{
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--brand-2);
  margin-top:.1rem;
}
.simcha-title{
  font-family:Georgia, "Times New Roman", ui-serif, serif;
  font-size:1.15rem;
  line-height:1.2;
  margin:0;
}
.simcha-meta{
  color:var(--ink-faint);
  font-size:.9rem;
  margin:.2rem 0 0;
}
.simcha-desc{
  grid-column:1 / -1;
  color:var(--ink-soft);
  font-size:.93rem;
  margin:.65rem 0 0;
}
.simcha-ticket{
  grid-column:1 / -1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  justify-self:start;
  margin:.7rem 0 0;
  padding:.45rem 1rem;
  font-size:.85rem;
  font-weight:600;
  color:#fffaf5;
  background:linear-gradient(135deg, var(--brand), var(--brand-2));
  border:none;
  border-radius:var(--radius-sm);
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
  box-shadow:var(--shadow-soft);
}
.simcha-ticket:hover{
  transform:translateY(-1px);
}
.simchas-month-heading{
  grid-column:1 / -1;
  font-family:Georgia, "Times New Roman", ui-serif, serif;
  font-size:1.3rem;
  margin:.5rem 0 -.15rem;
  color:var(--ink);
}
.simchas-month-heading:first-child{
  margin-top:0;
}
.muted{color:var(--ink-faint)}
.center-actions{justify-content:center; margin-top:1.5rem}
.site-footer{
  background:linear-gradient(135deg, #202536, #2f3650);
  color:#fefcf9;
  padding:3.2rem 0 3rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.3fr .7fr .7fr .8fr;
  gap:2rem;
}
.footer-brand p{
  color:rgba(255,255,255,.82);
  max-width:38ch;
}
.brand-footer strong,
.brand-footer small{
  color:#fff;
}
.site-footer h3{
  margin:.15rem 0 .75rem;
  font-size:1rem;
}
.site-footer ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.55rem;
}
.site-footer li,
.site-footer a{
  color:rgba(255,255,255,.86);
}
.site-footer .brand img{
  filter:brightness(0) invert(1);
}
.footer-meta{
  font-size:.88rem;
}
@media (max-width: 1080px){
  .pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .four-up{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 960px){
  .nav-toggle{display:inline-flex}
  .site-nav{
    position:absolute;
    left:1rem;
    right:1rem;
    top:100%;
    padding:1rem;
    border-radius:24px;
    border:1px solid var(--line);
    background:rgba(255,250,245,.96);
    box-shadow:var(--shadow);
    display:none;
    flex-direction:column;
    align-items:flex-start;
  }
  .site-nav[data-open="true"]{display:flex}
  .site-nav a[aria-current="page"]::after{display:none}
  .hero-layout,
  .split,
  .band{
    grid-template-columns:1fr;
  }
  .hero{
    min-height:auto;
    padding:4.8rem 0 3.5rem;
  }
  .hero h1{max-width:12ch}
  .hero-panel{max-width:640px}
  .three-up,
  .two-up,
  .pricing-grid,
  .detail-grid,
  .contact-form,
  .leader-grid{
    grid-template-columns:1fr 1fr;
  }
  .image-stack,
  .gallery-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width: 680px){
  .announcement{
    font-size:.86rem;
  }
  .announcement a{
    display:block;
    margin:.55rem auto 0;
    width:fit-content;
  }
  .nav-shell{min-height:72px}
  .hero h1{font-size:clamp(2.35rem, 10vw, 3.4rem)}
  .hero-intro{font-size:1rem}
  .three-up,
  .two-up,
  .four-up,
  .pricing-grid,
  .detail-grid,
  .contact-form,
  .leader-grid,
  .footer-grid,
  .image-stack,
  .gallery-grid{
    grid-template-columns:1fr;
  }
  .image-stack img:first-child,
  .image-stack img:last-child,
  .gallery-grid img:first-child,
  .gallery-grid img:last-child,
  .art-card img{
    min-height:unset;
  }
  .section{padding:3.6rem 0}
  .band-actions,
  .hero-actions,
  .center-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .button{
    width:100%;
  }
}


/* Homepage tightening for wide screens */
@media (min-width: 961px){
  .home .hero{
    min-height:66vh;
    padding:4.75rem 0 3.4rem;
  }
  .home .hero-layout{
    align-items:start;
    grid-template-columns:minmax(0,1.08fr) minmax(320px,.78fr);
  }
  .home .hero h1{
    font-size:clamp(2.7rem, 4.2vw, 4.35rem);
    max-width:11ch;
  }
  .home .hero-intro{
    max-width:56ch;
  }
  .home .hero-panel{
    align-self:start;
    margin-top:.65rem;
  }
}

/* Torah reading directory */
.torah-toolbar{
  display:grid;
  gap:1rem;
  margin-bottom:2rem;
}
.torah-search{
  display:grid;
  gap:.45rem;
  max-width:460px;
  margin:0 auto;
}
.torah-search-label{
  font-weight:700;
  color:var(--ink-soft);
}
.torah-search input{
  width:100%;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.86);
  color:var(--ink);
  border-radius:16px;
  padding:.9rem 1rem;
  box-shadow:inset 0 1px 2px rgba(32,37,54,.03);
}
.book-chip-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.65rem;
}
.book-chip,
.mini-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:.55rem .9rem;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.78);
  color:var(--brand);
  font-weight:600;
  box-shadow:var(--shadow-soft);
}
.search-status{
  min-height:1.4rem;
  margin:.6rem 0 0;
  text-align:center;
  color:var(--ink-faint);
}
.parasha-directory{
  display:grid;
  gap:2.4rem;
}
.group-head{
  margin-bottom:1rem;
}
.parasha-stack{
  display:grid;
  gap:1rem;
}
.parasha-subhead{
  display:flex;
  align-items:center;
  margin:.25rem 0 -.15rem;
}
.parasha-subhead span{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--ink-faint);
  font-weight:700;
}
.parasha-item{
  overflow:hidden;
}
.parasha-item summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.05rem 1.15rem;
}
.parasha-heading{
  display:grid;
  gap:.16rem;
}
.parasha-heading strong{
  font-size:1.16rem;
}
.parasha-heading small{
  color:var(--ink-soft);
}
.parasha-summary-meta{
  color:var(--ink-faint);
  font-size:.92rem;
  white-space:nowrap;
}
.parasha-panel{
  padding:0 1.15rem 1.15rem;
}
.parasha-actions{
  display:flex;
  justify-content:flex-end;
  margin:0 0 .9rem;
}
.aliyah-table{
  width:100%;
  border-collapse:collapse;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
}
.aliyah-table thead th{
  background:rgba(247,240,231,.86);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--ink-faint);
}
.aliyah-table th,
.aliyah-table td{
  text-align:left;
  vertical-align:top;
  padding:.85rem .8rem;
  border-top:1px solid var(--line);
}
.aliyah-table tbody tr:first-child th,
.aliyah-table tbody tr:first-child td{
  border-top:1px solid var(--line);
}
.aliyah-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.4rem;
  padding:.35rem .6rem;
  border-radius:999px;
  background:rgba(43,51,80,.08);
  color:var(--brand);
  font-weight:700;
}
.aliyah-range{
  font-weight:600;
}
.aliyah-note{
  margin:.28rem 0 0;
  color:var(--ink-faint);
  font-size:.88rem;
}
.aliyah-count{
  margin:.24rem 0 0;
  color:var(--ink-faint);
  font-size:.88rem;
}
.link-cluster{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}
.attribution-block{
  max-width:860px;
}
.attribution-text{
  color:var(--ink-soft);
}

@media (max-width: 960px){
  .parasha-item summary{
    flex-direction:column;
    align-items:flex-start;
  }
  .parasha-summary-meta{
    white-space:normal;
  }
}

@media (max-width: 680px){
  .parasha-panel{
    padding:0 .9rem .95rem;
  }
  .aliyah-table,
  .aliyah-table thead,
  .aliyah-table tbody,
  .aliyah-table tr,
  .aliyah-table th,
  .aliyah-table td{
    display:block;
    width:100%;
  }
  .aliyah-table thead{
    display:none;
  }
  .aliyah-table tr{
    padding:.25rem 0;
  }
  .aliyah-table th,
  .aliyah-table td{
    border-top:none;
    padding:.5rem 0;
  }
  .aliyah-table tbody tr{
    border-top:1px solid var(--line);
    padding:.65rem 0;
  }
}


.policy-sheet{
  max-width:860px;
  margin:0 auto;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  padding:clamp(1.3rem, 2.8vw, 2.1rem);
}
.policy-header{
  margin-bottom:1.2rem;
  padding-bottom:1rem;
  border-bottom:1px solid rgba(214,198,179,.72);
}
.policy-title-row{
  display:flex;
  align-items:center;
  gap:1rem;
}
.policy-logo{
  flex:0 0 auto;
}
.policy-section + .policy-section{
  margin-top:1.5rem;
}
.policy-section h2,
.policy-section h3{
  margin-bottom:.6rem;
}
.policy-list{
  display:grid;
  gap:.6rem;
  padding-left:1.15rem;
}
.audio-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:1rem;
}
.audio-resource-card audio{
  width:100%;
  display:block;
  margin:.65rem 0 .45rem;
}
@media (max-width: 640px){
  .policy-title-row{
    align-items:flex-start;
  }
  .policy-logo{
    width:46px;
    height:46px;
  }
}
