/*
Theme Name: Beit Yosef
Theme URI: https://cityoftzfat.com/
Description: A bilingual (English / Hebrew) theme for the synagogue of Rabbi Yosef Karo in Tzfat. Pairs with the "Beit Yosef Synagogue Core" plugin.
Author: Beit Knesset Maran Beit Yosef
Version: 1.0.0
Requires at least: 6.2
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: beit-yosef
Tags: rtl-language-support, translation-ready, custom-logo, custom-menu
*/

/* ==========================================================================
   Tokens — Tzfat blue, limestone, parchment and old gold
   ========================================================================== */
:root {
	--byk-ink: #1f1b16;
	--byk-muted: #6b6357;
	--byk-paper: #fffaf0;
	--byk-bg: #f6f0e4;
	--byk-stone: #ebe1cc;
	--byk-line: #e3d7bf;
	--byk-blue: #1d3557;
	--byk-blue-deep: #14243c;
	--byk-accent: #2f6aa3;
	--byk-gold: #a8842f;
	--byk-gold-light: #d7b56d;
	--byk-radius: 14px;
	--byt-wrap: 1180px;
	--byt-prose: 720px;
	--byt-gutter: clamp(16px, 4vw, 32px);
	--byt-serif-en: "Cormorant Garamond", "Frank Ruhl Libre", Georgia, serif;
	--byt-serif: "Frank Ruhl Libre", Georgia, "Times New Roman", serif;
	color-scheme: light;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--byk-bg);
	color: var(--byk-ink);
	font-family: var(--byt-serif);
	font-size: 18px;
	line-height: 1.7;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
.lang-he body, body.lang-he { font-size: 19px; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--byk-accent); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--byk-blue); }
:focus-visible { outline: 3px solid var(--byk-gold-light); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3, h4 { color: var(--byk-blue); line-height: 1.2; font-weight: 700; margin: 0 0 .5em; }
.lang-en h1, .lang-en h2, .lang-en h3 { font-family: var(--byt-serif-en); font-weight: 600; letter-spacing: .005em; }
.lang-en h1 { font-size: clamp(2.2rem, 4.6vw, 3.4rem); }
.lang-en h2 { font-size: clamp(1.7rem, 3vw, 2.25rem); }
.lang-en h3 { font-size: 1.4rem; }
.lang-he h1 { font-size: clamp(2rem, 4.2vw, 3rem); }
.lang-he h2 { font-size: clamp(1.5rem, 2.6vw, 1.95rem); }
.lang-he h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.byt-skip { position: absolute; inset-inline-start: 12px; top: -60px; background: var(--byk-blue); color: #fff; padding: 10px 16px; border-radius: 8px; z-index: 100; }
.byt-skip:focus { top: 12px; }
.byt-wrap { max-width: var(--byt-wrap); margin-inline: auto; padding-inline: var(--byt-gutter); }
.byt-center { text-align: center; }
.byt-eyebrow { font-size: .82rem; letter-spacing: .16em; text-transform: uppercase; color: var(--byk-gold-light); margin-bottom: 14px; font-weight: 500; }
.lang-he .byt-eyebrow { letter-spacing: .04em; text-transform: none; font-size: .95rem; }

/* Buttons */
.byt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 26px; border-radius: 99px; font-weight: 700; font-size: 1rem; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s; line-height: 1.2; }
.byt-btn--gold { background: var(--byk-gold); color: #fff; }
.byt-btn--gold:hover { background: #8f6f24; color: #fff; }
.byt-btn--ghost { border-color: rgba(255,255,255,.6); color: #fff; }
.byt-btn--ghost:hover { background: rgba(255,255,255,.12); color: #fff; }
.byt-btn--blue { background: var(--byk-blue); color: #fff; }
.byt-btn--blue:hover { background: var(--byk-blue-deep); color: #fff; }
.byt-btn--small { min-height: 40px; padding: 8px 18px; font-size: .92rem; }
.byt-btn--block { display: flex; flex-direction: column; width: 100%; border-radius: 12px; gap: 2px; }
.byt-btn small { font-weight: 400; opacity: .8; font-size: .8rem; }
.byt-more { font-weight: 700; text-decoration: none; white-space: nowrap; }
.byt-more::after { content: " →"; }
.lang-he .byt-more::after { content: " ←"; }
.byt-more:hover { text-decoration: underline; }

/* ==========================================================================
   Header
   ========================================================================== */
.byt-header { position: sticky; top: 0; z-index: 50; background: rgba(246, 240, 228, .94); backdrop-filter: saturate(140%) blur(8px); -webkit-backdrop-filter: saturate(140%) blur(8px); border-bottom: 1px solid var(--byk-line); }
.byt-header__inner { max-width: var(--byt-wrap); margin-inline: auto; padding: 10px var(--byt-gutter); display: flex; align-items: center; gap: 20px; min-height: 68px; }
.byt-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--byk-blue); margin-inline-end: auto; min-width: 0; flex: 0 1 auto; }
.byt-brand__he { white-space: nowrap; }
.byt-brand__mark { width: 32px; height: 42px; color: var(--byk-gold); flex: none; }
.byt-brand__logo { width: 44px; height: 44px; object-fit: contain; }
.byt-brand__text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.byt-brand__he { font-family: var(--byt-serif); font-weight: 700; font-size: 1.08rem; }
.byt-brand__en { font-family: var(--byt-serif-en); font-size: .9rem; color: var(--byk-muted); letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lang-he .byt-brand__en { font-size: .82rem; }

.byt-nav { display: flex; align-items: center; gap: 16px; }
.byt-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; gap: 2px; }
.byt-nav__list a { display: block; padding: 8px 8px; border-radius: 8px; text-decoration: none; color: var(--byk-ink); font-size: .92rem; font-weight: 500; white-space: nowrap; }
.byt-nav__list a:hover, .byt-nav__list .current-menu-item > a, .byt-nav__list .current_page_item > a, .byt-nav__list .current-menu-ancestor > a { color: var(--byk-blue); background: rgba(29, 53, 87, .07); }
.byt-nav__list .sub-menu { list-style: none; margin: 0; padding: 0; }
.byt-lang { display: inline-block; padding: 6px 12px; border: 1px solid var(--byk-gold); border-radius: 99px; text-decoration: none; color: var(--byk-gold); font-weight: 700; font-size: .9rem; }
.byt-lang:hover { background: var(--byk-gold); color: #fff; }

.byt-menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--byk-line); border-radius: 12px; background: var(--byk-paper); cursor: pointer; padding: 0; position: relative; }
.byt-menu-toggle__bars, .byt-menu-toggle__bars::before, .byt-menu-toggle__bars::after { position: absolute; left: 50%; width: 20px; height: 2px; background: var(--byk-blue); transform: translateX(-50%); transition: transform .25s, opacity .25s; content: ""; }
.byt-menu-toggle__bars { top: 50%; margin-top: -1px; }
.byt-menu-toggle__bars::before { top: -6px; }
.byt-menu-toggle__bars::after { top: 6px; }
.byt-menu-toggle[aria-expanded="true"] .byt-menu-toggle__bars { background: transparent; }
.byt-menu-toggle[aria-expanded="true"] .byt-menu-toggle__bars::before { transform: translate(-50%, 6px) rotate(45deg); }
.byt-menu-toggle[aria-expanded="true"] .byt-menu-toggle__bars::after { transform: translate(-50%, -6px) rotate(-45deg); }

@media (max-width: 1440px) {
	.byt-menu-toggle { display: block; }
	.byt-nav { position: fixed; inset: 68px 0 0 0; background: var(--byk-bg); flex-direction: column; align-items: stretch; padding: 16px var(--byt-gutter) 40px; overflow-y: auto; transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; border-top: 1px solid var(--byk-line); }
	.byt-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	.byt-nav__list { flex-direction: column; }
	.byt-nav__list a { font-size: 1.15rem; padding: 12px 8px; border-bottom: 1px solid var(--byk-line); border-radius: 0; }
	.byt-nav__extra { padding-top: 16px; }
	body.byt-nav-open { overflow: hidden; }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.byt-hero {
	position: relative;
	color: #fff;
	background:
		radial-gradient(ellipse at 20% 0%, rgba(215, 181, 109, .22), transparent 55%),
		linear-gradient(160deg, #22406a 0%, var(--byk-blue) 45%, var(--byk-blue-deep) 100%);
	overflow: hidden;
	isolation: isolate;
}
.byt-hero::before {
	/* row of arches, echoing the prayer hall */
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 62%;
	background-image: radial-gradient(circle at 50% 100%, transparent 38px, rgba(255, 255, 255, .06) 39px, rgba(255, 255, 255, .06) 41px, transparent 42px);
	background-size: 96px 120px;
	background-position: center bottom;
	z-index: -1;
	mask-image: linear-gradient(to top, #000 10%, transparent 90%);
	-webkit-mask-image: linear-gradient(to top, #000 10%, transparent 90%);
}
.byt-hero.has-photo { background: linear-gradient(100deg, rgba(20, 36, 60, .92) 0%, rgba(20, 36, 60, .75) 45%, rgba(20, 36, 60, .35) 100%), var(--byt-hero) center / cover no-repeat; }
.lang-he .byt-hero.has-photo { background: linear-gradient(260deg, rgba(20, 36, 60, .92) 0%, rgba(20, 36, 60, .75) 45%, rgba(20, 36, 60, .35) 100%), var(--byt-hero) center / cover no-repeat; }
.byt-hero.has-photo::before { display: none; }
.byt-hero__inner { max-width: var(--byt-wrap); margin-inline: auto; padding: clamp(40px, 7vw, 96px) var(--byt-gutter) clamp(40px, 6vw, 80px); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 420px); gap: clamp(28px, 5vw, 64px); align-items: center; }
.byt-hero__title { margin: 0 0 18px; color: #fff; display: flex; flex-direction: column; gap: 6px; }
.byt-hero__he { font-family: var(--byt-serif); font-weight: 900; font-size: clamp(2.2rem, 5.4vw, 4rem); line-height: 1.05; }
.byt-hero__en { font-family: var(--byt-serif-en); font-weight: 600; font-size: clamp(1.35rem, 2.6vw, 2rem); color: var(--byk-gold-light); letter-spacing: .01em; }
.lang-he .byt-hero__en { font-size: clamp(1.1rem, 2vw, 1.5rem); }
.byt-hero__lead { font-size: clamp(1.05rem, 1.6vw, 1.22rem); max-width: 34em; color: rgba(255, 255, 255, .9); margin-bottom: 26px; }
.byt-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.byt-hero__card .byk-prayer { box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .55); border: 0; }
.byt-hero__card .byk-prayer__title::before { content: ""; display: inline-block; width: 10px; height: 10px; background: var(--byk-gold); border-radius: 50%; margin-inline-end: 8px; vertical-align: middle; box-shadow: 0 0 0 4px rgba(168, 132, 47, .2); }
@media (max-width: 860px) {
	.byt-hero__inner { grid-template-columns: 1fr; }
	.byt-hero__lead { margin-bottom: 20px; }
}

/* ==========================================================================
   Sections
   ========================================================================== */
.byt-section { padding: clamp(44px, 7vw, 88px) 0; }
.byt-section + .byt-section { padding-top: 0; }
.byt-works-band + .byt-section { padding-top: clamp(44px, 7vw, 88px); }
.byt-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.byt-section__head h2 { margin: 0; }

.byt-announce { padding-top: clamp(32px, 5vw, 56px); }
.byt-announce__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.byt-announce__item { background: var(--byk-paper); border: 1px solid var(--byk-line); border-radius: var(--byk-radius); padding: 18px 20px; border-top: 3px solid var(--byk-accent); }
.byt-announce__item.is-pinned { border-top-color: var(--byk-gold); }
.byt-announce__item time { font-size: .85rem; color: var(--byk-muted); }
.byt-announce__item h3 { margin: 4px 0 6px; font-size: 1.2rem; }
.byt-announce__item h3 a { color: var(--byk-ink); text-decoration: none; }
.byt-announce__item h3 a:hover { color: var(--byk-accent); }
.byt-announce__item p { margin: 0; color: var(--byk-muted); font-size: .97rem; }

.byt-intro__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.byt-intro__text p { font-size: 1.1rem; }
.byt-facts { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--byk-line); border: 1px solid var(--byk-line); border-radius: var(--byk-radius); overflow: hidden; }
.byt-facts div { background: var(--byk-paper); padding: 18px; }
.byt-facts dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: var(--byk-gold); margin-bottom: 4px; font-weight: 600; }
.lang-he .byt-facts dt { text-transform: none; letter-spacing: 0; font-size: .9rem; }
.byt-facts dd { margin: 0; font-size: 1.08rem; font-weight: 700; color: var(--byk-blue); }
@media (max-width: 860px) { .byt-intro__grid { grid-template-columns: 1fr; } }

/* Arched cards */
.byt-arches { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; margin-top: 26px; }
.byt-arch { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 34px 22px 26px; background: var(--byk-paper); border: 1px solid var(--byk-line); border-radius: 999px 999px var(--byk-radius) var(--byk-radius); text-decoration: none; color: var(--byk-ink); transition: transform .2s, box-shadow .2s, border-color .2s; }
.byt-arch:hover { transform: translateY(-3px); border-color: var(--byk-gold-light); box-shadow: 0 18px 40px -26px rgba(29, 53, 87, .55); color: var(--byk-ink); }
.byt-arch__mark { width: 30px; height: 40px; color: var(--byk-gold); }
.byt-arch__title { font-size: 1.3rem; font-weight: 700; color: var(--byk-blue); }
.lang-en .byt-arch__title { font-family: var(--byt-serif-en); font-size: 1.45rem; font-weight: 600; }
.byt-arch__desc { color: var(--byk-muted); font-size: .95rem; line-height: 1.5; }

/* Book spines */
.byt-works-band { background: var(--byk-stone); padding-top: clamp(44px, 7vw, 88px) !important; }
.byt-books { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.byt-book { display: flex; flex-direction: column; gap: 6px; padding: 24px 22px; min-height: 170px; border-radius: 6px 14px 14px 6px; background: linear-gradient(90deg, #13253f 0, var(--byk-blue) 14px, #23416b 100%); color: #fff; text-decoration: none; position: relative; box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .6); transition: transform .2s; }
.lang-he .byt-book { border-radius: 14px 6px 6px 14px; background: linear-gradient(270deg, #13253f 0, var(--byk-blue) 14px, #23416b 100%); }
.byt-book::after { content: ""; position: absolute; inset-inline: 22px; bottom: 18px; height: 1px; background: var(--byk-gold-light); opacity: .6; }
.byt-book:hover { transform: translateY(-3px); color: #fff; }
.byt-book__he { font-size: 1.7rem; font-weight: 900; color: var(--byk-gold-light); line-height: 1.15; }
.byt-book__en { font-family: var(--byt-serif-en); font-size: 1.25rem; font-weight: 600; }
.byt-book__meta { font-size: .88rem; color: rgba(255, 255, 255, .75); margin-top: auto; padding-bottom: 10px; }

/* Cards */
.byt-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 18px; }
.byt-card { background: var(--byk-paper); border: 1px solid var(--byk-line); border-radius: var(--byk-radius); padding: 22px 22px 18px; display: flex; flex-direction: column; transition: border-color .2s, box-shadow .2s; }
.byt-card:hover { border-color: var(--byk-gold-light); box-shadow: 0 16px 34px -26px rgba(29, 53, 87, .6); }
.byt-card h2, .byt-card h3 { font-size: 1.35rem; margin: 6px 0 8px; }
.lang-he .byt-card h2, .lang-he .byt-card h3 { font-size: 1.22rem; }
.byt-card h2 a, .byt-card h3 a { color: var(--byk-ink); text-decoration: none; }
.byt-card h2 a:hover, .byt-card h3 a:hover { color: var(--byk-accent); }
.byt-card p { color: var(--byk-muted); font-size: .98rem; }
.byt-card__kicker { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: .82rem; color: var(--byk-gold); font-weight: 700; margin: 0; }
.byt-card__foot { margin: auto 0 0; font-size: .85rem; }
.byt-badge { display: inline-block; font-size: .74rem; font-weight: 700; padding: 2px 10px; border-radius: 99px; letter-spacing: .02em; }
.byt-badge--documented { background: #e2ecf7; color: #1d4673; }
.byt-badge--tradition { background: #f4ead2; color: #7a5a14; }
.byt-badge--legend { background: #ece5f4; color: #4b2f73; }

/* CTA */
.byt-cta { background: var(--byk-blue); color: #fff; padding: clamp(40px, 6vw, 72px) 0; position: relative; overflow: hidden; }
.byt-cta::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle at 50% 100%, transparent 38px, rgba(255, 255, 255, .05) 39px, rgba(255, 255, 255, .05) 41px, transparent 42px); background-size: 96px 120px; pointer-events: none; }
.byt-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; position: relative; }
.byt-cta h2 { color: #fff; margin-bottom: 6px; }
.byt-cta p { color: rgba(255, 255, 255, .85); margin: 0; max-width: 36em; }

/* ==========================================================================
   Page layout
   ========================================================================== */
.byt-pagehead { background: linear-gradient(180deg, var(--byk-stone), var(--byk-bg)); padding: clamp(36px, 6vw, 72px) 0 clamp(24px, 4vw, 40px); border-bottom: 1px solid var(--byk-line); margin-bottom: clamp(28px, 4vw, 48px); }
.byt-pagehead .byt-wrap { max-width: calc(var(--byt-prose) + 2 * var(--byt-gutter) + 160px); }
.byt-pagehead h1 { margin-bottom: 10px; }
.byt-pagehead__other { font-size: 1.15rem; color: var(--byk-gold); font-weight: 700; margin: 0 0 4px; }
.byt-pagehead__other[lang="en"] { font-family: var(--byt-serif-en); font-size: 1.25rem; font-weight: 600; }
.byt-pagehead__lead { font-size: 1.15rem; color: var(--byk-muted); max-width: 40em; margin: 0; }
.byt-pagehead__meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; color: var(--byk-muted); font-size: .92rem; margin: 6px 0 0; }
.byt-crumb { font-size: .92rem; margin: 0 0 10px; }
.byt-crumb a { color: var(--byk-gold); text-decoration: none; font-weight: 700; }
.byt-feature { margin-bottom: 32px; }
.byt-feature img { width: 100%; border-radius: var(--byk-radius); }

.byt-prose { max-width: calc(var(--byt-prose) + 2 * var(--byt-gutter)); margin: 0 auto clamp(48px, 7vw, 88px); padding-inline: var(--byt-gutter); }
.byt-prose--wide { max-width: calc(var(--byt-wrap)); }
.byt-prose--inline { margin: 0; padding: 0; max-width: var(--byt-prose); }
.byt-prose h2 { margin-top: 1.6em; padding-top: .2em; }
.byt-prose h2::before { content: ""; display: block; width: 44px; height: 2px; background: var(--byk-gold); margin-bottom: 14px; }
/* Plugin blocks inside page text keep their own headings. */
.byt-prose .byk-prayer h2, .byt-prose .byk-prayer h3 { margin-top: 0; padding-top: 0; }
.byt-prose .byk-prayer h2::before, .byt-prose .byk-prayer h3::before { display: none; }
.byt-prose .byk-prayer--full .byk-prayer__title { display: none; }
.byt-prose h3 { margin-top: 1.4em; }
.byt-prose .lead { font-size: 1.22rem; color: var(--byk-ink); line-height: 1.65; }
.byt-prose ul, .byt-prose ol { padding-inline-start: 1.3em; }
.byt-prose li { margin-bottom: .45em; }
.byt-prose blockquote { margin: 1.6em 0; padding: 4px 22px; border-inline-start: 3px solid var(--byk-gold); color: var(--byk-blue); font-size: 1.15rem; font-style: italic; }
.byt-prose .byk-note { background: var(--byk-paper); border: 1px dashed var(--byk-gold-light); border-radius: 12px; padding: 14px 18px; color: var(--byk-muted); font-size: .97rem; }
.byt-prose--story > p:first-of-type::first-letter { float: inline-start; font-size: 3.6em; line-height: .85; padding-inline-end: 10px; padding-top: 6px; color: var(--byk-gold); font-weight: 700; }
.lang-he .byt-prose--story > p:first-of-type::first-letter { float: none; font-size: inherit; padding: 0; color: inherit; font-weight: inherit; }
.byt-timeline { list-style: none; padding: 0 !important; border-inline-start: 2px solid var(--byk-line); margin-inline-start: 6px; }
.byt-timeline li { position: relative; padding-inline-start: 22px; margin-bottom: 14px; }
.byt-timeline li::before { content: ""; position: absolute; inset-inline-start: -7px; top: .55em; width: 12px; height: 12px; border-radius: 50%; background: var(--byk-gold); box-shadow: 0 0 0 3px var(--byk-bg); }
.byt-timeline strong { color: var(--byk-blue); display: inline-block; min-width: 8em; }
.byt-source { margin-top: 2.4em; background: var(--byk-stone); border-radius: 12px; padding: 16px 20px; font-size: .95rem; }
.byt-source h2 { font-size: 1rem; margin: 0 0 4px; padding: 0; }
.byt-source h2::before { display: none; }
.byt-source p { margin: 0; color: var(--byk-muted); }

/* Filter pills */
.byt-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.byt-filter a { padding: 7px 16px; border-radius: 99px; border: 1px solid var(--byk-line); background: var(--byk-paper); text-decoration: none; color: var(--byk-ink); font-weight: 600; font-size: .92rem; }
.byt-filter a[aria-current] { background: var(--byk-blue); border-color: var(--byk-blue); color: #fff; }
.byt-list { margin-bottom: clamp(48px, 7vw, 88px); }

/* Works list */
.byt-worklist { display: grid; gap: 16px; margin-bottom: clamp(48px, 7vw, 88px); }
.byt-work { display: grid; grid-template-columns: minmax(180px, 260px) 1fr; gap: 0; background: var(--byk-paper); border: 1px solid var(--byk-line); border-radius: var(--byk-radius); overflow: hidden; }
.byt-work__link { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 22px; background: var(--byk-blue); color: #fff; text-decoration: none; }
.byt-work__link:hover { background: var(--byk-blue-deep); color: #fff; }
.byt-work__he { font-size: 1.7rem; font-weight: 900; color: var(--byk-gold-light); line-height: 1.15; }
.byt-work__en { font-family: var(--byt-serif-en); font-size: 1.2rem; font-weight: 600; }
.byt-work__body { padding: 18px 22px 14px; }
.byt-work__meta { font-size: .88rem; color: var(--byk-gold); font-weight: 700; margin-bottom: 6px; }
.byt-work__body > p:not(.byt-work__meta):not(.byt-work__actions) { color: var(--byk-muted); }
.byt-work__actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin: 0; }
.byt-pdf { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; text-decoration: none; color: var(--byk-blue); border: 1px solid var(--byk-blue); padding: 4px 12px; border-radius: 99px; font-size: .88rem; }
.byt-pdf::before { content: "⤓"; }
.byt-pdf:hover { background: var(--byk-blue); color: #fff; }
@media (max-width: 680px) { .byt-work { grid-template-columns: 1fr; } }

/* Single work */
.byt-pagehead--work { background: linear-gradient(170deg, #22406a, var(--byk-blue) 60%, var(--byk-blue-deep)); color: #fff; border: 0; }
.byt-pagehead--work h1 { color: #fff; }
.byt-pagehead--work .byt-crumb a { color: var(--byk-gold-light); }
.byt-work__bigher { font-size: clamp(2.6rem, 7vw, 4.6rem); font-weight: 900; color: var(--byk-gold-light); line-height: 1; margin: 0 0 8px; }
.byt-workpage__grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; margin-bottom: 48px; }
.byt-workpage__side { position: sticky; top: 92px; display: grid; gap: 16px; }
.byt-dl { margin: 0; background: var(--byk-paper); border: 1px solid var(--byk-line); border-radius: var(--byk-radius); padding: 6px 18px; }
.byt-dl div { padding: 10px 0; border-bottom: 1px solid var(--byk-line); }
.byt-dl div:last-child { border: 0; }
.byt-dl dt { font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; color: var(--byk-gold); font-weight: 700; }
.lang-he .byt-dl dt { text-transform: none; letter-spacing: 0; font-size: .88rem; }
.byt-dl dd { margin: 2px 0 0; font-size: .98rem; }
.byt-side__title { font-size: 1rem; margin: 6px 0 0; }
.byt-side__links { list-style: none; padding: 0; margin: 0; }
.byt-side__links a { font-weight: 600; }
@media (max-width: 860px) { .byt-workpage__grid { grid-template-columns: 1fr; } .byt-workpage__side { position: static; } }

/* Prev / next */
.byt-pager { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: clamp(48px, 7vw, 88px); }
.byt-pager a { display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; border: 1px solid var(--byk-line); border-radius: 12px; background: var(--byk-paper); text-decoration: none; color: var(--byk-blue); font-weight: 700; max-width: 48%; }
.byt-pager a span { font-size: .78rem; color: var(--byk-muted); font-weight: 500; }
.byt-pager__next { margin-inline-start: auto; text-align: end; }
@media (max-width: 600px) { .byt-pager a { max-width: 100%; flex: 1 1 100%; } }

/* Announcements */
.byt-annlist { max-width: calc(var(--byt-prose) + 2 * var(--byt-gutter)); }
.byt-ann { background: var(--byk-paper); border: 1px solid var(--byk-line); border-radius: var(--byk-radius); padding: 22px 24px; margin-bottom: 16px; border-inline-start: 4px solid var(--byk-accent); }
.byt-ann.is-pinned { border-inline-start-color: var(--byk-gold); }
.byt-ann time { font-size: .86rem; color: var(--byk-muted); }
.byt-ann h2 { font-size: 1.4rem; margin: 4px 0 8px; }
.byt-ann h2 a { color: var(--byk-ink); text-decoration: none; }
.byt-ann__body > :last-child { margin-bottom: 0; }

/* ==========================================================================
   Footer
   ========================================================================== */
.byt-footer { background: var(--byk-blue-deep); color: rgba(255, 255, 255, .82); padding: clamp(40px, 6vw, 64px) 0 20px; font-size: .95rem; }
.byt-footer a { color: var(--byk-gold-light); }
.byt-footer__inner { max-width: var(--byt-wrap); margin-inline: auto; padding-inline: var(--byt-gutter); display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; }
.byt-footer__mark { width: 30px; height: 40px; color: var(--byk-gold-light); }
.byt-footer__he { font-size: 1.25rem; font-weight: 700; color: #fff; margin: 8px 0 0; }
.byt-footer__en { font-family: var(--byt-serif-en); font-size: 1.1rem; color: var(--byk-gold-light); margin: 0 0 12px; }
.byt-footer__title { font-size: 1.05rem; color: #fff; margin-bottom: 10px; }
.lang-en .byt-footer__title { font-family: var(--byt-serif); font-weight: 700; font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.byt-footer__menu { list-style: none; padding: 0; margin: 14px 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.byt-footer .byk-install__btn { color: #fff; border-color: rgba(255, 255, 255, .5); }
.byt-footer .byk-install__btn:hover { background: #fff; color: var(--byk-blue); }
.byt-footer .byk-install__ios, .byt-footer .byk-install__done { color: rgba(255, 255, 255, .7); }
.byt-footer .byt-lang { color: var(--byk-gold-light); border-color: var(--byk-gold-light); }
.byt-footer__base { max-width: var(--byt-wrap); margin: 36px auto 0; padding: 18px var(--byt-gutter) 0; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .85rem; color: rgba(255, 255, 255, .55); }

/* Installed app: tighter chrome */
.byk-standalone .byt-header { padding-top: env(safe-area-inset-top); }

/* Print */
@media print {
	.byt-header, .byt-footer, .byt-cta, .byk-install, .byt-pager, .byt-filter { display: none !important; }
	body { background: #fff; font-size: 12pt; }
	.byt-pagehead { background: none; border: 0; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
