/* Kfir Widgets — all desktop sizes are Figma px (1706 frame) via --u = 1px of the frame. Mobile = px. */
:root {
  --u: calc(100vw / 1706);
  --kf-bold: 'Modernist-Bold', sans-serif;
  --kf-reg: 'Modernist-Regular', sans-serif;
  --kf-text: 'Simona-Regular', sans-serif;
  --kf-black: 'Simona-black', sans-serif;
  --kf-copper: #BC6429;
  --kf-light: #F5F4F1;
  --kf-dark: #1F1C29;
  --kf-muted: #D3DADC;
  --kf-btn-tex: url('btn-texture.webp');
}
.kf-events, .kf-pod, .kf-sky, .kf-wall, .kf-head, .kf-win { direction: rtl; box-sizing: border-box; }
.kf-events *, .kf-pod *, .kf-sky *, .kf-wall *, .kf-head *, .kf-win * { box-sizing: border-box; }
/* Hello theme paints every raw <button> pink on hover/focus (#c36) — never in this site (Roni #7) */
.kf-events button, .kf-pod button, .kf-sky button, .kf-wall button, .kf-head button, .kf-win button,
.kf-events button:hover, .kf-pod button:hover, .kf-sky button:hover, .kf-wall button:hover,
.kf-events button:focus, .kf-pod button:focus, .kf-sky button:focus, .kf-wall button:focus { background-color: transparent; color: inherit; text-decoration: none; }

/* ── copper button: texture face + copper frame offset (-4px, +5px), rounded on the left only ── */
.kf-btn { position: relative; display: inline-block; height: calc(58 * var(--u)); text-decoration: none !important; color: var(--kf-light) !important; line-height: 1; margin-bottom: calc(5 * var(--u)); margin-left: calc(4 * var(--u)); }
.kf-btn__face { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; height: 100%; padding: 0 calc(26 * var(--u)); border-radius: calc(66 * var(--u)) 0 0 calc(66 * var(--u)); background: var(--kf-btn-tex) center / cover no-repeat, linear-gradient(90deg, #8f4416, #c46a2a 55%, #8d4014); transition: filter .25s ease, transform .25s ease; }
.kf-btn__frame { position: absolute; inset: 0; transform: translate(calc(4 * var(--u)), calc(5 * var(--u))); border: 1px solid var(--kf-copper); border-radius: calc(66 * var(--u)) 0 0 calc(66 * var(--u)); pointer-events: none; }
.kf-btn__label { font-family: var(--kf-black); font-weight: 900; font-size: calc(20 * var(--u)); line-height: 1.2; white-space: nowrap; }
.kf-btn:hover .kf-btn__face, .kf-btn:focus .kf-btn__face, .kf-btn:active .kf-btn__face { filter: brightness(1.12); }

/* ── round arrows (light circle, inner shadow, warm glow) — icons point outward ── */
.kf-arrows { display: flex; gap: calc(35 * var(--u)); direction: ltr; }
.kf-arrows--center { justify-content: center; }
.kf-arrows .kf-arrow, .kf-arrows .kf-arrow:hover, .kf-arrows .kf-arrow:focus { width: calc(45 * var(--u)); height: calc(45 * var(--u)); border-radius: 50%; border: 0; padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; background-color: var(--kf-light); box-shadow: inset 0 calc(3.5 * var(--u)) calc(7 * var(--u)) rgba(0,0,0,.10), 0 calc(5.3 * var(--u)) calc(10.6 * var(--u)) rgba(249,162,30,.14); transition: transform .2s ease; }
.kf-arrow svg { width: calc(7 * var(--u)); height: calc(13 * var(--u)); display: block; }
.kf-arrow:hover { transform: translateY(-2px); }
.kf-arrow:focus-visible { outline: 2px solid var(--kf-copper); outline-offset: 2px; }

/* ══ rotating headline (hero) — stage = tallest line, every line sits on the stage bottom (constant gap to the text below),
   lines change with a slow slide-down inside a clipped stage (Roni #1, reference: alfiproductions) ══ */
.kf-head { position: relative; width: 100%; text-align: center; }
.kf-head__stage { position: relative; display: block; width: 100%; overflow: hidden; padding-bottom: .14em; box-sizing: content-box; }
/* round 7b: CSS-only stage height (see headline.php) — all ghost lines share one grid cell, the cell = the tallest line */
.kf-head__sizer { display: grid; width: 100%; visibility: hidden; pointer-events: none; }
.kf-head__line.kf-head__ghost { grid-area: 1 / 1; position: relative; bottom: auto; opacity: 1; transform: none; transition: none; visibility: hidden; }
.kf-head__line { position: absolute; display: block; left: 0; right: 0; bottom: .14em; margin: 0; font-family: var(--kf-bold); font-weight: 400; font-size: calc(70 * var(--u)); line-height: 1; color: var(--kf-muted); opacity: 0; transform: translateY(-60%); transition: opacity .9s ease, transform 1s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; pointer-events: none; }
.kf-head__line em { font-family: var(--kf-reg); font-style: normal; color: var(--kf-light); }
.kf-head__line strong { font-family: var(--kf-bold); font-weight: 400; color: var(--kf-muted); }
.kf-head__line.is-in { opacity: 1; transform: translateY(0); }
.kf-head__line.is-out { opacity: 0; transform: translateY(60%); transition: opacity .8s ease, transform 1s cubic-bezier(.4,0,.8,.4); }
.kf-head--measure .kf-head__stage { height: auto !important; overflow: visible; }
.kf-head--measure .kf-head__line { position: relative; bottom: auto; opacity: 1; transform: none; transition: none; }

/* ══ window + dove (guidance) — real footage of a dove landing on the sill, sitting and taking off through the window (Roni #16 → #8 round 3).
   The sky box = the window opening; its arch clips the dove, so it vanishes behind the lintel like a real bird. The frames are drawn by kfir-window.js. ══ */
.kf-win { position: relative; width: 100%; }
.kf-win__img { display: block; width: 100%; height: auto; }
.kf-win__sky { position: absolute; left: 23.2%; top: 14.3%; width: 52.3%; height: 76.9%; overflow: hidden; pointer-events: none; clip-path: inset(0 round 50% 50% 0 0 / var(--kf-arch, 28.9%) var(--kf-arch, 28.9%) 0 0); }
.kf-dove { position: absolute; left: 14%; bottom: 0; width: 60%; height: auto; display: block; will-change: transform; }
@media (prefers-reduced-motion: reduce) { .kf-head__line { transition: none; } }

/* ══ events ══ */
.kf-events { display: flex; flex-direction: row; align-items: flex-start; gap: calc(60 * var(--u)); }
.kf-events__side { order: 2; width: calc(374 * var(--u)); flex: none; padding-top: calc(95 * var(--u)); }
.kf-events__swiper { order: 1; width: calc(1064 * var(--u)); flex: none; overflow: hidden; padding-top: calc(12 * var(--u)); padding-bottom: calc(12 * var(--u)); }
.kf-events__sub { font-family: var(--kf-reg); font-size: calc(31 * var(--u)); line-height: 1.24; color: var(--kf-copper); }
.kf-events__title { margin: calc(10 * var(--u)) 0 0; font-family: var(--kf-bold); font-weight: 400; font-size: calc(50 * var(--u)); line-height: 1.04; color: var(--kf-muted); }
.kf-events__hint { margin-top: calc(8 * var(--u)); font-family: var(--kf-text); font-size: calc(20 * var(--u)); line-height: 1.2; color: var(--kf-light); }
.kf-events .kf-arrows { margin-top: calc(20 * var(--u)); justify-content: flex-end; }
/* round 5 (Roni #1): the card is EXACTLY the Figma ticket (1064 x 467) whatever poster is uploaded — a fixed height, and the poster image is
   absolutely positioned (object-fit: cover) so it can never size the card (img{height:100%} inside the flex row + Swiper autoHeight grew the
   card to 647px with tall posters). The description is clamped to 5 lines so the button always stays inside the ticket. */
.kf-event { position: relative; display: flex; flex-direction: row; height: calc(467 * var(--u)); background: #2D283C; border: 1px solid rgba(255,255,255,.13); border-radius: 0 calc(150 * var(--u)) 0 0; overflow: visible; }
.kf-event__poster { position: relative; width: calc(360 * var(--u)); flex: none; border-radius: 0 calc(150 * var(--u)) 0 0; overflow: hidden; border: 1px solid #353340; margin: -1px -1px -1px 0; background: #353340; }
.kf-event__poster img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.kf-event__poster .kf-event__img--m { display: none; }   /* round 7b (Roni): `.kf-event__poster img{display:block}` (0,1,1) beat the old (0,1,0) rule → the 2:1 mobile poster was painted over the desktop one and stretched */
/* ticket tear — exactly the Figma: 1px line dashed 5/5 in #353340 + two 21px circles (fill #1F1C29, 1.2px #353340 stroke) centred on the card edges */
.kf-event__tear { position: relative; width: 1px; flex: none; background: repeating-linear-gradient(to bottom, #353340 0 calc(5 * var(--u)), transparent calc(5 * var(--u)) calc(10 * var(--u))); }
.kf-event__tear span { position: absolute; left: calc(.5px - 10.5 * var(--u)); width: calc(21 * var(--u)); height: calc(21 * var(--u)); border-radius: 50%; background: var(--kf-dark); border: 1.2px solid #353340; box-sizing: border-box; z-index: 1; }
.kf-event__tear span:first-child { top: calc(-10.5 * var(--u)); }
.kf-event__tear span:last-child { bottom: calc(-10.5 * var(--u)); }
.kf-event__body { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; padding: calc(28 * var(--u)) calc(54 * var(--u)) calc(57 * var(--u)) calc(75 * var(--u)); min-width: 0; }
.kf-event__when { display: flex; align-items: center; gap: calc(26 * var(--u)); }
.kf-event__date { font-family: var(--kf-bold); font-size: calc(70 * var(--u)); line-height: 1.24; color: var(--kf-copper); direction: ltr; }
.kf-event__meta { font-family: var(--kf-text); font-size: calc(17 * var(--u)); line-height: 1.2; color: var(--kf-copper); }
.kf-event__name { margin: calc(14 * var(--u)) 0 0; font-family: var(--kf-bold); font-weight: 400; font-size: calc(30 * var(--u)); line-height: 1; color: var(--kf-light); }
.kf-event__desc { margin-top: calc(28 * var(--u)); max-width: calc(562 * var(--u)); font-family: var(--kf-text); font-size: calc(20 * var(--u)); line-height: 1.2; color: var(--kf-light); display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.kf-event__cta { margin-top: auto; padding-top: calc(30 * var(--u)); }

/* ══ podcast ══ */
.kf-pod { --kf-gap: 3.34; }
.kf-pod .kf-arrows--center { margin-bottom: calc(75 * var(--u)); }
.kf-pod__swiper { overflow: visible; }
.kf-pod .kf-pod__slide { width: calc(447 * var(--u)); height: auto; display: flex; }
/* a card that opens 'read more' grows and pushes the row (Roni #9) — never a fixed height on the card */
.kf-pod__slide .kf-ep { height: auto; flex: 1 1 auto; width: 100%; }
.kf-pod__grid { display: grid; grid-template-columns: repeat(3, calc(447 * var(--u))); justify-content: space-between; row-gap: calc(70 * var(--u)); align-items: stretch; }
.kf-ep { display: flex; flex-direction: column; height: 100%; }
.kf-ep__media { position: relative; height: calc(225 * var(--u)); border-radius: calc(112 * var(--u)) calc(112 * var(--u)) 0 0; overflow: hidden; background: #2D283C; flex: none; }
.kf-ep__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kf-ep__badge { position: absolute; right: calc(42 * var(--u)); bottom: calc(16 * var(--u)); min-width: calc(88 * var(--u)); height: calc(48 * var(--u)); padding: 0 calc(14 * var(--u)); display: flex; align-items: center; justify-content: center; border-radius: calc(55 * var(--u)); background: rgba(31,28,41,.64); -webkit-backdrop-filter: blur(9.6px); backdrop-filter: blur(9.6px); font-family: var(--kf-text); font-size: calc(20 * var(--u)); line-height: 1.2; color: var(--kf-light); white-space: nowrap; }
.kf-ep__body { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; background: var(--kf-light); padding: calc(36 * var(--u)) calc(42 * var(--u)) calc(31 * var(--u)) calc(41 * var(--u)); min-height: calc(299 * var(--u)); }
.kf-ep__title { margin: 0; font-family: var(--kf-bold); font-weight: 400; font-size: calc(24 * var(--u)); line-height: 1.17; color: var(--kf-dark); }
.kf-ep__guest { font-family: var(--kf-text); font-size: calc(20 * var(--u)); line-height: 1.2; color: var(--kf-copper); }
.kf-ep__desc { margin-top: calc(14 * var(--u)); font-family: var(--kf-text); font-size: calc(20 * var(--u)); line-height: 1.2; color: var(--kf-dark); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.kf-ep__desc p { margin: 0; }
.kf-ep.is-open .kf-ep__desc { display: block; -webkit-line-clamp: unset; overflow: visible; }
.kf-pod .kf-ep__more, .kf-pod .kf-ep__more:hover, .kf-pod .kf-ep__more:focus { border: 0; background: none; padding: 0; margin: 0; cursor: pointer; font-family: var(--kf-black); font-weight: 900; font-size: calc(20 * var(--u)); line-height: 1.2; color: var(--kf-dark); }
.kf-pod .kf-ep__more:hover { color: var(--kf-copper); }
.kf-ep__more.is-hidden { visibility: hidden; }
.kf-ep__links { margin-top: auto; padding-top: calc(12 * var(--u)); display: flex; gap: calc(21 * var(--u)); align-items: center; }
.kf-ep__link { display: block; line-height: 0; transition: transform .2s ease; }
.kf-ep__link:hover { transform: translateY(-2px); }
.kf-ep__link svg { display: block; height: calc(34 * var(--u)); width: auto; }
.kf-ep__link--sp svg { height: calc(33 * var(--u)); }

/* ══ clouds window ══ */
.kf-sky { position: relative; width: calc(1500 * var(--u)); }
.kf-sky__win { position: relative; width: 100%; aspect-ratio: 1500 / 760; overflow: hidden; background: #cfe0ee center / cover no-repeat; contain: paint; transform: translateZ(0); }
.kf-sky--frame .kf-sky__frame { position: absolute; inset: 0; transform: translate(calc(-16 * var(--u)), calc(16 * var(--u))); border: 1px solid var(--kf-copper); pointer-events: none; }
.kf-sky__layer { position: absolute; inset: 0; direction: ltr; }
.kf-cloud { position: absolute; left: 0; top: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.kf-cloud img { display: block; width: 100%; height: auto; pointer-events: none; user-select: none; }
.kf-cloud--video { aspect-ratio: 700 / 421; }
.kf-cloud__thumb { position: absolute; inset: 0; -webkit-mask: var(--m) center / 100% 100% no-repeat; mask: var(--m) center / 100% 100% no-repeat; transform: translateZ(0); }
.kf-cloud__thumb img { width: 100%; height: 100%; object-fit: cover; transform-origin: center; }
.kf-cloud__ring { position: relative; z-index: 1; }
.kf-sky .kf-play, .kf-wall .kf-play, .kf-sky .kf-play:hover, .kf-wall .kf-play:hover, .kf-sky .kf-play:focus, .kf-wall .kf-play:focus { position: absolute; z-index: 2; left: 50%; top: 50%; width: calc(64 * var(--u)); height: calc(64 * var(--u)); margin: calc(-32 * var(--u)) 0 0 calc(-32 * var(--u)); border-radius: 50%; border: 0; padding: 0; cursor: pointer; background-color: var(--kf-copper); box-shadow: 0 6px 16px rgba(0,0,0,.35); display: flex; align-items: center; justify-content: center; transition: transform .2s ease; }
.kf-play svg { width: calc(24 * var(--u)); height: calc(24 * var(--u)); margin-left: calc(3 * var(--u)); }
.kf-play:hover { transform: scale(1.08); }
.kf-sky__player { position: absolute; inset: 0; z-index: 5; background: rgba(31,28,41,0); transition: background .35s ease; }
.kf-sky__player.is-in { background: rgba(31,28,41,.72); }
.kf-sky__iframe { position: absolute; left: 50%; top: 50%; height: 92%; aspect-ratio: 9 / 16; transform: translate(-50%, -50%) translate(var(--sx, 0px), var(--sy, 0px)) scale(.25); opacity: 0; transition: transform .35s cubic-bezier(.2,.7,.2,1), opacity .25s ease; border-radius: calc(18 * var(--u)); overflow: hidden; background: #000; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.kf-sky__player.is-in .kf-sky__iframe { transform: translate(-50%, -50%) scale(1); opacity: 1; }
.kf-sky__iframe iframe, .kf-sky__yt { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.kf-sky .kf-sky__close, .kf-sky .kf-sky__close:hover, .kf-sky .kf-sky__close:focus, .kf-wall .kf-wall__close, .kf-wall .kf-wall__close:hover, .kf-wall .kf-wall__close:focus { position: absolute; z-index: 6; top: calc(18 * var(--u)); left: calc(18 * var(--u)); width: calc(44 * var(--u)); height: calc(44 * var(--u)); border-radius: 50%; border: 0; background-color: var(--kf-copper); color: #fff; font-size: calc(30 * var(--u)); line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }

/* ══ testimonials wall — 1:1 to the client's drawing (1672 x 941): clean stone wall + niches + engraved quotes ══ */
.kf-wall { position: relative; width: 100%; }
.kf-wall__scene { position: relative; width: 100%; aspect-ratio: 1672 / 941; background: center / cover no-repeat; }
.kf-wall__title { position: absolute; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.kf-wall__title b { font-family: var(--kf-bold); font-weight: 400; font-size: calc(74 * var(--u)); line-height: 1; }
.kf-wall__title i { font-family: var(--kf-reg); font-style: normal; font-size: calc(44 * var(--u)); line-height: 1.1; margin-top: calc(6 * var(--u)); }
/* engraved like the client's drawing (Roni #6 → #4 round 3 → #3 round 4): crisp near-black glyphs, ONE thin warm rim under the letters and one short
   soft shadow — the two wide blurred shadows of round 3 read as a doubled/ghosted text on the dark wall. Clarity comes from the wall image itself:
   the stones behind the quotes are the drawing's lighter stones (wall_dark2), as in the client's mock-up. */
/* round 5 (Roni #3, pixel-measured on the client's drawing): fill #070507, a crisp edge with NO dark halo, and one thin light rim 2px under the
   letters (drawing: 87 on a 67 stone). The stone tone behind the quotes lives in wall_dark3 (make_wall_dark3.py). */
.kf-engraved { color: #070507; text-shadow: 0 2px 0 rgba(255,236,246,.13); }
/* round 6 (Roni #3): desktop text is baked into the wall image (wall_dark7 = the client's drawing's engraving) — the live text only serves mobile */
@media (min-width: 768px) { .kf-wall--baked .kf-wall__title, .kf-wall--baked .kf-stone--text { visibility: hidden; } }
/* round 7 (Roni): with `baked` the video niches (frame + still + play) are part of the wall image too — the widget only lays a transparent
   click layer (hotspot) over each of the 3 videos. No CSS frame, no poster, no drawn play button. */
.kf-wall--baked .kf-stone--hot { padding: 0; background: none; box-shadow: none; border-radius: 0; }
.kf-wall .kf-stone--hot .kf-hot, .kf-wall .kf-stone--hot .kf-hot:hover, .kf-wall .kf-stone--hot .kf-hot:focus { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; cursor: pointer; }
.kf-wall .kf-stone--hot .kf-hot:focus-visible { outline: 2px solid var(--kf-copper); outline-offset: -2px; }
/* round 7: baked MOBILE wall = two stacked image panels (≤1920px each) with the same hotspots; shown only on phones (see the media block) */
.kf-wall__m { display: none; }
.kf-wall__mp { position: relative; width: 100%; background: center top / 100% 100% no-repeat; }
.kf-stone { position: absolute; }
.kf-stone--video { padding: calc(9 * var(--u)); background: #130f19; border-radius: calc(5 * var(--u)); box-shadow: inset 0 0 0 1px rgba(0,0,0,.85), inset 0 calc(6 * var(--u)) calc(16 * var(--u)) rgba(0,0,0,.9), 0 1px 0 rgba(255,255,255,.08), 0 0 0 calc(2 * var(--u)) rgba(0,0,0,.35); }
.kf-stone__niche { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: calc(4 * var(--u)); background: #000; box-shadow: inset 0 calc(10 * var(--u)) calc(24 * var(--u)) rgba(0,0,0,.75); }
.kf-stone__niche img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kf-stone--video.is-playing .kf-stone__niche { opacity: .35; }
.kf-wall .kf-play--sm, .kf-wall .kf-play--sm:hover, .kf-wall .kf-play--sm:focus { width: calc(64 * var(--u)); height: calc(64 * var(--u)); margin: calc(-32 * var(--u)) 0 0 calc(-32 * var(--u)); }
.kf-play--sm svg { width: calc(24 * var(--u)); height: calc(24 * var(--u)); }
.kf-stone--text { display: flex; align-items: center; justify-content: center; text-align: center; padding: calc(8 * var(--u)); }
.kf-stone__quote { position: relative; margin: 0; text-align: center; font-family: var(--kf-bold); font-size: calc(37 * var(--u)); line-height: 1.2; }
.kf-wall__player { position: absolute; inset: 0; z-index: 5; background: rgba(31,28,41,0); transition: background .35s ease; }
.kf-wall__player.is-in { background: rgba(31,28,41,.7); }
.kf-wall__box { position: absolute; left: 50%; top: var(--top, 50%); height: min(86vh, calc(900 * var(--u))); aspect-ratio: 9 / 16; transform: translate(-50%, -50%) translate(var(--sx, 0px), calc(var(--sy, 0px) + 50% - var(--top, 50%))) scale(.25); opacity: 0; transition: transform .35s cubic-bezier(.2,.7,.2,1), opacity .25s ease; border-radius: calc(12 * var(--u)); overflow: hidden; background: #000; box-shadow: 0 20px 60px rgba(0,0,0,.55); }
.kf-wall__player.is-in .kf-wall__box { transform: translate(-50%, -50%) scale(1); opacity: 1; }
.kf-wall__box iframe, .kf-wall__box video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.kf-wall .kf-wall__close, .kf-wall .kf-wall__close:hover, .kf-wall .kf-wall__close:focus { top: calc(12 * var(--u)); left: calc(12 * var(--u)); }

/* ══ mobile ══ */
@media (max-width: 767px) {
  .kf-btn { height: 48px; margin-bottom: 5px; margin-left: 4px; }
  .kf-btn__face { padding: 0 22px; border-radius: 48px 0 0 48px; }
  .kf-btn__frame { transform: translate(4px, 5px); border-radius: 48px 0 0 48px; }
  .kf-btn__label { font-size: 17px; }
  .kf-arrows { gap: 18px; }
  .kf-arrows .kf-arrow, .kf-arrows .kf-arrow:hover, .kf-arrows .kf-arrow:focus { width: 40px; height: 40px; box-shadow: inset 0 3px 6px rgba(0,0,0,.10), 0 5px 10px rgba(249,162,30,.14); }
  .kf-arrow svg { width: 7px; height: 13px; }

  .kf-head__line { font-size: 38px; line-height: 1.05; transform: translateY(12px); }
  .kf-head__line.is-out { transform: translateY(-10px); }
  .kf-head__line br { display: none; }

  .kf-events { flex-direction: column; gap: 35px; }
  .kf-events__side, .kf-events__swiper { width: 100%; padding-top: 0; }
  .kf-events__side { order: 1; }
  /* Swiper sizes slides by the container's clientWidth (padding included) — so the breathing room for the notches lives on the slide, not the swiper (Roni #14: card centred) */
  .kf-events__swiper { order: 2; overflow: hidden; padding: 12px 0; margin: 0; width: 100%; }
  .kf-events__slide { padding: 0 12px; box-sizing: border-box; }
  .kf-events__sub { font-size: 22px; }
  .kf-events__title { font-size: 32px; margin-top: 6px; }
  .kf-events__hint { font-size: 17px; margin-top: 8px; }
  .kf-events .kf-arrows { margin-top: 14px; justify-content: flex-end; }
  .kf-event { flex-direction: column; height: auto; border-radius: 0 90px 0 0; }
  .kf-event__desc { display: block; -webkit-line-clamp: unset; overflow: visible; }
  /* poster fills the whole top of the card (Roni #14), same top-right radius as the card; round 3 (Roni #7): half the width high (2:1) with the wide mobile poster */
  .kf-event__poster { position: relative; width: calc(100% + 2px); margin: -1px -1px 0; border-radius: 0 90px 0 0; border: 1px solid #353340; aspect-ratio: 2 / 1; }
  .kf-event__poster img { position: absolute; inset: 0; width: 100%; height: 100%; }
  .kf-event__poster--has-m .kf-event__img--d { display: none; }
  .kf-event__poster--has-m .kf-event__img--m { display: block; }
  .kf-event__tear { width: auto; height: 1px; margin-top: 0; background: repeating-linear-gradient(to right, #353340 0 5px, transparent 5px 10px); }
  /* both notches centred on the tear line (the desktop top/bottom rules are more specific — override them by name, Roni #7: right notch sat 8px low) */
  .kf-event__tear span, .kf-event__tear span:first-child, .kf-event__tear span:last-child { width: 21px; height: 21px; top: -10px; bottom: auto; left: auto; }
  .kf-event__tear span:first-child { right: -10.5px; }
  .kf-event__tear span:last-child { left: -10.5px; right: auto; }
  .kf-event__body { padding: 20px 22px 26px; }
  .kf-event__when { gap: 14px; }
  .kf-event__date { font-size: 44px; }
  .kf-event__meta { font-size: 17px; }
  .kf-event__name { font-size: 24px; margin-top: 10px; }
  .kf-event__desc { font-size: 17px; margin-top: 14px; max-width: none; }
  .kf-event__cta { padding-top: 22px; }

  .kf-pod .kf-arrows--center { margin: 24px 0 35px; }
  .kf-pod .kf-pod__slide { width: 300px; }
  .kf-pod { --kf-gap: 4.1; }
  .kf-pod__grid { grid-template-columns: 1fr; row-gap: 30px; }
  .kf-ep__media { height: 160px; border-radius: 80px 80px 0 0; }
  .kf-ep__badge { right: 24px; bottom: 12px; min-width: 70px; height: 38px; font-size: 17px; border-radius: 40px; padding: 0 12px; }
  .kf-ep__body { padding: 22px 24px 22px; min-height: 0; }
  .kf-ep__title { font-size: 20px; }
  .kf-ep__guest, .kf-ep__desc, .kf-pod .kf-ep__more, .kf-pod .kf-ep__more:hover { font-size: 17px; }
  .kf-ep__desc { margin-top: 10px; }
  .kf-ep__links { gap: 16px; padding-top: 14px; }
  .kf-ep__link svg, .kf-ep__link--sp svg { height: 28px; }

  .kf-sky { width: 100%; }
  .kf-sky__win { aspect-ratio: 1 / 1.15; }
  .kf-sky--frame .kf-sky__frame { transform: translate(-8px, 8px); }
  .kf-sky .kf-play, .kf-wall .kf-play, .kf-sky .kf-play:hover, .kf-wall .kf-play:hover { width: 48px; height: 48px; margin: -24px 0 0 -24px; }
  .kf-play svg { width: 20px; height: 20px; margin-left: 3px; }
  .kf-sky__iframe { height: 86%; border-radius: 14px; }
  .kf-sky .kf-sky__close, .kf-wall .kf-wall__close, .kf-sky .kf-sky__close:hover, .kf-wall .kf-wall__close:hover { top: 10px; left: 10px; width: 38px; height: 38px; font-size: 26px; }

  /* wall (round 4, Roni #9): the drawing's composition does not fit a phone — a two-column stone mosaic on the page's wall (the section behind the
     widget carries the wall tile, so the bricks continue from the articles section). Videos are tall stones (2 rows), quotes are single stones with
     their own stone face (stone_tex2) like the drawing's quote stones; `dense` packs them like masonry, a lone last quote spans the row. */
  /* round 5 (Roni #4): ONE continuous wall behind everything — the quotes and the title sit straight on the page's wall (no stone face of their
     own, it read as a different background block); the video niches keep a fixed 9:16 (rows are derived from the column width, the image is
     absolutely positioned) so no browser can stretch them to the screen height. */
  .kf-wall__scene { --kf-col: calc((100vw - 42px) / 2); aspect-ratio: auto; display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(calc((var(--kf-col) - 10px) * 8 / 9), auto); grid-auto-flow: row dense; gap: 10px; padding: 0; background: none !important; border-radius: 0; }   /* !important: the wall image is an inline style on the scene */
  /* round 7: the grid rules are scoped to the live scene — the baked mobile panels (.kf-wall__mp) keep absolute hotspots */
  .kf-wall__scene .kf-wall__title { position: static; grid-column: 1 / -1; padding: 14px 0 12px; width: auto !important; height: auto !important; left: auto !important; top: auto !important; background: none; box-shadow: none; }
  .kf-wall__title b { font-size: 34px; }
  .kf-wall__title i { font-size: 22px; }
  .kf-wall__scene .kf-stone { position: static; width: auto !important; height: auto !important; left: auto !important; top: auto !important; }
  .kf-wall__scene .kf-stone--video { grid-row: span 2; padding: 5px; border-radius: 4px; display: flex; flex-direction: column; }
  .kf-wall__scene .kf-stone--video .kf-stone__niche { position: relative; flex: none; width: 100%; height: auto; aspect-ratio: 9 / 16; }
  .kf-wall__scene .kf-stone--video .kf-stone__niche img { position: absolute; inset: 0; width: 100%; height: 100%; }
  .kf-wall--baked-m .kf-wall__scene { display: none; }
  .kf-wall--baked-m .kf-wall__m { display: block; }
  /* round 6 (Roni #4): every quote sits on ONE whole stone — the mosaic tile's mortar lines were cutting through the text.
     stone_cell = a clean quote stone from the dark wall (wall_dark3), so the tone is the wall's own. */
  .kf-stone--text { min-height: 0; padding: 18px 12px; background: none; box-shadow: none; }
  /* Roni (round 6b): no patches/frames on the cells — the MOBILE WALL IMAGE itself has one whole stone under every grid cell (wall_mobile),
     stretched 100%/100% over the scene so the stones follow the grid at any phone width; readability like the desktop engraving */
  .kf-wall__scene--m { background: var(--kf-wall-m) center top / 100% 100% no-repeat !important; }
  /* + soft light halo behind the letters (Roni: "הצללה בהירה מאחורי הטקסטים") — same idea as the desktop bake (wall_dark7c) */
  .kf-stone--text .kf-stone__quote { color: #050306; text-shadow: 0 1px 0 rgba(255,238,246,.42), 0 -1px 2px rgba(0,0,0,.55), 0 0 10px rgba(255,236,246,.45), 0 0 24px rgba(255,236,246,.28); }
  .kf-stone--text:last-child { grid-column: 1 / -1; }
  .kf-stone__quote { font-size: 19px; }
  .kf-wall .kf-play--sm, .kf-wall .kf-play--sm:hover, .kf-wall .kf-play--sm:focus { width: 44px; height: 44px; margin: -22px 0 0 -22px; }
  .kf-play--sm svg { width: 18px; height: 18px; }
  .kf-wall__box { height: 80vh; border-radius: 10px; }
}

/* round 7b (Roni): 'לשאלון אמונה אישי' is a menu item for the PHONE dropdown only — on desktop the header already has the button */
@media (min-width: 768px) { .elementor-nav-menu .menu-item.kf-mobile-only { display: none; } }
