/* ---------- festival pages (tools/build-festival.js): LUNA blue with candle-gold accents ---------- */
body.pg-fest { --gold: #E9B44C; --gold-d: #9A6A0E; --gold-l: #FBEFD2; }
/* hero: eight warm glows breathe over the candle photo, one after another */
.f-hero .hero-v { object-position: 50% 40%; }
.f-glow { position: absolute; inset: 0; z-index: 1; pointer-events: none; display: flex; justify-content: space-around; align-items: center; padding: 0 6%; }
.f-glow i { width: 9%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255, 196, 92, .55) 0%, rgba(255, 170, 60, .18) 40%, rgba(255, 170, 60, 0) 70%); mix-blend-mode: screen; translate: 0 -18%; animation: f-breathe 3.6s ease-in-out infinite; }
.f-glow i:nth-child(2) { animation-delay: .45s; } .f-glow i:nth-child(3) { animation-delay: .9s; } .f-glow i:nth-child(4) { animation-delay: 1.35s; }
.f-glow i:nth-child(5) { animation-delay: 1.8s; } .f-glow i:nth-child(6) { animation-delay: 2.25s; } .f-glow i:nth-child(7) { animation-delay: 2.7s; } .f-glow i:nth-child(8) { animation-delay: 3.15s; }
@keyframes f-breathe { 0%, 100% { opacity: .35; transform: scale(.9); } 50% { opacity: 1; transform: scale(1.12); } }
.f-hero .hand { z-index: 2; }
/* intro: the campaign poster whole, next to the opening words */
.f-intro-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(18px, 2.4vw, 34px); align-items: center; }
.f-intro-text { padding: clamp(24px, 3vw, 46px); border-radius: 26px; text-align: start; }
.f-intro-text h2 { margin: 0 0 14px; font: 400 clamp(34px, 3.4vw, 54px)/1.08 var(--title); color: #023859; }
.f-lead { margin: 0 0 12px; font: 400 clamp(21px, 1.8vw, 27px)/1.4 var(--title); color: #26658C; }
.f-join { margin: 0 0 22px; font: 400 clamp(17px, 1.3vw, 19px)/1.65 var(--body); color: var(--ink); }
.pg-btn.f-jump { display: inline-flex; align-items: center; gap: 10px; color: #fff; background: linear-gradient(150deg, #26658C 0%, #023859 100%); border: 1px solid rgba(84, 172, 191, .45); }
.pg-btn.f-jump svg, .f-btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: translate .3s; }
.pg-btn.f-jump:hover svg, .f-btn:hover svg { translate: -4px 0; }
.f-poster { margin: 0; overflow: hidden; border-radius: 26px; border: 1px solid rgba(255, 255, 255, .85); box-shadow: 0 28px 54px -30px rgba(1, 28, 64, .7); background: #0B1A2E; }
.f-poster img, .f-poster video { display: block; width: 100%; height: auto; }
.f-poster video { aspect-ratio: 16 / 9; object-fit: cover; }
/* sound switch: a frosted-glass pill at the bottom of the clip; the waves breathe while the sound is on */
.f-poster { position: relative; }
.f-sound { position: absolute; bottom: 14px; left: 14px; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .7); background: linear-gradient(155deg, rgba(255, 255, 255, .34), rgba(255, 255, 255, .12)); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 10px 24px -10px rgba(1, 20, 40, .7); -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%); cursor: pointer; transition: background .25s, scale .25s; }
.f-sound:hover { background: linear-gradient(155deg, rgba(255, 255, 255, .46), rgba(255, 255, 255, .2)); scale: 1.06; }
.f-sound:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.f-sound svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 2px rgba(1, 20, 40, .5)); }
.f-sound svg path:first-child { fill: currentColor; }
.f-sound .s-on, .f-sound.on .s-off { display: none; }
.f-sound.on .s-on { display: block; }
.f-sound.on .w1 { animation: f-wave 1.6s ease-in-out infinite; }
.f-sound.on .w2 { animation: f-wave 1.6s ease-in-out .25s infinite; }
@keyframes f-wave { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@media (max-width: 760px) { .f-sound { width: 44px; height: 44px; bottom: 8px; left: 8px; } }
@media (prefers-reduced-motion: reduce) { .f-sound.on .w1, .f-sound.on .w2 { animation: none; } }
/* intro box: centred; one paragraph in Asaf under the heading; "מוכנים להתחיל?" with the bouncing ring arrow, in navy on the light glass */
.f-intro-text { text-align: center; }
.f-intro-text .f-lead { margin: 0 auto 18px; max-width: 34em; font: 300 clamp(19px, 1.5vw, 22px)/1.6 "Asaf", var(--body); color: #023859; }
.f-ready { color: #023859; font-size: clamp(18px, 1.5vw, 22px); margin: 0 !important; }
.f-ready span { background-image: linear-gradient(90deg, #023859 0%, #023859 35%, #54ACBF 50%, #023859 65%, #023859 100%); }
.f-ready .pg-ready-go { width: 46px; height: 46px; color: #023859; background: rgba(255, 255, 255, .55); border-color: rgba(2, 56, 89, .25); animation: ready-bounce 1.6s ease-in-out infinite; }
.f-ready .pg-ready-go .rg-ring circle { stroke: #023859; }
:root[data-theme="dark"] .f-intro-text .f-lead, :root[data-theme="dark"] .f-ready, :root[data-theme="dark"] .f-ready .pg-ready-go { color: #E3F2F5; }
:root[data-theme="dark"] .f-ready span { background-image: linear-gradient(90deg, #E3F2F5 0%, #E3F2F5 35%, #fff 50%, #E3F2F5 65%, #E3F2F5 100%); }
:root[data-theme="dark"] .f-ready .pg-ready-go .rg-ring circle { stroke: #A7EBF2; }
/* the safety line under the clip: a glass strip, the shield's tick draws itself and a light sweeps across */
.f-intro-grid > .f-safe { grid-column: 2; align-self: start; }
@media (max-width: 960px) { .f-intro-grid > .f-safe { grid-column: auto; order: -1; } }
.f-safe { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; gap: 10px; margin: 14px 0 0; padding: 12px 18px; border-radius: 16px; font: 400 clamp(18px, 1.4vw, 21px)/1.3 var(--title); color: #023859; text-align: center; }
.f-safe::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .7) 50%, transparent 70%) -150% 0 / 60% 100% no-repeat; animation: f-sweep 4.5s ease-in-out infinite; pointer-events: none; }
.f-shield { flex: none; width: 28px; height: 28px; overflow: visible; }
.f-shield .sh-body { fill: rgba(84, 172, 191, .22); stroke: #26658C; stroke-width: 1.7; stroke-linejoin: round; transform-origin: center; animation: f-shield 4.5s ease-in-out infinite; }
.f-shield .sh-tick { fill: none; stroke: #023859; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; animation: f-tick 4.5s ease-in-out infinite; }
@keyframes f-sweep { 0%, 40% { background-position: -150% 0; } 75%, 100% { background-position: 250% 0; } }
@keyframes f-shield { 0%, 100% { transform: scale(1); } 12% { transform: scale(1.12); } 24% { transform: scale(1); } }
@keyframes f-tick { 0%, 8% { stroke-dashoffset: 100; } 30%, 85% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; opacity: 1; } }
:root[data-theme="dark"] .f-safe { color: #E3F2F5; }
:root[data-theme="dark"] .f-shield .sh-tick { stroke: #A7EBF2; }
@media (prefers-reduced-motion: reduce) { .f-safe::after, .f-shield .sh-body, .f-shield .sh-tick, .f-ready .pg-ready-go { animation: none; } .f-shield .sh-tick { stroke-dashoffset: 0; } }
/* the ticket: the price large, five tour types as tiles */
.f-price { font-size: clamp(120px, 13vw, 190px); }
.f-price-line { font-size: clamp(24px, 2.1vw, 32px); }
.f-kinds { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.f-kinds li { align-content: start; }
.f-kinds span { font-size: clamp(16px, 1.2vw, 19px); line-height: 1.15; }
@media (max-width: 1100px) and (min-width: 761px) { .f-kinds { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .f-kinds { grid-template-columns: 1fr 1fr; } .f-kinds li { grid-template-columns: 26px 1fr; } .f-kinds li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
/* "הפסטיבל שלנו | החוויה שלכם": heading with the beating heart, as on the National Service page */
/* sound button, final: a gold pill that calls for a tap while the clip is muted (two rings ripple out, the speaker nudges),
   and a compact gold circle with breathing waves once the sound is on */
.f-poster .f-sound { width: auto; height: 50px; padding: 0 18px 0 14px; gap: 8px; display: inline-flex; align-items: center; border-radius: 99px; color: #2A1A00; background: linear-gradient(150deg, #F6CF7A 0%, #E9B44C 55%, #D79A26 100%); border: 1px solid rgba(255, 255, 255, .75); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 12px 26px -10px rgba(120, 80, 6, .9); -webkit-backdrop-filter: none; backdrop-filter: none; overflow: visible; }
.f-poster .f-sound:hover { background: linear-gradient(150deg, #F9D98E 0%, #EDBE5E 55%, #DDA332 100%); scale: 1.05; }
.f-poster .f-sound svg { width: 24px; height: 24px; filter: none; }
.f-poster .f-sound .s-txt { font: 400 21px/1 var(--title); white-space: nowrap; }
.f-poster .f-sound.on { width: 50px; padding: 0; justify-content: center; }
.f-poster .f-sound.on .s-txt, .f-poster .f-sound.on .s-ping { display: none; }
.f-sound .s-ping { position: absolute; inset: -1px; border-radius: inherit; border: 2px solid #F6CF7A; pointer-events: none; animation: s-ping 2s ease-out infinite; }
.f-sound .s-ping.b { animation-delay: 1s; }
.f-sound:not(.on) .s-off { animation: s-nudge 2s ease-in-out infinite; transform-origin: 30% 50%; }
@keyframes s-ping { 0% { opacity: .9; transform: scale(1); } 100% { opacity: 0; transform: scale(1.6); } }
@keyframes s-nudge { 0%, 60%, 100% { rotate: 0deg; } 68% { rotate: -12deg; } 76% { rotate: 10deg; } 84% { rotate: -6deg; } 92% { rotate: 0deg; } }
@media (max-width: 760px) { .f-poster .f-sound { height: 36px; padding: 0 11px 0 9px; gap: 5px; bottom: 7px; left: 7px; } .f-poster .f-sound.on { width: 36px; } .f-poster .f-sound svg { width: 19px; height: 19px; } .f-poster .f-sound .s-txt { font-size: 16px; } }
/* sound button: icon only, a gold circle (the rings and the nudge still call for a tap) */
.f-poster .f-sound { width: 50px; padding: 0; justify-content: center; }
.f-poster .f-sound .s-txt { display: none; }
@media (max-width: 760px) { .f-poster .f-sound { width: 38px; height: 38px; } .f-poster .f-sound.on { width: 38px; } }
/* safety line: the shield sits right next to the words, also when they wrap */
.f-safe { gap: 6px; }
.f-safe > span { flex: 0 1 auto; text-align: start; }
/* the safety line in one sentence on one line: the words shrink to the strip's width (measured: Hebrew 18.7 font-sizes wide, English 36) */
.f-safe { container-type: inline-size; }
.f-safe > span { white-space: nowrap; font-size: min(21px, calc((100cqi - 72px) / 19)); }
html[lang="en"] .f-safe > span { font-size: min(21px, calc((100cqi - 72px) / 36.5)); }
/* the location beside a tour's name, a shade lighter than the name */
.f-tloc { color: #26658C; white-space: nowrap; }
.f-tloc i { font-style: normal; opacity: .55; }
:root[data-theme="dark"] .f-tloc { color: #A7EBF2; }
/* the top video strip, 25% taller than the other inner-page heroes */
@media (min-width: 761px) { body.pg-fest .f-hero.c-hero.pg-hero { height: min(68.75svh, 645px); min-height: 600px; } }
@media (max-width: 760px) { body.pg-fest .f-hero.c-hero.pg-hero { height: 47.5svh; min-height: 300px; } }
/* phones: a little less padding to give the words room; the English sentence (twice as long) may take two lines */
@media (max-width: 760px) {
  .f-safe { padding: 10px 12px; }
  .f-safe > span { font-size: min(21px, calc((100cqi - 52px) / 19)); }
  html[lang="en"] .f-safe > span { white-space: normal; font-size: 15px; }
}
/* "מכבים את המסכים, נדלקים על ישראל": no switching off any more, only a flash of light sweeping across */
.f-screens .f-tv { animation: none; }
.f-screens { position: relative; }
.f-screens::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, transparent 35%, rgba(255, 255, 255, .5) 50%, transparent 65%) -150% 0 / 60% 100% no-repeat; animation: f-flash 4.5s ease-in-out infinite; }
@keyframes f-flash { 0%, 45% { background-position: -150% 0; } 75%, 100% { background-position: 250% 0; } }
@media (prefers-reduced-motion: reduce) { .f-screens::after { animation: none; opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .f-sound .s-ping, .f-sound:not(.on) .s-off { animation: none; } .f-sound .s-ping { opacity: .6; } }
/* intro heading: "חוויה משפחתית בלתי נשכחת" whole on the first line, "בימי החנוכה!" under it;
   a fine rule (fading at both ends) between the paragraph and "מוכנים להתחיל?" */
/* the whole heading on one line, sized to the box (measured: the Hebrew line is 13.2 font-sizes wide, the English 19.5) */
.f-intro-text { container-type: inline-size; }
#fHead { white-space: nowrap; font-size: 7.3cqi; }
html[lang="en"] #fHead { font-size: 5cqi; }
#fHead > span { display: inline; }
/* the rule runs the full width of the box, edge to edge */
.f-rule { height: 1px; margin: 4px calc(-1 * clamp(24px, 3vw, 46px)) 16px; border: 0; background: rgba(2, 56, 89, .22); }
:root[data-theme="dark"] .f-rule { background: rgba(167, 235, 242, .3); }
/* the safety line under the clip: our blue glass with white text (important: the phone rule repaints every .glass light) */
.f-safe.glass { color: #fff; background: linear-gradient(150deg, rgba(38, 101, 140, .9) 0%, rgba(2, 56, 89, .92) 100%) !important; border-color: rgba(167, 235, 242, .45); box-shadow: inset 0 1px 0 rgba(167, 235, 242, .35), 0 18px 36px -24px rgba(1, 28, 64, .75); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.f-safe.glass::after { background-image: linear-gradient(100deg, transparent 30%, rgba(167, 235, 242, .35) 50%, transparent 70%); }
.f-safe.glass .f-shield .sh-body { fill: rgba(167, 235, 242, .2); stroke: #A7EBF2; }
.f-safe.glass .f-shield .sh-tick { stroke: #fff; }
:root[data-theme="dark"] .f-safe.glass { color: #fff; }
/* "הפסטיבל שלנו | החוויה שלכם": white on blue glass, like the newsletter title */
#fWhy.glass { color: #fff; background: linear-gradient(150deg, rgba(38, 101, 140, .9) 0%, rgba(2, 56, 89, .92) 100%); border-color: rgba(167, 235, 242, .45); box-shadow: inset 0 1px 0 rgba(167, 235, 242, .35), 0 24px 46px -26px rgba(1, 28, 64, .75); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
@media (max-width: 760px) { #fWhy { white-space: nowrap; font-size: min(34px, 8vw); padding-inline: 12px; } }
/* the five reasons: a row each, the text in its own glass box and the icon in a separate square tile on the left */
.f-feats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 18px); margin-top: clamp(18px, 2vw, 28px); }
.f-feats .f-feat:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc(50% - clamp(12px, 1.4vw, 18px) / 2); justify-self: center; }
.f-feat { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: stretch; }
.f-feat-text { display: flex; flex-direction: column; justify-content: center; padding: clamp(16px, 1.6vw, 22px) clamp(18px, 1.8vw, 26px); border-radius: 20px; }
.f-feat-text h3 { margin: 0 0 6px; font: 400 clamp(24px, 2vw, 30px)/1.15 var(--title); color: #023859; }
.f-feat-text p { margin: 0; font: 400 clamp(16px, 1.2vw, 18px)/1.55 var(--body); color: var(--ink); }
.f-feat-ic { display: grid; place-items: center; width: clamp(92px, 8vw, 116px); border-radius: 20px; }
.f-feat-ic .ai { width: 72%; height: auto; aspect-ratio: 1; }
:root[data-theme="dark"] .f-feat-text h3 { color: #E8ECF5; }
:root[data-theme="dark"] .f-feat-text p { color: #CFD8E6; }
@media (max-width: 860px) {
  .f-feats { grid-template-columns: 1fr; }
  .f-feats .f-feat:last-child:nth-child(odd) { width: auto; justify-self: stretch; }
}
@media (max-width: 760px) {
  .f-feat { gap: 8px; }
  .f-feat-ic { width: 78px; border-radius: 16px; }
  .f-feat-text { border-radius: 16px; padding: 14px 16px; }
  .f-feat-text h3 { font-size: 23px; }
}
/* tour list: a navy band per tour type (name | hours | price), region rows that open with a +, tour rows that open the tour card */
.f-type { margin-top: clamp(22px, 2.6vw, 36px); }
.f-type-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 14px; margin: 0 0 12px; padding: 16px 22px; border-radius: 20px; font: 400 clamp(24px, 2.2vw, 34px)/1.15 var(--title); color: #fff; text-align: center; background: linear-gradient(150deg, #26658C 0%, #023859 100%); box-shadow: inset 0 1px 0 rgba(227, 242, 245, .25), 0 18px 36px -24px rgba(1, 28, 64, .8); }
.f-type[data-type="evening"] .f-type-h { background: linear-gradient(150deg, #1B2D55 0%, #0B1533 100%); }
.f-type[data-type="happening"] .f-type-h { background: linear-gradient(150deg, #8A5D0B 0%, #6B4504 100%); }
.f-type-h .f-ic { width: 30px; height: 30px; color: var(--gold); }
.f-type[data-type="happening"] .f-type-h .f-ic { color: #FFF3D6; }
.f-type-h > i { font-style: normal; opacity: .45; }
.f-type-h .f-th { direction: ltr; unicode-bidi: isolate; }
.f-regs { display: grid; gap: 10px; }
.f-reg-row, .f-tour-row { border-radius: 18px; }
.f-reg-row { background: radial-gradient(120% 120% at 90% -10%, rgba(255, 255, 255, .8) 0%, rgba(255, 255, 255, 0) 55%), linear-gradient(155deg, rgba(255, 255, 255, .62) 0%, rgba(255, 255, 255, .34) 100%); border: 1px solid rgba(255, 255, 255, .9); box-shadow: inset 0 1px 0 #fff, 0 14px 30px -24px rgba(1, 28, 64, .6); }
.f-reg-row > summary, .f-tour-row > summary { list-style: none; display: flex; align-items: center; gap: 12px; cursor: pointer; }
.f-reg-row > summary::-webkit-details-marker, .f-tour-row > summary::-webkit-details-marker { display: none; }
.f-reg-row > summary { min-height: 60px; padding: 8px 20px; }
.f-reg-name { font: 400 clamp(26px, 2.2vw, 32px)/1 var(--title); color: #023859; }
.f-reg-row > summary .f-count { display: grid; place-items: center; min-width: 26px; height: 26px; padding: 0 6px; box-sizing: border-box; border-radius: 99px; font: 400 16px/1 var(--title); color: #023859; background: rgba(38, 101, 140, .14); }
/* the + turns into a × when open */
.f-plus { position: relative; flex: none; width: 36px; height: 36px; margin-inline-start: auto; border-radius: 50%; background: #023859; transition: rotate .35s cubic-bezier(.2, .8, .2, 1), background .25s; }
.f-plus::before, .f-plus::after { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 2px; margin: -1px 0 0 -7px; border-radius: 2px; background: #fff; }
.f-plus::after { rotate: 90deg; }
details[open] > summary > .f-plus { rotate: 45deg; }
.f-tours { display: grid; gap: 8px; padding: 0 12px 14px; }
details[open] > .f-tours, details[open] > .f-tour { animation: f-open .4s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes f-open { from { opacity: 0; translate: 0 -8px; } }
.f-tour-row { background: rgba(255, 255, 255, .78); border: 1px solid rgba(2, 56, 89, .1); }
.f-tour-row > summary { min-height: 54px; padding: 8px 14px 8px 16px; }
.f-tname { font: 400 clamp(21px, 1.7vw, 25px)/1.15 var(--title); color: #023859; }
.f-tour-row .f-plus { width: 30px; height: 30px; background: #26658C; }
.f-tour-row .f-plus::before, .f-tour-row .f-plus::after { width: 12px; margin-left: -6px; }
.f-tour-row.sold .f-tname { opacity: .55; }
.f-badge { flex: none; padding: 4px 10px; border-radius: 99px; font: 400 15px/1 var(--title); white-space: nowrap; }
.f-badge.last { color: #8A1C1C; background: #FDE6E2; }
.f-badge.sold { color: #8A1C1C; border: 1.5px solid rgba(190, 40, 40, .55); font-family: "Oswald", sans-serif; letter-spacing: .04em; }
/* the tour card inside its row: no frame of its own, the row is the card */
.f-tour-row .f-tour { border: 0; border-radius: 0 0 18px 18px; background: none; box-shadow: none; translate: none !important; padding-top: 2px; }
.f-tour-row .f-tour .f-stamp { display: none; }
.f-tour-row .f-tour.is-sold .f-text, .f-tour-row .f-tour.is-sold .f-facts { opacity: .78; }
.f-sub { margin: 0 20px 8px; font: 400 clamp(19px, 1.5vw, 22px)/1.2 var(--title); color: #26658C; }
:root[data-theme="dark"] .f-reg-row { background: linear-gradient(155deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .04)); border-color: rgba(255, 255, 255, .14); box-shadow: none; }
:root[data-theme="dark"] .f-tour-row { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); }
:root[data-theme="dark"] .f-reg-name, :root[data-theme="dark"] .f-tname { color: #E8ECF5; }
:root[data-theme="dark"] .f-reg-row > summary small, :root[data-theme="dark"] .f-sub { color: #A7EBF2; }
:root[data-theme="dark"] .f-plus { background: #A7EBF2; } :root[data-theme="dark"] .f-plus::before, :root[data-theme="dark"] .f-plus::after { background: #0B1A2E; }
@media (max-width: 760px) {
  .f-type-h { padding: 12px 14px; font-size: 22px; gap: 4px 14px; }
  .f-type-h > i { display: none; }
  .f-type-h .f-ic { width: 24px; height: 24px; }
  .f-reg-row > summary { padding: 6px 14px; min-height: 56px; }
  .f-tours { padding: 0 8px 10px; }
  .f-tour-row > summary { padding: 8px 10px 8px 12px; gap: 8px; }
  .f-tname { font-size: 20px; }
  .f-badge { font-size: 13px; padding: 3px 8px; }
  .f-sub { margin-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) { details[open] > .f-tours, details[open] > .f-tour { animation: none; } .f-plus { transition: none; } }
/* tour card buttons: secure registration (gold) and Waze to the meeting point (Waze blue), side by side, stacked on phones */
.f-tour-row .f-foot { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.f-btn .f-ic { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.f-btn.f-waze { color: #fff; background: linear-gradient(150deg, #3DC9F5 0%, #20A8D8 55%, #0E8BBE 100%); border-color: rgba(14, 139, 190, .45); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 12px 24px -14px rgba(14, 139, 190, .8); }
.f-btn.f-waze .f-ic { fill: #fff; stroke: #0E6F98; stroke-width: 1.4; }
.f-btn.f-waze .f-ic circle[fill] { fill: #0E6F98; }
@media (max-width: 760px) { .f-tour-row .f-foot { grid-template-columns: 1fr; gap: 8px; } }
/* ticket, second round: the price larger (after the base rule, whose font shorthand had reset the size), the currency in words,
   and the whole info side centred, with the tour-types line on one line */
.f-pass .f-price { font-size: clamp(130px, 14vw, 210px); align-items: baseline; gap: 10px; }
.f-pass .f-price span { font-size: .34em; margin-top: 0; }
.f-pass-info { text-align: center; display: grid; justify-items: center; align-content: center; }
.f-pass-info h2, .f-pass-info h3 { justify-content: center; }
.f-pass-info h3 { white-space: nowrap; }
.f-pass-info .f-kinds { width: 100%; }
.f-pass-info .f-kinds li { justify-items: center; text-align: center; }
.f-pass-info .f-secure { justify-content: center; }
@media (max-width: 760px) {
  .f-pass-info h3 { white-space: normal; text-wrap: balance; font-size: min(22px, 5.6vw); }
  .f-pass-info .f-kinds li { grid-template-columns: 26px auto; justify-content: center; }
}
/* ticket, third round */
/* "10 ש"ח": number and currency in the same type size, one line */
.f-pass .f-price { align-items: baseline; gap: .18em; white-space: nowrap; font-size: clamp(90px, 9.6vw, 150px); }
.f-pass .f-price span { font-size: 1em; }
.f-pass .f-price-line { white-space: nowrap; font-size: clamp(18px, 1.6vw, 24px); }
/* dates | sites, each with its icon */
.f-pass-info h2 { flex-wrap: wrap; gap: 6px 14px; }
.f-pass-info h2 > span { display: inline-flex; align-items: center; gap: 8px; }
.f-pass-info h2 > i { font-style: normal; opacity: .45; }
.f-pass-info h3 { margin-top: 6px; }
/* tour types: two tiles a row, the boutique tile wide underneath; icon and words on the right; each tile its own blue */
.f-pass-info .f-kinds { grid-template-columns: 1fr 1fr; gap: 10px; }
.f-pass-info .f-kinds li { display: flex; align-items: center; justify-content: flex-start; gap: 10px; padding: 12px 16px; text-align: start; border-color: rgba(227, 242, 245, .22); }
.f-pass-info .f-kinds li:last-child { grid-column: 1 / -1; }
.f-pass-info .f-kinds .f-ic { width: 26px; height: 26px; flex: none; }
.f-pass-info .f-kinds span { font-size: clamp(18px, 1.4vw, 21px); }
.f-kinds .k-day { background: rgba(84, 172, 191, .22); }
.f-kinds .k-happening { background: rgba(38, 101, 140, .5); }
.f-kinds .k-evening { background: rgba(1, 28, 64, .55); }
.f-kinds .k-english { background: rgba(167, 235, 242, .16); }
.f-kinds .k-boutique { background: linear-gradient(100deg, rgba(233, 180, 76, .26), rgba(84, 172, 191, .16)); }
@media (max-width: 760px) {
  .f-pass .f-price { font-size: 26vw; }
  .f-pass-info h2 > i { display: none; }
  .f-pass .f-price-line { font-size: min(19px, 4.8vw); }
  .f-pass-info .f-kinds { grid-template-columns: 1fr 1fr; }
  .f-pass-info .f-kinds li { padding: 10px 12px; gap: 8px; grid-template-columns: none; }
  .f-pass-info .f-kinds span { font-size: 17px; }
  .f-pass-info .f-kinds .f-ic { width: 22px; height: 22px; }
}
/* "עכשיו התור שלכם לבחור": a V draws itself inside a ring, holds, clears and draws again */
#fFindH { display: flex; align-items: center; justify-content: center; gap: .28em; }
.f-vcheck { flex: none; width: 1.05em; height: 1.05em; overflow: visible; }
.f-vcheck .vc-ring { fill: rgba(84, 172, 191, .14); stroke: #26658C; stroke-width: 3; stroke-dasharray: 100; transform: rotate(-90deg); transform-origin: center; animation: vc-ring 3.6s ease-in-out infinite; }
.f-vcheck .vc-tick { fill: none; stroke: #2E9E5B; stroke-width: 4.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; animation: vc-tick 3.6s ease-in-out infinite; }
@keyframes vc-ring { 0% { stroke-dashoffset: 100; } 25%, 85% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes vc-tick { 0%, 22% { stroke-dashoffset: 100; } 42%, 85% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; opacity: 0; } }
:root[data-theme="dark"] .f-vcheck .vc-ring { stroke: #A7EBF2; }
@media (max-width: 760px) { #fFindH { white-space: nowrap; font-size: min(34px, 8.4vw); } }
@media (prefers-reduced-motion: reduce) { .f-vcheck .vc-ring, .f-vcheck .vc-tick { animation: none; stroke-dashoffset: 0; } }
/* tour-type bands: name | hours only, larger */
.f-type-h { font-size: clamp(30px, 2.9vw, 44px); padding: 18px 24px; gap: 6px 18px; }
.f-type-h .f-ic { width: 38px; height: 38px; }
@media (max-width: 760px) { .f-type-h { font-size: min(24px, 5.9vw); padding: 14px 10px; gap: 4px 8px; } .f-type-h .f-ic { width: 28px; height: 28px; } .f-type-h > i { display: inline; } }
/* "10 ש"ח": no glow; instead a light sweeps across the gold letters and they lift a touch, every few seconds */
.f-pass .f-price { text-shadow: none; }
.f-pass .f-price b, .f-pass .f-price span { color: transparent; background: linear-gradient(100deg, #E9B44C 0%, #E9B44C 40%, #FFF3D6 50%, #E9B44C 60%, #E9B44C 100%) 100% 0 / 300% 100% no-repeat; -webkit-background-clip: text; background-clip: text; animation: p-sheen 4.2s ease-in-out infinite; }
.f-pass .f-price span { animation-delay: .12s; }
@keyframes p-sheen { 0%, 45% { background-position: 100% 0; } 75%, 100% { background-position: 0% 0; } }
@keyframes p-lift { 0%, 45%, 100% { transform: translateY(0); } 58% { transform: translateY(-6px); } 72% { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .f-pass .f-price b, .f-pass .f-price span { animation: none; color: #E9B44C; background: none; } }
/* tour types in the ticket: five clearly different shades from our palette (teal, gold, night, sky, gold-teal) */
.f-kinds .k-day { background: rgba(84, 172, 191, .48); border-color: rgba(167, 235, 242, .5); }
.f-kinds .k-happening { background: rgba(233, 180, 76, .38); border-color: rgba(246, 207, 122, .55); }
.f-kinds .k-evening { background: rgba(5, 14, 38, .78); border-color: rgba(167, 235, 242, .2); }
.f-kinds .k-english { background: rgba(232, 244, 248, .2); border-color: rgba(255, 255, 255, .45); }
.f-kinds .k-boutique { background: linear-gradient(100deg, rgba(233, 180, 76, .5), rgba(84, 172, 191, .42)); border-color: rgba(246, 207, 122, .5); }
.f-kinds .k-happening .f-ic { color: #FFF3D6; }
/* bands for the boutique and English tour lists */
.f-type[data-type="boutique"] .f-type-h { background: linear-gradient(120deg, #9A6A0E 0%, #26658C 100%); }
.f-type[data-type="english"] .f-type-h { background: linear-gradient(150deg, #3E86B0 0%, #1E5A85 100%); }
.f-type[data-type="boutique"] .f-type-h .f-ic { color: #FFF3D6; }
/* tour types in the ticket, final: one distinct colour each, from the icon palette, to show the variety */
.f-pass-info .f-kinds li { border-color: rgba(255, 255, 255, .28); color: #fff; }
.f-pass-info .f-kinds li span { color: #fff; }
.f-pass-info .f-kinds li .f-ic { color: #fff; }
.f-kinds .k-day { background: rgba(247, 148, 29, .82); }
.f-kinds .k-happening { background: rgba(232, 80, 91, .82); }
.f-kinds .k-evening { background: rgba(92, 84, 196, .85); }
.f-kinds .k-english { background: rgba(42, 157, 143, .85); }
.f-kinds .k-boutique { background: rgba(176, 122, 18, .9); }
/* FAQ on the festival page: about 30% smaller than the other sections, so it reads as a quiet aside */
body.pg-fest #hFaq { font-size: clamp(28px, 3.2vw, 50px); padding: clamp(10px, 1vw, 14px) clamp(14px, 1.7vw, 25px); }
body.pg-fest .pg-faq-tiles { gap: clamp(8px, 1.1vw, 17px); }
body.pg-fest .pg-faq-tiles .pg-tile { padding: clamp(14px, 1.4vw, 21px) clamp(13px, 1.4vw, 20px); border-radius: 12px; }
body.pg-fest .pg-faq-tiles h3 { font-size: clamp(15px, 1.2vw, 18px); }
body.pg-fest .pg-faq-tiles .pg-tile p { font-size: clamp(14px, 1vw, 15px); }
body.pg-fest .pg-faq-tiles .pg-tog { width: 20px; height: 20px; }
body.pg-fest .pg-faq-tiles summary { min-height: 22px; padding-inline-end: 28px; }
/* FAQ: the National Service / Kinar question tiles, toggles in our blue */
body.pg-fest .pg-tog { background: linear-gradient(150deg, #26658C, #023859); }
/* hero clip: a navy veil (stronger at the middle, where the title sits) so the white title reads clearly over sky and forest */
.f-hero .f-veil { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .6; background: radial-gradient(70% 60% at 50% 52%, rgba(2, 28, 52, .5) 0%, rgba(2, 28, 52, .22) 70%, rgba(2, 28, 52, .12) 100%), linear-gradient(180deg, rgba(2, 28, 52, .35) 0%, rgba(2, 28, 52, .15) 40%, rgba(2, 28, 52, .4) 100%); }
.f-hero:has(.f-veil) .hero-shade { display: none; }
/* "מכבים את המסכים, נדלקים על ישראל": the line switches off like an old screen (it squeezes to a bright line and goes dark),
   stays dark a beat, then flickers back on */
.f-screens.glass { color: #fff; background: linear-gradient(150deg, rgba(38, 101, 140, .92) 0%, rgba(2, 56, 89, .94) 100%) !important; border-color: rgba(167, 235, 242, .45); box-shadow: inset 0 1px 0 rgba(167, 235, 242, .35), 0 24px 46px -26px rgba(1, 28, 64, .75); overflow: hidden; }
.f-tv { display: inline-block; transform-origin: 50% 55%; text-shadow: 0 0 18px rgba(167, 235, 242, .55); animation: f-tv 6s ease-in-out infinite; }
@keyframes f-tv {
  0%, 58% { transform: scale(1, 1); opacity: 1; filter: brightness(1); }
  63% { transform: scale(1.04, .06); opacity: 1; filter: brightness(2.4); }
  66% { transform: scale(.2, .02); opacity: .9; filter: brightness(3); }
  68%, 80% { transform: scale(0, 0); opacity: 0; }
  81% { transform: scale(1, 1); opacity: .25; filter: brightness(1.6); }
  83% { opacity: 0; } 85% { opacity: .8; } 87% { opacity: .2; } 90%, 100% { transform: scale(1, 1); opacity: 1; filter: brightness(1); }
}
@media (max-width: 760px) { .f-screens { font-size: min(30px, 7.4vw); white-space: nowrap; padding-inline: 10px; } }
@media (prefers-reduced-motion: reduce) { .f-tv { animation: none; } }
/* registration not open yet: a calm, unclickable version of the gold button */
.f-btn.f-soon { color: #5B4A1E; background: rgba(233, 180, 76, .18); border-color: rgba(154, 106, 14, .3); box-shadow: none; cursor: default; filter: none; }
/* how to choose: the National Service step strip, five steps here, before the tour lists */
@media (min-width: 761px) { .f-steps .pg-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.f-steps { margin-bottom: clamp(10px, 1.6vw, 22px); }
/* the heading sits close to its steps */
.f-find #fFindH { margin-bottom: 0; }
.f-find .f-steps { margin-top: calc(6px - clamp(14px, 1.6vw, 24px)); }
/* under the steps: a rule across the whole screen */
.f-sep { width: 100vw; height: 1px; margin: clamp(18px, 2.4vw, 32px) 0 clamp(6px, 1vw, 14px); margin-inline: calc(50% - 50vw); border: 0; background: rgba(2, 56, 89, .25); }
:root[data-theme="dark"] .f-sep { background: rgba(167, 235, 242, .3); }
/* tour-type header, like the reason cards: the coloured band and, on the left, a separate glass square with a lively icon */
.f-type-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: stretch; margin: 0 0 12px; }
.f-type-head .f-type-h { margin: 0; }
.f-type-ic { display: grid; place-items: center; width: 84px; box-sizing: border-box; border-radius: 20px; }
.f-type-ic .ai { width: 66px; height: 66px; }
@media (max-width: 760px) { .f-type-ic .ai { width: 46px; height: 46px; } }
/* their loops */
.ti-sun .rays { transform-box: view-box; transform-origin: 60px 60px; animation: ti-turn 10s linear infinite; }
.ti-sun .cloud { animation: ti-drift 4s ease-in-out infinite; }
.ti-balloons .bl { transform-box: fill-box; transform-origin: 50% 100%; }
.ti-balloons .bl.a { animation: ti-bob 3s ease-in-out infinite; }
.ti-balloons .bl.b { animation: ti-bob 3s ease-in-out -1.5s infinite; }
.ti-moon .mn { transform-box: fill-box; transform-origin: 50% 50%; animation: ti-rock 4s ease-in-out infinite; }
.ti-moon .tw { transform-box: fill-box; transform-origin: center; animation: ti-twinkle 2.4s ease-in-out infinite; }
.ti-moon .tw.b { animation-delay: .8s; } .ti-moon .tw.c { animation-delay: 1.6s; }
.ti-gem .gm { transform-box: fill-box; transform-origin: 50% 60%; animation: ti-gem 3s ease-in-out infinite; }
.ti-globe .mer { animation: ti-roll 4s linear infinite; }
.ti-globe .bub { transform-box: fill-box; transform-origin: 20% 100%; animation: ti-pop 3s ease-in-out infinite; }
.ti-notes .nt { transform-box: fill-box; transform-origin: 50% 100%; }
.ti-notes .nt.a { animation: ti-hop 1.6s ease-in-out infinite; }
.ti-notes .nt.b { animation: ti-hop 1.6s ease-in-out -.8s infinite; }
.ti-usflag .fl { transform-box: fill-box; transform-origin: 0% 50%; animation: ti-wave 2.4s ease-in-out infinite; }
@keyframes ti-hop { 0%, 100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-8px) rotate(-6deg); } 60% { transform: translateY(0) rotate(4deg); } }
@keyframes ti-wave { 0%, 100% { transform: skewY(0) scaleX(1); } 25% { transform: skewY(-3deg) scaleX(.96); } 50% { transform: skewY(2deg) scaleX(1); } 75% { transform: skewY(-1.5deg) scaleX(.98); } }
@keyframes ti-turn { to { transform: rotate(360deg); } }
@keyframes ti-drift { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-8px); } }
@keyframes ti-bob { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-7px) rotate(4deg); } }
@keyframes ti-rock { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } }
@keyframes ti-twinkle { 0%, 100% { transform: scale(.4); opacity: .3; } 50% { transform: scale(1.15); opacity: 1; } }
@keyframes ti-gem { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } }
@keyframes ti-roll { from { transform: translateX(0); } to { transform: translateX(-72px); } }
@keyframes ti-pop { 0%, 60%, 100% { transform: scale(1); } 70% { transform: scale(1.14); } 80% { transform: scale(.96); } }
@media (max-width: 760px) { .f-type-head { gap: 8px; } .f-type-ic { width: 60px; border-radius: 16px; } }
@media (prefers-reduced-motion: reduce) { .f-type-ic .ai * { animation: none !important; } }
/* "מוכנים להתחיל?": the arrow stays in place, only the ring runs around it */
.f-ready .pg-ready-go { animation: none; }
/* hero: the festival name alone, large */
body.pg-fest .f-hero .hand { font-size: clamp(110px, 12vw, 190px); white-space: nowrap; }
@media (max-width: 760px) { body.pg-fest .f-hero .hand { font-size: 19vw; } }
/* the ticket: price stub + dates and hours, with a perforated tear line and notches */
.f-pass { --stub: 33.33%; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); border-radius: 26px; overflow: hidden; color: #E3F2F5; background: radial-gradient(90% 120% at 100% 0%, rgba(233, 180, 76, .22) 0%, rgba(233, 180, 76, 0) 55%), linear-gradient(150deg, #26658C 0%, #023859 55%, #011C40 100%); box-shadow: inset 0 1px 0 rgba(227, 242, 245, .25), 0 26px 50px -28px rgba(1, 28, 64, .8); }
.f-notch { position: absolute; width: 30px; height: 30px; border-radius: 50%; background: var(--page-bg, #E3F2F5); inset-inline-start: calc(var(--stub) - 15px); }
.f-notch.t { top: -15px; } .f-notch.b { bottom: -15px; }
.f-pass-price { display: grid; place-content: center; text-align: center; padding: clamp(26px, 3vw, 44px) 18px; border-inline-end: 2px dashed rgba(227, 242, 245, .4); }
.f-price { margin: 0; display: flex; justify-content: center; align-items: flex-start; gap: 4px; color: var(--gold); font: 400 clamp(96px, 10vw, 150px)/.9 var(--title); text-shadow: 0 0 34px rgba(233, 180, 76, .45); }
.f-price span { font-size: .42em; margin-top: .2em; }
.f-price-line { margin: 10px 0 4px; font: 400 clamp(22px, 1.9vw, 28px)/1.2 var(--title); color: #fff; }
.f-price-who { margin: 0; font: 400 clamp(16px, 1.2vw, 18px)/1.4 var(--body); color: #CFE7EE; }
.f-pass-info { padding: clamp(24px, 3vw, 44px) clamp(22px, 3vw, 48px); }
.f-pass-info h2, .f-pass-info h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font: 400 clamp(22px, 1.8vw, 27px)/1.2 var(--title); color: #CFE7EE; }
.f-pass-info h3 { margin-top: 18px; }
.f-ic { width: 1.1em; height: 1.1em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.f-dates { margin: 0; font: 400 clamp(26px, 2.6vw, 40px)/1.15 var(--title); color: #fff; }
.f-hours { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.f-hours li { display: grid; justify-items: center; gap: 4px; padding: 12px 8px; border-radius: 16px; background: rgba(227, 242, 245, .08); border: 1px solid rgba(227, 242, 245, .18); text-align: center; }
.f-hours .f-ic { width: 28px; height: 28px; color: var(--gold); }
.f-hours span { font: 400 clamp(18px, 1.4vw, 21px)/1.1 var(--title); color: #CFE7EE; }
.f-hours b { font: 400 clamp(22px, 1.8vw, 27px)/1 var(--title); color: #fff; letter-spacing: .02em; direction: ltr; }
.f-secure { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; font: 400 15px/1.4 var(--body); color: #CFE7EE; }
.f-secure .f-ic { color: var(--gold); }
/* five reasons: three on top, two below */
.pg-why.f-why { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.f-why .why-card { grid-column: span 2; }
.f-why .why-card:nth-child(n+4) { grid-column: span 3; }
.f-why .why-card h3 { color: #023859; }
.f-notice { display: flex; align-items: flex-start; gap: 12px; margin: clamp(16px, 2vw, 26px) 0 0; padding: 16px clamp(18px, 2vw, 26px); border-radius: 18px; font: 400 clamp(16px, 1.2vw, 18px)/1.6 var(--body); color: #023859; }
.f-notice .f-ic { width: 24px; height: 24px; margin-top: 2px; color: #26658C; }
/* tour finder */
.f-find .pg-h { margin-bottom: clamp(16px, 2vw, 24px); }
.f-filter { position: relative; z-index: 2; margin-bottom: clamp(18px, 2.2vw, 30px); }
.f-filter .c-chip small { margin-inline-start: 7px; padding: 2px 7px; border-radius: 99px; font: 400 .72em/1 var(--body); background: rgba(38, 101, 140, .14); }
.f-filter .c-chip.on small { background: rgba(255, 255, 255, .22); }
.f-filter-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.f-open { position: relative; display: inline-flex; align-items: center; gap: 10px; font: 400 clamp(18px, 1.4vw, 21px)/1 var(--title); color: #023859; cursor: pointer; }
.f-open input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.f-sw { position: relative; width: 46px; height: 26px; border-radius: 99px; background: rgba(38, 101, 140, .25); transition: background .25s; }
.f-sw::after { content: ""; position: absolute; top: 3px; inset-inline-start: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(1, 28, 64, .3); transition: inset-inline-start .25s; }
.f-open input:checked + .f-sw { background: #26658C; }
.f-open input:checked + .f-sw::after { inset-inline-start: 23px; }
.f-open input:focus-visible + .f-sw { outline: 2px solid #26658C; outline-offset: 2px; }
.f-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); align-items: stretch; }
/* a tour card is a ticket: type and hours on top, details, a dashed tear line and the registration button */
.f-tour { position: relative; display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; background: radial-gradient(120% 90% at 90% -10%, rgba(255, 255, 255, .85) 0%, rgba(255, 255, 255, 0) 55%), linear-gradient(160deg, rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .5) 100%); border: 1px solid rgba(255, 255, 255, .9); box-shadow: inset 0 1px 0 #fff, 0 22px 44px -28px rgba(1, 28, 64, .55); transition: translate .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s; }
.f-tour[hidden] { display: none; }
.f-tour.f-in { animation: f-in .5s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes f-in { from { opacity: 0; translate: 0 18px; } }
@media (hover: hover) { .f-tour:hover { translate: 0 -4px; box-shadow: inset 0 1px 0 #fff, 0 30px 54px -28px rgba(1, 28, 64, .65); } }
.f-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 18px; color: #E3F2F5; background: linear-gradient(150deg, #26658C 0%, #023859 100%); }
.f-tour[data-type="evening"] .f-top { background: linear-gradient(150deg, #1B2D55 0%, #0B1533 100%); }
.f-tour[data-type="happening"] .f-top { background: linear-gradient(150deg, #8A5D0B 0%, #6B4504 100%); }
.f-tour[data-type="happening"] .f-kind i { color: #fff; }
.f-kind { display: inline-flex; align-items: center; gap: 8px; font: 400 20px/1 var(--title); }
.f-kind .f-ic { width: 22px; height: 22px; color: var(--gold); }
.f-tour[data-type="happening"] .f-kind .f-ic { color: #FFF3D6; }
.f-kind i { font-style: normal; margin-inline-start: 4px; padding-inline-start: 10px; border-inline-start: 1px solid rgba(227, 242, 245, .35); color: #CFE7EE; direction: ltr; unicode-bidi: isolate; }
.f-reg { padding: 5px 12px; border-radius: 99px; font: 400 17px/1 var(--title); color: #023859; background: #E3F2F5; }
.f-tour h3 { margin: 18px 20px 10px; font: 400 clamp(27px, 2.2vw, 34px)/1.08 var(--title); color: #023859; }
.f-tour h3 span { display: block; margin-top: 5px; font-size: .64em; color: #26658C; }
.f-text { padding: 0 20px; }
.f-text p { margin: 0 0 10px; font: 400 clamp(17px, 1.2vw, 18px)/1.65 var(--body); color: var(--ink); }
.f-more summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-bottom: 0; font: 400 19px/1 var(--title); color: #26658C; cursor: pointer; }
.f-more summary::-webkit-details-marker { display: none; }
.f-more summary::after { content: ""; width: 8px; height: 8px; border: solid currentColor; border-width: 0 2px 2px 0; rotate: 45deg; translate: 0 -2px; transition: rotate .3s, translate .3s; }
.f-more[open] { display: flex; flex-direction: column; }
.f-more[open] summary { order: 9; }
.f-more[open] summary::after { rotate: 225deg; translate: 0 2px; }
.f-more .m-close, .f-more[open] .m-open { display: none; }
.f-more[open] .m-close { display: inline; }
.f-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; margin: 6px 20px 0; padding: 14px 0 0; list-style: none; border-top: 1px solid rgba(2, 56, 89, .12); }
.f-facts li { display: flex; align-items: flex-start; gap: 9px; min-width: 0; }
.f-facts .f-ic { width: 22px; height: 22px; margin-top: 1px; color: #26658C; }
.f-facts span { min-width: 0; font: 400 16.5px/1.4 var(--body); color: var(--ink); }
.f-facts b { display: block; font: 400 16px/1.2 var(--title); letter-spacing: .02em; color: #26658C; }
.f-facts .f-note { grid-column: 1 / -1; }
.f-facts .f-note .f-ic { color: var(--gold-d); }
.f-foot { position: relative; margin-top: auto; padding: 20px; }
.f-foot::before { content: ""; position: absolute; top: 8px; inset-inline: 22px; border-top: 2px dashed rgba(2, 56, 89, .18); }
.f-btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; box-sizing: border-box; margin-top: 8px; padding: 13px 20px; border-radius: 99px; font: 400 clamp(22px, 1.7vw, 25px)/1 var(--title); text-decoration: none; color: #2A1A00; background: linear-gradient(150deg, #F6CF7A 0%, #E9B44C 55%, #D79A26 100%); border: 1px solid rgba(154, 106, 14, .35); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 12px 24px -14px rgba(154, 106, 14, .8); transition: filter .25s, box-shadow .25s; }
.f-btn:hover { filter: brightness(1.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 16px 30px -14px rgba(154, 106, 14, .9); }
.f-btn:focus-visible { outline: 3px solid #023859; outline-offset: 3px; }
.f-btn.f-sold { color: #5B6B78; background: rgba(2, 56, 89, .07); border-color: rgba(2, 56, 89, .14); box-shadow: none; cursor: default; filter: none; }
/* status: a pulsing "last places" flag, a rubber stamp when sold out */
.f-flag { display: inline-flex; align-self: flex-start; align-items: center; gap: 8px; margin: 14px 20px -6px; padding: 6px 12px; border-radius: 99px; font: 400 18px/1 var(--title); color: #8A1C1C; background: #FDE6E2; }
.f-flag i { width: 9px; height: 9px; border-radius: 50%; background: #D93A2B; box-shadow: 0 0 0 0 rgba(217, 58, 43, .55); animation: f-ping 1.6s ease-out infinite; }
@keyframes f-ping { to { box-shadow: 0 0 0 10px rgba(217, 58, 43, 0); } }
.f-stamp { position: absolute; top: 64px; inset-inline-end: 16px; z-index: 1; margin: 0; padding: 6px 12px; border: 3px solid rgba(190, 40, 40, .75); border-radius: 8px; font: 700 22px/1 "Oswald", sans-serif; letter-spacing: .08em; color: rgba(190, 40, 40, .8); rotate: -12deg; pointer-events: none; }
.f-tour.is-sold h3, .f-tour.is-sold .f-text, .f-tour.is-sold .f-facts { opacity: .78; }
/* sold-out tours come after the open ones */
.f-tour.is-sold { order: 1; }
.f-tour.is-sold h3 { padding-inline-end: 120px; }
/* cancellation policy */
.f-policy { padding: clamp(22px, 2.6vw, 40px); border-radius: 24px; }
.f-policy h2 { margin: 0 0 16px; text-align: center; font: 400 clamp(40px, 4.6vw, 72px)/1 var(--title); color: #023859; }
.f-policy p { margin: 0 0 8px; font: 400 clamp(16px, 1.2vw, 18px)/1.65 var(--body); color: var(--ink); }
.f-policy .f-pol-li { position: relative; padding-inline-start: 22px; }
.f-policy .f-pol-li::before { content: ""; position: absolute; inset-inline-start: 4px; top: .7em; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
/* dark mode */
:root[data-theme="dark"] .f-tour { background: linear-gradient(160deg, rgba(20, 38, 62, .85) 0%, rgba(12, 24, 42, .85) 100%); border-color: rgba(167, 235, 242, .18); box-shadow: 0 22px 44px -28px rgba(0, 0, 0, .7); }
:root[data-theme="dark"] .f-tour h3, :root[data-theme="dark"] .f-intro-text h2, :root[data-theme="dark"] .f-policy h2, :root[data-theme="dark"] .f-why .why-card h3, :root[data-theme="dark"] .f-open, :root[data-theme="dark"] .f-notice { color: #E3F2F5; }
:root[data-theme="dark"] .f-tour h3 span, :root[data-theme="dark"] .f-facts b, :root[data-theme="dark"] .f-facts .f-ic, :root[data-theme="dark"] .f-more summary, :root[data-theme="dark"] .f-lead { color: #A7EBF2; }
:root[data-theme="dark"] .f-notch { background: #0E1622; }
@media (max-width: 960px) {
  .f-intro-grid { grid-template-columns: 1fr; }
  .f-poster { order: -1; }
  .f-list { grid-template-columns: 1fr; }
  .pg-why.f-why { grid-template-columns: 1fr; }
  .f-why .why-card, .f-why .why-card:nth-child(n+4) { grid-column: auto; }
}
@media (max-width: 760px) {
  .f-pass { grid-template-columns: 1fr; }
  .f-notch { inset-inline-start: auto; top: 205px; }
  .f-notch.t { right: -15px; } .f-notch.b { left: -15px; bottom: auto; }
  .f-pass-price { height: 220px; box-sizing: border-box; border-inline-end: 0; border-bottom: 2px dashed rgba(227, 242, 245, .4); }
  .f-hours { grid-template-columns: 1fr; }
  .f-hours li { grid-template-columns: 28px 1fr auto; justify-items: start; align-items: center; text-align: start; padding: 10px 14px; }
  .f-glow i { width: 13%; }
  .f-top { padding: 11px 14px; }
  .f-kind { font-size: 18px; }
  .f-tour h3 { margin: 16px 16px 8px; }
  .f-text { padding: 0 16px; }
  .f-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; margin: 6px 16px 0; }
  .f-foot { padding: 18px 16px; }
  .f-flag { margin-inline: 16px; }
  .f-filter-end { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { .f-glow i, .f-flag i, .f-tour.f-in { animation: none; } }
/* wide screens: three tour tickets in a row, the facts a little tighter */
@media (min-width: 1280px) { .f-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } .f-facts { grid-template-columns: 1fr 1fr; gap: 8px 10px; margin-inline: 16px; } .f-tour h3 { margin-inline: 16px; } .f-text { padding: 0 16px; } .f-foot { padding: 18px 16px; } .f-flag { margin-inline: 16px; } }
/* nothing found: the message with a way back and a way to ask */
div.c-none p { margin: 0 0 16px; }
body.pg-fest .pg-ask-col .pg-btn.pg-btn-soft { color: #023859; background: linear-gradient(150deg, #EEF7F9 0%, #C9E4EB 100%); border: 1px solid rgba(38, 101, 140, .35); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 14px 28px -18px rgba(1, 28, 64, .5); cursor: pointer; }
/* phones: the list starts below the top edge after a filter jump */
#fList { scroll-margin-top: 90px; }
/* night: the light glass panels of the festival page */
:root[data-theme="dark"] .f-policy p, :root[data-theme="dark"] .f-join { color: #E8ECF5; }
:root[data-theme="dark"] .f-notice .f-ic { color: #A7EBF2; }
/* English (LTR): the arrows point forward to the right */
html[dir="ltr"] .f-btn svg, html[dir="ltr"] .pg-btn.f-jump svg { scale: -1 1; }
html[dir="ltr"] .f-btn:hover svg, html[dir="ltr"] .pg-btn.f-jump:hover svg { translate: 4px 0; }
/* the English tours on the festival page: all of it, heading included, in a light weight (SF Pro / Inter 300) */
.f-type[lang="en"], .f-type[lang="en"] * { font-weight: 300 !important; }
.f-type[lang="en"] .f-type-h { letter-spacing: -.01em; }
/* each tour type's region rows in its own soft pastel (the ticket's colours, much lighter), so it's clear which list you're in */
.f-type { --rp: rgba(255, 255, 255, .62); --rb: rgba(255, 255, 255, .9); }
.f-type[data-type="day"] { --rp: #FFF1E2; --rb: #F8D9B5; }
.f-type[data-type="happening"] { --rp: #FDE9EA; --rb: #F5C6CA; }
.f-type[data-type="evening"] { --rp: #EEECFB; --rb: #D3CEF3; }
.f-type[data-type="boutique"] { --rp: #FBF3DE; --rb: #EEDCA8; }
.f-type[data-type="english"] { --rp: #E4F5F2; --rb: #B9E2DA; }
.f-type .f-reg-row { background: linear-gradient(160deg, #fff 0%, var(--rp) 70%); border-color: var(--rb); }
.f-type .f-tour-row { background: rgba(255, 255, 255, .82); border-color: var(--rb); }
.f-type .f-count { background: var(--rb); }
:root[data-theme="dark"] .f-type .f-reg-row { background: linear-gradient(160deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .04)); border-color: var(--rb); }
/* tour card: "add to cart" under the registration button – the same pill, in glass */
.f-btn.f-add { cursor: pointer; color: #023859; background: linear-gradient(150deg, rgba(255, 255, 255, .85), rgba(232, 244, 250, .7)); border: 1px solid rgba(38, 101, 140, .3); box-shadow: inset 0 1px 0 #fff, 0 10px 20px -14px rgba(1, 28, 64, .5); }
.f-btn.f-add svg { fill: none; }
.f-btn.f-add:hover svg { translate: 0 0; }
.f-btn.f-add.in { color: #1E7A4C; background: rgba(227, 245, 234, .8); border-color: rgba(30, 122, 76, .35); }
.f-btn.f-add.in .pl { display: none; }
/* the safety line: its own row under the text and the clip, centered on the page */
@media (min-width: 961px) { .f-intro-grid > .f-safe { grid-column: 1 / -1; justify-self: center; width: min(100%, 680px); margin-top: 0; } }
/* the festival's days, right under "מכבים את המסכים": a calendar and the two dates */
.f-when { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px 18px; width: fit-content; max-width: 100%; box-sizing: border-box; margin: 0 auto; padding: 12px 26px; border-radius: 16px; font: 400 clamp(22px, 2vw, 30px)/1.1 var(--title); color: #023859; }
.f-when-ic { flex: none; width: 30px; height: 30px; fill: none; stroke: #26658C; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.f-when i { width: 6px; height: 6px; border-radius: 50%; background: #26658C; opacity: .5; }
:root[data-theme="dark"] .f-when { color: #E3F2F5; }
:root[data-theme="dark"] .f-when-ic { stroke: #A7EBF2; }
@media (max-width: 760px) { .f-when { padding: 10px 16px; gap: 8px 12px; font-size: min(22px, 5.6vw); } .f-when-ic { width: 24px; height: 24px; } }
/* the ticket: the days sit right under "2 תאריכים לבחירה", and the three lines above the tour kinds are evenly spaced */
.f-pass-info h2 { margin-bottom: 10px; }
.f-pass-info .f-dates { margin: 0 0 10px; font-size: clamp(22px, 2vw, 30px); }
.f-pass-info h3 { margin: 0 0 12px; }

/* tour search under the registration steps: a glass bar with a magnifier */
.f-search { position: relative; display: block; box-sizing: border-box; width: min(100%, 720px); margin: clamp(18px, 2.4vw, 28px) auto 0; border-radius: 18px; padding: 8px; }
.f-search svg { position: absolute; inset-inline-start: 26px; top: 50%; width: 24px; height: 24px; translate: 0 -50%; fill: none; stroke: #26658C; stroke-width: 2.2; stroke-linecap: round; pointer-events: none; }
.f-search input { width: 100%; box-sizing: border-box; padding-block: 14px; padding-inline: 54px 18px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .8); background: rgba(255, 255, 255, .55); font: 400 clamp(19px, 1.5vw, 22px)/1.1 var(--title); color: #023859; -webkit-appearance: none; appearance: none; }
.f-search input::placeholder { color: #26658C; opacity: .75; }
.f-search input:focus-visible { outline: 2px solid #26658C; outline-offset: 1px; background: rgba(255, 255, 255, .8); }
.f-none { text-align: center; margin: 14px 0 0; font: 400 20px/1.3 var(--title); color: #26658C; }
:root[data-theme="dark"] .f-search input { background: rgba(255, 255, 255, .08); border-color: rgba(167, 235, 242, .3); color: #E3F2F5; }
:root[data-theme="dark"] .f-search svg { stroke: #A7EBF2; }
:root[data-theme="dark"] .f-search input::placeholder, :root[data-theme="dark"] .f-none { color: #A7EBF2; }
/* the sufganiya beside "מכבים את המסכים": a hop with a squash on landing, the jam glints, powdered sugar drifts up and fades */
.f-donut { display: inline-block; width: 1.25em; height: 1.25em; margin-inline-start: .3em; vertical-align: -.22em; overflow: visible; }
.f-donut .dn-shadow { fill: rgba(1, 20, 40, .35); transform-box: fill-box; transform-origin: center; animation: dn-shadow 2.4s ease-in-out infinite; }
.f-donut .dn-body { transform-box: fill-box; transform-origin: 50% 100%; animation: dn-hop 2.4s ease-in-out infinite; }
.f-donut .dn-shine { animation: dn-shine 2.4s ease-in-out infinite; }
.f-donut .dn-sugar circle { opacity: 0; animation: dn-sugar 2.4s ease-out infinite; }
.f-donut .dn-sugar circle:nth-child(2) { animation-delay: .25s; } .f-donut .dn-sugar circle:nth-child(3) { animation-delay: .1s; }
.f-donut .dn-sugar circle:nth-child(4) { animation-delay: .4s; } .f-donut .dn-sugar circle:nth-child(5) { animation-delay: .32s; }
@keyframes dn-hop {
  0%, 100% { transform: translateY(0) scale(1.08, .9); }
  14% { transform: translateY(0) scale(.96, 1.05); }
  42% { transform: translateY(-9px) rotate(-6deg) scale(1, 1); }
  70% { transform: translateY(0) rotate(0) scale(1.1, .88); }
  82% { transform: translateY(0) scale(.98, 1.03); }
}
@keyframes dn-shadow { 0%, 14%, 70%, 100% { transform: scale(1); opacity: 1; } 42% { transform: scale(.65); opacity: .5; } }
@keyframes dn-shine { 0%, 30%, 100% { opacity: .9; } 50% { opacity: .2; } }
@keyframes dn-sugar { 0%, 60% { opacity: 0; transform: translateY(6px); } 70% { opacity: 1; } 100% { opacity: 0; transform: translateY(-8px); } }
/* phones: the line and the sufganiya share the width, so the line is a little smaller here */
@media (max-width: 760px) { .f-screens:has(.f-donut) { font-size: min(28px, 6.5vw); } .f-donut { width: 1.05em; height: 1.05em; margin-inline-start: .2em; } }
@media (prefers-reduced-motion: reduce) { .f-donut .dn-body, .f-donut .dn-shadow, .f-donut .dn-shine { animation: none; } .f-donut .dn-sugar { display: none; } }
/* "N אנשים צופים עכשיו בפסטיבל" (js/live.js): a real count, shown only from 5; a green live dot that breathes */
.f-live { display: flex; align-items: center; justify-content: center; gap: 10px; width: fit-content; max-width: 100%; box-sizing: border-box; margin: 12px auto 0; padding: 10px 22px; border-radius: 99px; font: 400 clamp(19px, 1.6vw, 24px)/1.1 var(--title); color: #023859; }
.f-live[hidden] { display: none; }
.f-live b { font-weight: 400; color: #0E7A4F; }
.f-live i, .f-live-t::before { flex: none; width: 10px; height: 10px; border-radius: 50%; background: #18B26B; box-shadow: 0 0 0 0 rgba(24, 178, 107, .55); animation: f-live 1.8s ease-out infinite; }
@keyframes f-live { 0% { box-shadow: 0 0 0 0 rgba(24, 178, 107, .55); } 70%, 100% { box-shadow: 0 0 0 9px rgba(24, 178, 107, 0); } }
/* on a tour: "3 צופים עכשיו", or on the tour this visitor opened, "עוד 2 בודקים את הסיור הזה עכשיו" */
.f-live-t { display: inline-flex; align-items: center; gap: 6px; flex: none; padding: 4px 10px; border-radius: 99px; font: 400 15px/1 var(--title); white-space: nowrap; color: #0B5E3C; background: #DDF5E8; }
.f-live-t[hidden] { display: none; }
.f-live-t::before { content: ""; width: 7px; height: 7px; }
@media (max-width: 760px) { .f-live-t { font-size: 13px; padding: 3px 8px; white-space: normal; } }
@media (prefers-reduced-motion: reduce) { .f-live i, .f-live-t::before { animation: none; } }
/* inside an opened tour, right above its buttons: "עוד 24 אנשים בודקים את הסיור הזה ממש עכשיו. מי סוגר ראשון?" */
.f-live-own { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; padding: 10px 14px; border-radius: 12px; text-align: center; font: 400 clamp(17px, 1.4vw, 20px)/1.25 var(--title); color: #0B5E3C; background: #DDF5E8; }
.f-live-own[hidden] { display: none; }
.f-live-own::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: #18B26B; animation: f-live 1.8s ease-out infinite; }
@media (prefers-reduced-motion: reduce) { .f-live-own::before { animation: none; } }
.f-live-own b { display: block; font-weight: 400; }
