:root {
    --lime: #DBF263;   /* 2026 brand lime */
    --ink: #0E1819;    /* 2026 brand ink (near-black) */
    --kturq: #84FFD0;
    --kpink: #ff7cd2;
    --kpeach: #FD8074;
    --kpurple: #B960FF;
    --kblue: #3460ff;

    --kblueshadow: #3460ff2B;
    --kblueshadowlight: #3460ff32;
    --kblueshadowmid: #3460ff66;

    --maxblock: 1012px;
    --maxsection: 1620px;

    --schedsep: var(--lime);

    /* main-CTA hover fill — the radial gradient Figma keeps under the solid lime.
       Shared so the two CTA builds can't drift: sections put the pill on the <a>
       (.cta-but.cta-main a), the 2026 hero puts it on the wrapper div.
       The trailing lime is a full-shorthand under-color: without it the hover's
       `background:` shorthand resets background-color to transparent, and the
       0.3s transition back to lime flashes the page background through on
       mouse-out (visible on dark sections, e.g. the footer). */
    --cta-hover-grad: radial-gradient(ellipse 64% 126% at 18.5% 92%,
        #D6E368 0%, #F7B2E1 50%, #9EC5FF 100%) var(--lime);
}

body {
    font-size: 20px;
    line-height:1.6em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

a {
    text-decoration: none;
}

span.eng {
    direction:ltr;
}

#wrapper {
    overflow: hidden;
    background: #fff;
}

.home #wrapper {
    background: #fff;
}

.b-sponsors {
}

#main {
    position: relative;
    z-index: 1;
    margin-top: 118px;
}

.pauser {
    position: fixed;
    left: 40px;
    bottom: 40px;
    z-index: 1000;
    height: 40px;
}

.pauser svg {
    opacity: 0;
    transform: rotate(-90deg);
}

.stop .pauser svg {
    opacity: 0 !important;
    z-index: 1;
}

.pauser.min svg {
    opacity: 1;
    -webkit-transition: opacity 0.6s 0.3s ease;
    -moz-transition: opacity 0.6s 0.3s ease;
    -o-transition: opacity 0.6s 0.3s ease;
    transition: opacity 0.6s 0s ease;
}

.pauser svg .progress-ring__circle {
    stroke-dasharray: 138 138;
    stroke-dashoffset: 138;
}

.pauser.start svg .progress-ring__circle {
    stroke-dashoffset: 0;
    -webkit-transition: all 7s 0s linear;
    -moz-transition: all 7s 0s linear;
    -o-transition: all 7s 0s linear;
    transition: all 7s 0s linear;
}

.pauser .pwrap {
    z-index: 10;
}

.pauser a {
    color: #fff;
    font-size: 21px;
    text-decoration: none;
    padding: 10px 30px 10px 20px;
    border-radius: 100px;
    background: rgba(0, 0, 0, 0.8);
    display: inline-block;
    -webkit-transition: color 0.6s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
    -moz-transition: color 0.6s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
    -o-transition: color 0.6s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
    transition: color 0.6s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
    position: absolute;
    white-space: nowrap;
    left: 4px;
    top: 4px;
    overflow: hidden;
    z-index: 10;
}

.pauser a::after {
    content: '';
    position: absolute;
    right: 1px;
    top: 5px;
    width: 32px;
    height: 32px;
    background: url(../images/global/pause-animations.svg) center no-repeat;
    -webkit-transition: all 0.5s 0s ease;
    -moz-transition: all 0.5s 0s ease;
    -o-transition: all 0.5s 0s ease;
    transition: all 0.5s 0s ease;
}

.pauser a.play {
    opacity: 0;
    z-index: -1;
}

.pauser a.play::after {
    background: url(../images/global/play-animations.svg) center no-repeat;
}

.stop .pauser a.play {
    opacity: 1;
}

.stop .pauser a.pause {
    opacity: 0;
    z-index: -1;
}

.pauser.min a {
    width: 0 !important;
    overflow: hidden;
    padding: 10px 20px;
    color: rgba(255, 255, 255, 0);
    background: rgba(0, 0, 0, 0.4);
    -webkit-transition: color 0.2s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
    -moz-transition: color 0.2s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
    -o-transition: color 0.2s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
    transition: color 0.2s 0s ease, width 0.6s 0s ease, padding 0.6s 0s ease, background 0.6s 0s ease;
}

.pauser.min a::after {
    right: 4px;
    top: 4px;
}

.pauser .progress-ring {
    display: none;
}

.home .pauser .progress-ring {
    display: block;
}

.page-template-page-registration .pauser {
    display: none;
}

.entry-content img {
    max-width: 100%;
    height: auto;
}

.entry-content a, a.reg, .sidebar a, .fass-wrap a {
    position: relative;
    border-bottom: 0.13em solid var(--ink);
    text-decoration: none;
    color: var(--ink);
}


.sidebar a {
    border-bottom-width: 3px;
}

.entry-content a:hover, a.reg:hover, .sidebar a:hover, .fass-wrap a:hover {
    border-color: var(--lime);
}


.entry-content .cta.cta-regbut {
    font-size: 0.75em;
    margin-top: 4em;
}

a.clean {
    border-bottom: none;
}

a.clean:hover {
    margin-bottom: 0;
    bottom: auto;
    color: inherit;
}

.mini-header {
    position: relative;
    top: 0;
    right: 0;
    height: 117px;
    background: var(--ink);
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #fff;
    justify-content: space-between;
    max-width: var(--maxsection);
    margin: 0 auto;

}

.home:not(.navbar-fixed-top) .mini-header {
    position: absolute;
    width: auto;
    border-bottom: none;
    background: none;
    right:117px;
}

.home:not(.navbar-fixed-top) .h-promo {
    left:117px;
}
.mini-header > .logo {
    height: 100%;
    display: flex;
    flex: 1 1 0;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
.mini-header > .logo > a {
    line-height:0;
}
.mini-header > .logo img {
    width: 310px;
}

/* logo hover: a random homepage-testimonial gradient fills the logo — the link is
   masked to the logo shape, so a revealed canvas replaces the white fill (the img
   stays underneath as the idle/no-JS state). Pick-per-hover lives in uxilive_fe.js. */
.mini-header > .logo > a {
    position: relative;
    -webkit-mask: url(../images/global/c26_logo_white.svg) no-repeat center / contain;
    mask: url(../images/global/c26_logo_white.svg) no-repeat center / contain;
}

.mini-header .logo canvas.logo-grad {
    display: none;
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: auto;
    transform: translateY(-50%);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease 0s;
}

/* .mounted (display) and .on (opacity) are separate classes because display is
   not transitionable. Mounting all seven and fading with opacity alone would be
   simpler, but a canvas with a box intersects, and every intersecting canvas
   builds a Renderer + three full-size surfaces (js/hero26-gradient.js) — so only
   the picked canvas is ever mounted. uxilive_fe.js unmounts on fade-out. */
.mini-header .logo canvas.logo-grad.mounted {
    display: block;
}

.mini-header .logo canvas.logo-grad.on {
    opacity: 1;
}

.home .mini-header > .logo {
    display: none;
}
.navbar-fixed-top.home .mini-header > .logo {
    display: flex;
}

.home #header .head-promo {
    display: none;
}

.mh-handle {
    min-width: 117px;
    height: 117px;
    right: -117px;
    top: 0;
    position:absolute;
}

.mh-handle a {
    display: block;
    width: 100%;
    height: 100%;
    /* 2026: the Figma hero burger (two thin 25x2 bars) is the canonical icon */
    background: url(../images/menu/hamburger26-white.svg) no-repeat center center
}

.mini-header .mh-promo {
    font-weight: bold;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.16em;
    display: flex;
    align-items: center;
    grid-column-gap: 1.43em;
    justify-content: space-between;
}


.mini-header .mh-promo a {
    color: #fff;
    text-decoration: none;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    position: relative;
    padding-bottom: 2px;
    white-space: nowrap;
}

.mini-header .mh-promo a::after {
    content: '';
    left: 0;
    width: 100%;
    bottom: 0;
    height: 3px;
    background: var(--lime);
    position: absolute;
    -webkit-transition: all 0.15s ease 0s;
    -moz-transition: all 0.15s ease 0s;
    -o-transition: all 0.15s ease 0s;
    -ms-transition: all 0.15s ease 0s;
    transition: all 0.15s ease 0s;
}

.mini-header .mh-promo a#program_link::after {
    background-color: var(--lime);
}

.mini-header .mh-promo a:hover {
    padding-bottom: 10px;
}

.mini-header .mh-promo a:hover::after {
    height: 6px;
}

/* hover underline gradient: a live animate12 canvas (testimonial item-7) over the
   ::after bar; clip-path shows a mid slice of the mesh instead of squashing it */
.mini-header .mh-promo a .mh-grad {
    position: absolute;
    left: 0;
    bottom: -27px;
    width: 100%;
    height: 60px;
    clip-path: inset(27px 0 27px 0);
    opacity: 0;
    pointer-events: none;
    z-index: 1; /* above the ::after bar (pseudo paints after children) */
    transition: opacity 0.15s ease 0s;
}

.mini-header .mh-promo a:hover .mh-grad {
    opacity: 1;
}

.home .mini-header .mh-promo {
    display: none;
}
.navbar-fixed-top.home .mini-header .mh-promo {
    display:flex;
}

.mh-info {
    color: #fff;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height:1em;
    margin-top: -3px;
}

.home .mh-info {
    border: none;
}
.mh-info .mh-date a {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 42px;      /* hero nav-date scale: date out-widths the venue line */
    font-weight: 400;
    white-space: nowrap;
    text-decoration: none;
    line-height:1em;
    color: #fff;
}

.home .mh-info .mh-date a, .home .mh-info .mh-loc a {
    color: #fff;
}

.mh-info .mh-loc a {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 15px;      /* hero nav-venue scale */
    font-weight: 700;
    white-space: nowrap;
    text-decoration: none;
    color: #fff;
}

.head-ticker.ticker {
    position: relative;
    flex-basis: 100%;
    background: var(--ink);
    font-family: 'leonprod', arial, Helvetica, sans-serif;
    font-size: 0.75em;
    font-weight: 500;
    color: #fff;
    height: 2em;
    top: -2px;
    border-top: 1px solid #fff;
    cursor: pointer;
}

.head-ticker .ticker-int {
    animation-duration: 110s;
    animation-name: marquee50;
    display: flex;
    align-items: center;
    height: 100%;
}

.head-ticker.ticker span {
    margin-left: 50px;
}

.head-ticker.ticker span::after {
    left: -30px;
}

.menu-holder {
    opacity: 1;
    overflow: hidden;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    right: -100vw;
    background: var(--ink);
    -webkit-transition: all 0.5s 0s ease;
    -moz-transition: all 0.5s 0s ease;
    -o-transition: all 0.5s 0s ease;
    transition: all 0.5s 0s ease;
    z-index: -1;
}

.menu-holder .holder-inner {
    opacity: 0;
    padding: 40px 152px;
    height: calc(100% - 80px);
    position: relative;
    -webkit-transition: all 0.6s 0.35s ease;
    -moz-transition: all 0.6s 0.35s ease;
    -o-transition: all 0.6s 0.35s ease;
    transition: all 0.6s 0.35s ease;
}

#header {
    top: 0;
    right: 0;
    z-index: 20;
    position:relative;
    width: 100%;
    -webkit-transition: all 0.5s 0s ease;
    -moz-transition: all 0.5s 0s ease;
    -o-transition: all 0.5s 0s ease;
    transition: all 0.5s 0s ease;
    background:var(--ink);
}

.home #header {
    position: absolute;
    z-index:100;
}
.home:not(.navbar-fixed-top) #header {
    background:none;
}

.navbar-fixed-top #header, .home .navbar-fixed-top #header {
    position:fixed;
}


.menu .menu-holder {
    width: 100%;
    height: 100%;
    opacity: 1;
    z-index: 500;
    right: 0;
}

.menu .menu-holder .holder-inner {
    opacity: 1;
}

.menu-holder .nav-wrap {
    display: flex;
    height: 100%;
    grid-column-gap: 40px;
    position: relative;
    z-index: 10;
}

.menu-holder .nav-right {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex: 1 0 63%;
    grid-row-gap: 100px;
}

.menu-holder .main {
    flex: 1 1 100%;
}

.menu-holder .logo {
    max-width: 340px;   /* was 450px */
}

/* hover fill: a random homepage-testimonial gradient fills the logo, exactly as
   in the mini-header — the link is masked to the logo shape and the stacked
   .logo-grad canvases are revealed one at a time (js/uxilive_fe.js). */
.menu-holder .logo a {
    max-width: 100%;
    display: block;
    position: relative;
    /* line-height:0 collapses the inline baseline gap under the <img> (same as
       .mini-header > .logo > a). Without it the <a> is ~8px taller than the
       image, so the contain-sized mask centres off the artwork and shreds it. */
    line-height: 0;
    -webkit-mask: url(../images/global/c26_logo_white.svg) no-repeat center / contain;
    mask: url(../images/global/c26_logo_white.svg) no-repeat center / contain;
}

.menu-holder .logo a img {
    width: 100%;
}

.menu-holder .logo canvas.logo-grad {
    display: none;
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: auto;
    transform: translateY(-50%);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease 0s;
}

/* .mounted / .on split — see the .mini-header .logo-grad rules above */
.menu-holder .logo canvas.logo-grad.mounted {
    display: block;
}

.menu-holder .logo canvas.logo-grad.on {
    opacity: 1;
}

.menu-holder .m-close {
    position: absolute;
    top: 50px;
    left: 40px;
    width: 31px;
    height: 31px;
    background-size: contain;
    z-index: 20;
}

.menu-holder .m-close a {
    display: block;
    width: 100%;
    height: 100%;
    opacity: 1;
    background: #fff;
    -webkit-mask:url(../images/global/close-white2.svg) no-repeat center center;
    mask:url(../images/global/close-white2.svg) no-repeat center center;
}

.menu-holder .m-close a:hover {
    background:var(--lime);
}

.menu-holder .main > ul {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.menu-holder .main > ul > li {
    display: flex;
    grid-column-gap: 100px;
    padding: 10px 0;
}

.menu-holder .main > ul > li.menu-item-has-children > a::after {
    content: '';
    position: absolute;
    left: -40px;
    top: 0.1em;
    width: 22px;
    height: 22px;
    background: url(../images/global/cta-arrow-left-white.svg) no-repeat top left;
    opacity: 1;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.menu-holder .main > ul > li.menu-item-has-children:hover > a::after {
    opacity: 1;
}

.menu-holder .main > ul > li > a {
    font-size: 2.2em;
    color: #fff;
    font-weight: bold;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    text-decoration: none;
    position: relative;
}

.menu-holder .main ul ul, .menu-holder .secondary ul {
    grid-column-gap: 3.7em;
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    opacity: 0.05;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    line-height: 1.6em;
}

.menu-holder .main > ul > li:hover ul {
    opacity: 1;
}

.menu-holder .main ul ul li a, .menu-holder .secondary a {
    color: #fff;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    text-decoration: none;
    position: relative;
}

.menu-holder .main ul ul li a::after, .menu-holder .secondary a::after {
    left: -1.8em;
    top: -1px;
    content: '//';
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: normal;
    text-decoration: none;
    position: relative;
    color: #fff;
}

.menu-holder .main ul ul li:last-child a::after, .menu-holder .secondary li:last-child a::after {
    display: none;
}

/* menu hover is lime everywhere — the per-page .kpink/.kblue accents no longer
   apply to the 2026 menu */
.menu-holder .main > ul > li a:hover,
.kpink .menu-holder .main > ul > li a:hover,
.kblue .menu-holder .main > ul > li a:hover {
    color: var(--lime);
}

.menu-holder .secondary ul {
    display: flex;
    opacity: 1;
    line-height: 1.3em;
}

.menu-holder .secondary li {
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.menu-holder .secondary a::after {
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}


.menu-holder .secondary li:hover a {
    color:var(--lime);
}

.nav-left {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    flex: 1 1 33%;

}

.nav-decor {
    height: 100%;
    width: 50%;
    z-index: 1;
    position: absolute;
    bottom: 0;
    left: 0;

}
/* menu decor (replaced the fish video): brain part 11 rotated 90deg, with part 9
   layered above it at 60%. Each part keeps its own geometry so the mask/gradient/
   art stay registered; --ps scales the pair together on small screens. */
.nav-decor .m-part11,
.nav-decor .m-part9 {
    position: absolute;
    pointer-events: none;
    /* centre origin: rotating about a corner would fling the box out of view */
    transform-origin: center center;
}

/* part 11 rotated 90deg — the 382x403 box renders 403x382, anchored into the
   corner so it bleeds off the left and bottom edges (offsets account for the
   centre transform-origin: rotation keeps the centre, so the box grows ~10px
   left/down of the static position) */
.nav-decor .m-part11 {
    bottom: -37px;
    left: -110px;
    z-index: 0;
    transform: scale(var(--ps, 1)) rotate(90deg);
}

/* part 9 layered above part 11, capped at 60% of its original 419x601.53 and
   offset up-right of part 11's centre so both shapes stay readable */
.nav-decor .m-part9 {
    bottom: -96px;
    left: 46px;
    z-index: 1;
    transform: scale(calc(var(--ps, 1) * 0.6));
}

.err-email .err-email-msg, .err-tel .err-tel-msg {
    display: block;
    height: auto;
    line-height: 1.2em;
    opacity: 1;
}


.head-sched {
    padding: 9px 20px 10px 35px;
    background: #fff;
    display: block;
    max-width: 470px;
    margin: 15px auto 0;
    position: relative;
    border: 3px solid var(--ink);
    z-index: 100;
    font-weight: 500;
    top: -35px;
}

.home .head-sched {
    top: auto;
}

.head-sched .head-close {
    width: 12px;
    height: 12px;
    background: url(../images/global/close-black-small.svg) top left no-repeat;
    position: absolute;
    left: 10px;
    top: 10px;
}

.head-sched .head-day {
    display: flex;
    grid-column-gap: 10px;
    align-items: center;
}

.head-sched strong {
    font-weight: 700;
}

.head-sched .head-loc {
    display: flex;
    grid-column-gap: 10px;
}

.head-sched .head-loc .head-when {
    flex: 1 0 0;
    font-weight: bold;
}

.head-sched .head-loc .head-what {
    flex: 1 1 100%;
}

.head-sched .head-loclink {
    display: flex;
    align-items: center;
}

.head-sched .head-loclink a.nav-icon {
    width: 65px;
    height: 65px;
    background: url(../images/nav/nav-waze-shade.svg) right center no-repeat;
    display: inline-block;
    background-size: contain;
}

.head-sched .head-loclink a.nav-icon.google {
    background: url(../images/nav/nav-google-shade.svg) right center no-repeat;
    background-size: contain;
}

.head-sched .head-loclink a.nav-text, .head-sched a.nav-map {
    display: inline-block;
    border-bottom: 3px solid #2ECAFD;
    white-space: nowrap;
    text-decoration: none;
    color: var(--ink);
}

.head-sched .head-loclink a.nav-text {
    margin-right: 8px;
}

.head-sched .nav-map-text {
    white-space: nowrap;
}

.hblock {
    position: relative;
}

.hblock.inv {
  background:var(--ink);
}

.hblock.h-hero {
    -webkit-transition: all 0.5s 0s ease;
    -moz-transition: all 0.5s 0s ease;
    -o-transition: all 0.5s 0s ease;
    transition: all 0.5s 0s ease;
    position: relative;
    margin: 0;
    aspect-ratio: 16/8.2;
    flex-direction:column;
    background:var(--ink);
}
.h-hero .hero-content-wrap {
    height:calc(min(100vh - 100px, 100% - 100px));
    padding: 0 117px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
}
.hero-spk {
    background: #fff;
}

.hero-decor {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    -webkit-transition: all 0.8s 0s ease;
    -moz-transition: all 0.8s 0s ease;
    -o-transition: all 0.8s 0s ease;
    transition: all 0.8s 0s ease;
}

.stop .dec {
    animation-play-state: paused;
}


.hloader {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 10000;
    background: white;
    display: none;
    justify-content: center;
    align-items: center;
}

.home .hloader {
    display: flex;
}

/* Reveal window: cropped to the C (top row) / P (bottom row) column of the
   logo — viewBox x 185-210 at 2.0149 scale. Width and .logo-int left are a
   matched pair; changing one without the other slides the crop off the C/P. */
.hloader .logo {
    overflow: hidden;
    justify-content: center;
    width: 51px;
    animation: logo 8s 0s ease-in-out infinite;
}

.hloader .logo img {
    height: 100%;
    width: 100%;
}

/* The reveal scales with scaleY, not height. Height must stay fixed: the img is
   sized off .logo-int, and the SVG's preserveAspectRatio re-fits (and re-centres)
   the artwork on every height change — which swept the whole logo sideways past
   the window and only settled on the C/P at full height. A transform runs after
   layout, so the artwork keeps its 641x135 box and the crop stays put. */
.hloader .logo .logo-int {
    height: 135px;
    flex: 0 0 641px;
    position: relative;
    width: 641px;
    left: 215px;
    transform: scaleY(0);
    animation: logoint 8s 0s ease-in-out infinite;
}

@keyframes logoint {
    0% {
        transform: scaleY(0);
        left: 215px;
    }
    12% {
        transform: scaleY(1);
        left: 215px;
    }
    19.9% {
        transform: scaleY(1);
        left: 0;
    }
    99.9% {
        transform: scaleY(1);
        left: 0;
    }
    100% {
        transform: scaleY(0);
        left: 215px;
    }
}

@keyframes logo {
    0% {
        width: 51px;
    }
    12% {
        width: 51px;
    }
    19.9% {
        width: 641px;
    }
    99.9% {
        width: 641px;
    }
    100% {
        width: 51px;
    }

}

.hero-content {
    display: flex;
    position:relative;
    justify-content: space-between;
}
.hero-content .cta {
    z-index:30;
    margin-top:102px;
    position:relative;
}
.hero-content .cta .cta-but-row1::after, .h-hero .h-promo::after, .hero-text::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 300%;
    height: 300%;
    z-index: 0;
    border-radius: 100%;
    transform: translate(-50%,-50%);
    background: radial-gradient(circle, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 28%)
}
.hero-text::after {
    width: 108%;
    opacity:0.8;
    height: 243%;
}
.h-hero .h-promo::after {
    width: 200%;
    height: 200%;
}
.h-promo .dln-box, .h-promo .promise {
    position:relative;
    z-index:10;
}
.hero-content .cta-but.cta-main {
    position:relative;
    z-index:20;
}
.hero-content .cta .cta-but-row{
    position:relative;
    z-index:20;
}
.h-hero .vwrap {
    height: 100%;
    aspect-ratio: 6 / 4;
    position: relative;
    display: inline-block;
}

.h-hero .vid-holder {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 15;
}
.h-hero .vid-holder .video_d {
    position: absolute;
    width: 100%;
    bottom:0;
    left: 0;
}
.h-hero .vid-holder .video_d::-webkit-media-controls-enclosure {
 display:none !important;
}
.h-hero .vid-holder .mobile {
    display:none;
}
.hero-text {
    display: flex;
    justify-content: flex-start;
    width: 100%;
    max-width:820px;
    height: 100%;
    text-align: right;
    color: #fff;
    padding: 0;
    z-index: 18;
    flex: 0 0 45%;
}

.hero-video {
    flex: 0 0 70%;
    text-align: left;
    height: calc(((((100vw - 117px - 117px) * 0.7) * 0.85) / 16) * 10.5);

}

.hero-video .hero-video-wrap {
    margin: 0;
    width: 100%;
    position: relative;
    height: 100%;
    display: inline-block;
    text-align: left;
}

.hero-video video {
    width: 100%;
    border-radius: 1.1em;
    overflow: hidden;
    aspect-ratio: 6 / 4;
    position: relative;
}

.hero-text-wrap {
    display: flex;
    justify-content: center;
    flex-direction: column;
    height: 100%;
    z-index:18;
}

.hero-text .h1-logo {
    text-align: right;
    position:relative;
    width:360px;
    height:76px;
}

.hero-text .h1-logo img {
    width:100%;
    display: inline-block;
}

.hero-text .h1-logo.mobile-hide img {
    max-width: 400px;
}

.hero-text h1 {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    /* color: #fff; */
    font-size: 2.1em;
    font-weight: bold;
    text-align: right;
    margin-top: 0.4em;
}

.hero-text h4 {
    text-align: center;
    font-size: 1.2em;
    font-weight: bold;
}

.hero-text .hero-title {
    margin-bottom: 26px;
}

.hero-desc {
    font-size: 1em;
    line-height: 1.6em;
    font-weight: 500;
}

.hero-desc h2 {
    font-size:1.5em;
    font-weight:bold;
    margin-bottom:1em;
}


.hero-desc p {
    margin-bottom: 0.5em;
}

.hero-desc strong {
    font-weight: 700;
}

.hero-desc a {
    color: #fff;
    border-bottom: 4px solid var(--kpink);
}

.cta {
    margin-top: 30px;
}

.cta-but.cta-main {
    font-size: 1.792em;
    position: relative;
    display: inline-block;
}

/* The file-picker label is a main CTA: it inherits the whole lime pill (shape,
   padding, hover, union-glyph arrow) from the canonical block further down —
   see `.cta-but.cta-main a` / `.cta-but.cta-main.arrow-left a::after`. Only the
   bits a <label> needs on top of that live here. */
.f-file.f-field label {
    cursor: pointer;
    font-size: 1.3em;
    /* RTL: grow leftwards on hover so the pill can't push past the field edge */
    transform-origin: right center;
}

/* The legacy 2025 triangle is gone: the arrow is now the mirrored 2026 union
   glyph drawn as an ::after (see .cta-but.cta-main.arrow-left a::after). */
.eng .cta-but.cta-main.arrow-right a {
    background-image: none;
    padding-right: 0;
}


.cta-but.cta-sec a {
    font-size: 1em;
    color: var(--ink);
    padding-bottom: 2px;
    top: 0;
    text-decoration: none;
    -webkit-transition: color 0.15s 0s ease, border-bottom-color 0.3s 0s ease, padding 0.15s 0s ease-in-out, top 0.15s 0s ease-in-out;
    -moz-transition: color 0.15s 0s ease, border-bottom-color 0.3s 0s ease, padding 0.15s 0s ease-in-out, top 0.15s 0s ease-in-out;
    -o-transition: color 0.15s 0s ease, border-bottom-color 0.3s 0s ease, padding 0.15s 0s ease-in-out, top 0.15s 0s ease-in-out;
    transition: color 0.15s 0s ease, border-bottom-color 0.3s 0s ease, padding 0.15s 0s ease-in-out, top 0.15s 0s ease-in-out;
    position: relative;
}

.cta-but.cta-sec a::after {
    content: '';
    left: 0;
    width: 100%;
    bottom: -2px;
    height: 2px;
    background: var(--ink);
    position: absolute;
    -webkit-transition: all 0.15s ease 0s;
    -moz-transition: all 0.15s ease 0s;
    -o-transition: all 0.15s ease 0s;
    -ms-transition: all 0.15s ease 0s;
    transition: all 0.15s ease 0s;
}
.h-hero .cta-but.cta-sec a {
    color:#fff;
}
.h-hero .cta-but.cta-sec a::before {
    border-radius: 100%;
    content: '';
    position: absolute;
    width: 150%;
    height: 150%;
    background: var(--ink);
    z-index: -1;
    filter: blur(23px);
    opacity: 1;
    transform: translate(-50%,-50%);
    left: 50%;
    top: 50%;
}

.cta-but.cta-sec a:hover::after {
    background-color: var(--lime);
}

.kpink .cta-but.cta-sec a:hover {
    color: var(--kpink);
}

.kblue .cta-but.cta-sec a:hover {
    color: var(--kblue);
}

.cta-arrow a {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    font-size: 2.1em;
    line-height: 1.15em;
    color: #fff;
    text-decoration: none;
    position: relative;
    padding-left: 105px;
    display: block;
    max-width: 260px;
}

.cta-arrow a::after {
    content: '';
    width: 95px;
    height: 91px;
    position: absolute;
    background: url(../images/arrow-cont-left/arrow-cont-left.svg) no-repeat top left;
    display: inline-block;
    left: 0;
    top: calc(50% - 45px);
}

.cta-arrow a:hover::after {
    background: url(../images/arrow-cont-left/arrow-cont-left-hover.svg) no-repeat top left;
}

.but-norm {
    display: flex;
    flex-direction: column-reverse;
}

/* ---- reg-promo chip: the seats-limit pill recipe (.ws-tkt-info.seats-limit)
        inverted — ink chip, lime text. Links to the registration page like the
        CTA below it. Scoped to .cta-regbut: reg-form .but-norm captions
        (.reg-wrap .cta-but-exp) keep their own styling. ---- */

.cta-regbut .but-norm .cta-but-exp {
    align-self: center;
    display: inline-flex;
    align-items: center;
    background: var(--ink);
    color: var(--lime);
    text-decoration: none;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 1;
    /* leon Hebrew sits low in its em box: the 3px extra bottom padding is the
       optical lift (cf. .cta-but.cta-main a) */
    padding: 10px 22px 13px;
    border-radius: 800px;
    margin-bottom: 14px;
}


.home.loading .h-hero * {
    animation-play-state: paused;
}

.stop .hero-decor * {
    animation-play-state: paused;
}

/*
@keyframes dball-cw {
    10% {
        transform: rotate(-20deg);
    }
    30% {
        transform: rotate(20deg);
    }
}
*/
@keyframes dball-cw {
    0% {
        transform: rotate(-20deg);
    }
    20% {
        transform: rotate(20deg);
    }
    90% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(-20deg);
    }
}

/*@keyframes dball-ccw {
    10% {
        transform: rotate(20deg);
    }
    30% {
        transform: rotate(-20deg);
    }
}*/
@keyframes dball-ccw {
    0% {
        transform: rotate(20deg);
    }
    20% {
        transform: rotate(-20deg);
    }
    100% {
        transform: rotate(20deg);
    }
}

/*@keyframes dicon-opacity {
    0% {
        opacity: 1;
    }
    29.99% {
        opacity: 1;
    }
    30% {
        opacity: 0;
    }
    99% {
        opacity: 1;
    }
    100% {
        opacity: 1;
    }
}*/

@keyframes dicon-opacity {
    19.9% {
        opacity: 1;
    }
    20% {
        opacity: 0;
    }
    88% {
        opacity: 0;
    }
    89% {
        opacity: 1;
    }
}


.page .alt > .holder, .single .alt > .holder, .archive .alt > .holder, .reg-wrap .page-wrap .holder {
    width: 100%;
    max-width: var(--maxsection);
    margin: 0 auto;
}
.page .alt > .holder.pay-wrap {
    display:flex;
    justify-content: center;
}

.page-template-page-registration .b-sponsors .bl-title {
    padding-top: 0;
}
.reg-wrap .discs {
    text-align: center;
    margin: 0 0 2em;
    display:none;
}
.grecaptcha-badge {
    display:none;
}
.reg-wrap .discs a {
    border-bottom:2px solid var(--ink);
    color:var(--ink);
}
.reg-wrap .discs a:hover {
    border-color:var(--lime);
}

.reg-wrap .page-wrap .holder {
    position: relative;
}

.page .alt, .single .alt, .archive .alt, .error404 .alt {
    padding-bottom: 5.62em;
    position: relative;
}

.page .alt.gpage, .error404 .gpage{
    padding-bottom: 0;
}
.eng .entry-content ul, .eng .sidebar-box ul {
    margin-right:0;
    margin-left:1em;
}
.hero-text .cta-but-row {
    text-align: right;
}

.hero-text .cta-but.cta-main a {
    border: none;
}

.hero-text .cta-but.cta-main {
    text-align: right;
}

.hero-text .cta-but.cta-sec {
    text-align: right;
}

.cta-but-row {
    margin-top: 30px;
}

.cta-but-row:first-child {
    margin-top: 0;
}

.orgs .org img {
    max-width: 50vw;
}

.h-promo {
    position: absolute;
    height: calc(117px - 28px - 28px);
    padding: 28px 0;
    z-index: 50;
    top: 0;
    background: none;
    color: #fff;
    display: flex;
    justify-content: space-between;
}

.home .h-promo {
    cursor: pointer;
}

.home .h-promo:hover {
    color: var(--kpink);
}

.h-promo .promise {
    padding-left: 40px;
}

.h-promo.dt .cta {
    flex-basis: 100%;
    position: absolute;
    bottom: 5px;
    width: 100%;
    right: 0;
    display: flex;
    justify-content: flex-start;
    display: none;
}

.h-promo.dt .cta-but {
    padding: 28px;
}

.h-promo.dt .cta a {
    font-size: 1em;
    color: #fff;
    border-bottom-width: 3px;

}

.h-promo .time-box {
    display: flex;
    flex-direction: row-reverse;
    grid-column-gap: 18px;
    justify-content: space-between;
    flex: 1;
    line-height:1.3em;
    align-items:center;
    z-index:10;
}
.h-promo .time-box .num {
    font-size: 1.5em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.h-promo .time-box .num-sep {
    display: none;
}

.h-promo.dt .promise {
    display: flex;
    align-items:center;
}

.h-promo.tkt .num, .h-promo.tkt .per {
    font-size: 1.5em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.h-promo.tkt .num {
    margin-left: 5px;
}

.h-promo.tkt .dln-box {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    grid-column-gap: 0.2em;
}

.h-promo.tkt .dln-box-int {
    display: flex;
    align-items: center;
    grid-column-gap: 0.2em;
}

.h-promo.tkt .promise {
    display: flex;
    align-items: center;
    padding-left: 0.5em;
    margin-bottom: 0.1em;
}

.errmsg {
    color: #ff012b;
    padding: 0;
    font-size: 0.95em;
    font-weight: 500;
    opacity: 0;
    height: 0;
    line-height: 0;
    -webkit-transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    -ms-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
}

.cta .errmsg {
    position: relative;
}

.f-field .errmsg {
    color: #f54040;
}

.err .cta .errs {
    padding-top: 0.6em;
    padding-bottom: 0.6em;
    margin-bottom: 1em;
}

.cta .errmsg:after {
    content: '';
    display: block;
    position: absolute;
    right: 0;
    top: -1px;
    width: 20px;
    height: 20px;
}

.ferr .cta .errmsg, .livelogin .errmsg {
    display: block;
    margin-bottom: 5px;
    height: auto;
    line-height: 1.2em;
    opacity: 1;
}

.livelogin .errs {
    margin-top: 2em;
}

.livelogin .errmsg {
    padding: 10px;
}

.p-popup {
    position: fixed;
    width: 100%;
    height: 100%;
    color: var(--ink);
    top: 0;
    left: 0;
    z-index: -1;
    -webkit-transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    -ms-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
    opacity: 0;
    display: flex;
}

.p-popup .fld-exp {
    font-size: 1.1em;
    margin-top: 0.15em;
}

.p-popup.active {
    z-index: 10000;
    opacity: 1;
    justify-content: center;
    align-items: center;
}

.p-popup-back {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.85);
    cursor: pointer;
}

.p-popup .p-popup-int {
    background: #fff;
    z-index: 510;
    border: 3px solid var(--ink);
    opacity: 0;
    position: relative;
    padding: 45px 53px;
}

.p-popup.active .p-popup-int {
    opacity: 1;
}

.p-popup-title {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.5em;
    font-weight: bold;
    text-align: center;
    display: flex;
    margin-bottom: 40px;
}

.p-popup-close {
    position: absolute;
    border-bottom: 0;
    color: var(--ink);
    top: -38px;
    left: -38px;
    width: 26px;
    height: 26px;
    border-radius: 30px;
    -webkit-transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    -ms-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
    display: block;
    background:#fff;
    mask: url(../images/global/close-white2.svg);
    mask-size: contain;
    z-index: 10;
    cursor: pointer;
}

.p-popup-close:hover {
    background-color: var(--lime);
}

.p-popup-content label {
    display: block;
    font-size: 1.27em;
    margin-bottom: 4px;
    font-weight: 400;
}

.p-popup-content input {
    border: 3px solid var(--ink);
    padding: 11px 18px;
    text-align: right;
    color: var(--ink);
    background: #ffff;
    width: calc(100% - 46px);
}

.p-popup.err input[type=text], .p-popup.err input[type=email] {
    border-color: #F54040;
}

.p-popup-content .exp {
    font-size: 0.9em;
    color: #F54040;
    display: none;
    position: relative;
    align-items: center;
    height: 45px;
}

.p-popup.err .exp {
    display: flex;
}

.p-popup.err .exp:after {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    position: absolute;
    right: 0;
    top: 12px;
}

.p-popup-content .success {
    display: none;
    position: relative;
    height: 45px;
    margin-top: 0.5em;
}

.p-popup-content .waiting {
    height: 45px;
    align-items: center;
    display: none;
}

.p-popup.load .waiting {
    display: flex;
    margin-top: 0.5em;
}

.p-popup.load .f-row, .p-popup.load .cta, .p-popup.load .p-popup-close, .p-popup.succ .f-row, .p-popup.succ .cta, .p-popup.succ .p-popup-close {
    display: none;
}

.p-popup.load .load-img {
    height: 30px;
    margin-left: 4px;
}

.p-popup.load .load-img img {
    height: 30px;
}

.p-popup.load input[type=submit], .p-popup.succ input[type=submit] {
    cursor: wait;
    background: #999;
}

.p-popup.load input[type=text], .p-popup.succ input[type=text] {
    cursor: wait;
    background: #eee;
}

.p-popup.succ .success {
    display: flex;
}

.p-popup .cta-but.cta-main {
    font-size: 1.15em;
}

.p-popup .cta-but.cta-main::after {
    right: -0.48em;
    width: 0.5em;
    height: 1.5em;
}

.p-popup .cta-but.cta-main:hover::after {
    right: -0.5em;
    width: 0.24em;
    height: 1.5em;
}

/* (dead pre-2026 rules for .cta-main a::before/::after removed here and below:
   nothing gave those pseudos `content`, so they generated no box — but they did
   hijack the width/background of the new .arrow-left arrow, which is a real
   ::after. The only live cta-main pseudos are that arrow and .b-sponsors's
   a::before top paint.) */

.p-popup .cta {
    margin-top: 1em;
    margin-bottom: 20px;
    max-width: none;
}

.p-popup .cta-but.cta-main a {
    white-space: nowrap;
    border: none;
}

.p-popup .cta-sec a {
    text-align: center;
    margin-left: 0;
    color: var(--ink);
    font-size: 1.2em;
    font-weight: 400;
}

/* end popup */
.rem-popup .f-row {
    margin-top: 12px;
    margin-bottom: 0;
}

.rem-popup .cta.wback .cta-but-row.disabled .cta-sec a {
    background: #fff;
}

.rem-popup .cta.wback .cta-but-row {
    justify-content: flex-start;
}

.rem-popup .cta.wback {
    margin-bottom: 0;
}

.rem-popup .f-field-ord_tel {
    display: none;
}

.discount-popup .p-row-container {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
}

.discount-popup input[type=text] {
    direction: ltr;
}

.discount-popup input[type=submit] {
    margin-right: 8px;
}

.bl-title {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    width: 85%;
    margin: 0 auto;
    padding: 150px 0 60px;
    text-align: center;
}

.hblock.inv .bl-title{
    color: #fff;
}

.post-type-archive-ev_event .bl-title {
    padding-top:100px;
}
.post-type-archive-ev_event .bl-title h2 {
    font-size: 4em;
}

.post-type-archive-ev_event .bl-title h3 {
    font-size: 1.5em;
}
.bl-title h2 {
    font-weight: bold;
    font-size: 4em;
    line-height: 1.2em;
}

.bl-title h3 {
    font-size: 1.542em;
    line-height: 1.4em;
    margin-top: 0.4em;
}

.b-sp-gallery .bl-title {
    max-width:var(--maxsection);
}
.b-sp-gallery .gal-wrap {
    position: relative;
}

.gal-nav {
    display: none;
}

.b-sp-gallery .spks {
    display: flex;
    width: 100%;
    max-width: 100%;
    overflow: visible;
    height: 53.125vw;
    max-height: 90vh;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    background: var(--ink);
}

.b-sp-gallery .spks .item {
    flex: 1 1 20%;
    text-align: center;
    position: relative;
    overflow: visible;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.b-sp-gallery .spks .item .spk-photo {
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 1;
}

.b-sp-gallery .spks .item .spk-photo a {
    display: block;
    width: 100%;
    height: 100%;
    filter: grayscale(100%);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center top;
    position: relative;
    z-index: 1;
}

.b-sp-gallery .spks .item .spk-video-overlay {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 100%;
    height: auto;
    opacity: 0;
    pointer-events: none;
    z-index: 2;
    transition: opacity 0.3s ease;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    transform: translateX(-50%);
}

.b-sp-gallery .spks .item .spk-video-overlay .video-canvas {
    width: 173%;
    height: auto;
    display: block;
    position: relative;
    left: 0;
    background: transparent;
    opacity: 1;
}

.b-sp-gallery .spks .item .spk-video-overlay .video-source {
    display: none;
}

/* Fish Video Animation */
.fish-video-container {
    position: absolute;
    width: 650px;
    height: 433px;
    left: 50%;
    transform: translateX(-50%);
    bottom: -162px; /* Position so top half is inside b-audience, bottom half overflows onto b-video */
    z-index: 10;
    pointer-events: none;
}

.fish-video-container .fish-video-source {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: transparent;
    mix-blend-mode: multiply;
}

/* Animation for fish swimming across screen */
@keyframes fish-swim-right {
    0% {
        left: 0;
        transform: translateX(-100%) scaleX(1);
    }
    100% {
        left: 100vw;
        transform: translateX(0%) scaleX(1);
    }
}

@keyframes fish-swim-left {
    0% {
        left: 100vw;
        transform: translateX(0%) scaleX(-1);
    }
    100% {
        left: 0;
        transform: translateX(-100%) scaleX(-1);
    }
}

.fish-video-container.swimming-right {
    animation: fish-swim-right 50s linear 1 forwards;
}

.fish-video-container.swimming-left {
    animation: fish-swim-left 50s linear 1 forwards;
}

.b-video {
    position: relative;
}
.b-video-int {
    max-height:95vh;
    height:100%;
    width:100%;
    aspect-ratio: 16 / 9;
}
.b-video-int iframe {
    width:100%;
    aspect-ratio: 16 / 9;
    max-height:100%;
}
.b-sp-gallery .spks .item:hover .spk-video-overlay,
.b-sp-gallery .spks .item.hoverized .spk-video-overlay {
    opacity: 1;
}

.b-sp-gallery .spks .item .spk-video-overlay video {
    width: 173%;
    height: auto;
    display: block;
    object-fit: contain;
    object-position: bottom;
    background: transparent;
    position: relative;
    left: 0;
    opacity: 1; /* Increase from e.g. 0.7 to 0.85 for more opacity */
}

.b-sp-gallery .spks .item.active a {
    filter: none;
}

.spk.item .spk-info {
    position: absolute;
    z-index: 3;
    bottom: 0;
    right: 0;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    display: flex;
    padding-bottom: 2em;
    width: 100%;
    overflow:hidden;
}
.speaker-list h2.mishne {
    color:#fff;
}

.speaker-list .spk.item .spk-info {
    overflow:visible;
}

.home .spk.item .spk-info {
    display: none;
}

.home .spk.item.hoverized .spk-info {
    display: block;
}

.spk.item .spk-info-wrap {
    margin-right: auto;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.spk.item .spk-name {
    font-weight: bold;
    text-align: right;
    position: relative;
    margin-bottom: 1em;
    width: max-content;
    transform-origin: right center;
    transform: rotate(-4deg);
    font-size: 2.08em;
    padding: 8px 28px 8px 20px;
    display: inline-block;
    max-width: 75%;
    background: var(--kpeach);
    filter: none;
    /* -webkit-transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    /* -moz-transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    /* -o-transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    /* transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    -webkit-transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
    -moz-transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
    -o-transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
    transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
}

.home .spk.item .spk-name {
    right: -0.2em;
}


.spk.item.active .spk-name {
    opacity: 1;
}

.spk.item.active .spk-name.eng {
    align-self: flex-end;
}

.spk.item .spk-info a {
    color: var(--ink);
    text-decoration: none;
}

.spk.item.active .spk-info {
    display: flex;
    opacity: 1;
}

.spk.item .spk-role {
    font-size: 1.2em;
    font-weight: normal;
    text-align: right;
    position: relative;
    display: inline-block;
    transform: rotate(4deg);
    background: var(--kpeach);
    padding: 8px 28px 8px 20px;
    max-width: 60%;
    /* -webkit-transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    /* -moz-transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    /* -o-transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    /* transition: right 0.45s 0.15s ease-in-out, left 0.45s 0.15s ease-in-out, background-color 0.8s 0s ease-in-out; */
    -webkit-transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
    -moz-transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
    -o-transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
    transition: opacity 0.2s 0s ease-in-out, background-color 0.8s 0s ease-in-out;
}

.spk.item.active .spk-role {
    right: -15px;
    opacity: 1;
}

.spk.item .spk-role.eng {
    align-self: flex-end;
    text-align: left;
    direction: ltr;
}

.spk.item.active .spk-role.eng {
    right: auto;
    left: -15px;
}

.spk.item.hoverized {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 20%;
    opacity: 1;
    -webkit-box-shadow: 0px 5px 8px var(--kblueshadowlight);
    box-shadow: 0px 5px 8px var(--kblueshadowlight);
    -webkit-transition: opacity 0.2s 0s ease;
    -moz-transition: opacity 0.2s 0s ease;
    -o-transition: opacity 0.2s 0s ease;
    transition: opacity 0.2s 0s ease;
    z-index: 10;
}

.spk.item.hoverized .spk-photo a {
    filter: none;
}

.spk.item.hoverized .spk-info {
    display: block;
}

.spk.item.hoverized .spk-video-overlay {
    position: absolute;
    left: 50%;
    bottom: 0;
    height: auto;
    opacity: 1;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    transform: translateX(-50%);
    z-index: 10;
    clip-path: inset(0% 0 0 0);
    transition: clip-path 1s ease-out;
    width: 173%;
    aspect-ratio: 2.0322/1;
}

.spk.item.hoverized .spk-video-overlay .video-canvas {
    height: 100%;
    width:100%;
    display: block;
    position: relative;
    left: 0;
    background: transparent;
    opacity: 1;
}

.spk.item.hoverized .spk-video-overlay .video-source {
    display: none;
}

.b-sp-gallery .cta {
    position: absolute;
    margin-top: 0;
    top: 50%;
    left: 2%;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    z-index:50;
    /*opacity:0.7;*/
}

.b-sp-gallery.last-sel .cta {
    opacity:0.1;
}

.b-sp-gallery .cta:hover {
    /*top: calc(50% + 12px);*/
    transform:scale(1.05);
    /*padding-bottom: 20px;*/
    opacity: 1;
}

.b-sp-gallery.lefties .cta {
    opacity: 0.2;
}

.speakers-arrow {
    width: 248px;
    height: 131px;
    background: url(../images/b-sp-gallery/speakers-arrow-left.svg) no-repeat left top;
    display: block;
    background-size: contain;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.speakers-arrow:hover {
    background: url(../images/b-sp-gallery/speakers-arrow-left-hover.svg) no-repeat left top;
    background-size: contain;
}

.gal-wrap.ctahov .item {
    opacity: 0.6;
}

.b-what {
    padding-top: 9em;
    padding-bottom:8em;
    background:var(--kturq);
    z-index:18;
}
.b-what .bl-title {
    padding-top: 0;
    position: relative;
    max-width: var(--maxblock);
    margin: 0;
}

.b-what .bl-title h2 {
    text-align: right;
}
.b-what .bl-content h2 {
    font-size:1.8em;
    font-weight:bold;
    margin-bottom:0.3em;
    margin-top:0.6em;
}
.b-what .bl-content h3 {
    font-size:1.3em;
    font-weight:bold;
    margin-bottom:0.3em;
    margin-top:0.6em;
}

.stop .b-what .bl-title::after, .stop .b-what .bl-title::before {
    animation-play-state: paused;
}

@keyframes whatup-right {
    0% {
        right: 40px;
        top: 82px;
    }
    50% {
        right: 70px;
        top: 102px;
    }
    100% {
        right: 40px;
        top: 82px;
    }
}

@keyframes whatup-left {
    0% {
        left: 40px;
        top: 82px;
    }
    50% {
        left: 70px;
        top: 102px;
    }
    100% {
        left: 40px;
        top: 82px;
    }
}

.b-what .holder:hover .bl-title::before {
    top: 102px;
    left: 70px;
}

.b-what .holder:hover .bl-title::after {
    top: 102px;
    right: 70px;
}

.b-what .holder {
    position:relative;
    width: 80%;
    max-width: 1619px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 0;
}
.b-what .bl-content p:last-child {
    margin-bottom:0;
}

.b-what .bl-content.promovid {
    margin-bottom:40px;
    width:100%;
}
.b-what .bl-content {
    max-width: var(--maxblock);
    font-size: 1.1em;
    line-height: 1.6em;
}

.hblock.inv.b-code {
    background:#fff;
}
.hblock.inv.b-code .holder {
    background:var(--ink);
}
.b-code .bl-content a {
    border-bottom: 2px solid var(--ink);
    color: var(--ink);
    transition: border-color 0.2s ease;
}
.b-what .bl-content a {
    border-bottom: 2px solid var(--ink);
    color: var(--ink);
    transition: border-color 0.2s ease;
}
.b-what .bl-content a:hover {
    border-color:var(--lime);
    color:var(--ink);
}

.b-code .bl-content a:hover {
    border-color: var(--lime);
}

.b-what .bl-content p {
    margin-bottom: 1em;
}

.b-video {
    background: rgb(236, 239, 245);
    background: radial-gradient(circle, rgba(236, 239, 245, 1) 0%, rgba(236, 239, 245, 1) 30%, rgba(247, 248, 250, 1) 81%, rgba(255, 255, 255, 1) 100%);
    padding: 0 160px;
    -webkit-transition: background-color 0.8s 0s ease;
    -moz-transition: background-color 0.8s 0s ease;
    -o-transition: background-color 0.8s 0s ease;
    transition: background-color 0.8s 0s ease;
}

.b-video .holder {
    padding-bottom:7.5em;
    max-width:var(--maxsection);
    margin:0 auto;
}

.b-cta .holder {
    max-width: var(--maxsection);
    margin: 0 auto;
    display: flex;
    justify-content: flex-start;
    padding-bottom: 7.5em;
    flex-direction: column;
    align-items:center;
}
.b-cta .bl-title {
    padding-top:0;
    padding-bottom:1em;
    font-size:0.72em;
}
.b-cta .cta-but.cta-main.arrow-left a {
    transform-origin: center center;
}

.ticker {
    position: absolute;
    width: 100%;
    max-width: 100%;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    overflow: hidden;
    height: 1em;
    z-index: 10;
}


.ticker-int {
    white-space: nowrap;
    animation: marquee 15s linear infinite;
    position: absolute;
    will-change: transform;
}

.ticker.rev .ticker-int {
    animation: marquee_rev 15s linear infinite;
}

.ticker span {
    margin-left: 120px;
    position: relative;
}

.ticker span::after {
    content: '✱';
    font-weight: normal;
    position: relative;
    left: -0.65em;
    top: 0;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    color: var(--ink);
}

.outline {
    color: transparent;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #fff;
}

.ticker span.outline::after {
    color: transparent;
}

@keyframes marquee {
    from {
        transform: translate(0, 0);
    }
    to {
        transform: translate(50.3%, 0);
    }
}

@keyframes marquee_rev {
    from {
        transform: translate(50.3%, 0);
    }
    to {
        transform: translate(0, 0);
    }
}

@keyframes marquee_v {
    from {
        transform: translatey(0);
    }
    to {
        transform: translatey(-50%);
    }
}

@keyframes marquee_v_rev {
    from {
        transform: translatey(-50%);
    }
    to {
        transform: translatey(0);
    }
}

@keyframes marquee50 {
    to {
        transform: translate(50%, 0);
    }
}

.stop .ticker-int, .stop .rev .ticker-int {
    /*animation:none;*/
    animation-play-state: paused;
}

.b-video .video-wrap {
    display: none;
}

.b-video .cta {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.b-video .cta-play a {
    display: block;
    width: 210px;
    padding-left: 120px;
    padding-top: 6px;
    color: #fff;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 2.1em;
    line-height: 1.2em;
    height: 140px;
    font-weight: Bold;
    text-decoration: none;
    background: url(../images/b-video/play-button-hover.svg) no-repeat left 10px;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    background-position: 0 0;
    background-size: auto 130px;
}

.b-video .cta-play a:hover {
    background-image: url(../images/b-video/play-button-hover.svg);
    background-position: 5px -2px;
    margin-top: 15px;
    background-size: auto 124px;
}

.b-video .hider {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 1);
    -webkit-transition: opacity 0.6s 0s ease;
    -moz-transition: opacity 0.6s 0s ease;
    -o-transition: opacity 0.6s 0s ease;
    transition: opacity 0.6s 0s ease;
    z-index: 0;
    cursor: pointer;
}

.b-video.playing .hider {
    opacity: 1;
    z-index: 50;
}

.b-video.playing .ticker {
    display: none;
}

.b-video.playing .video-wrap {
    display: flex;
    width: 75%;
    height: 100%;
    margin: 0 auto;
    z-index: 100;
    justify-content: center;
    align-items: center;
}

.b-video.playing .video-wrap iframe {
    width: 100%;
    height: 100%;
}

.b-video.playing .cta {
    display: none;
}

.b-video.playing .holder {
    background: none;
    /*z-index:10;*/
}

.b-video .close a {
    background: url(../images/global/close-white2.svg) no-repeat center;
    background-size: contain;
    display: block;
    width: 100%;
    height: 100%;
}

.b-video .close {
    display: none;
    position: absolute;
    top: 5vw;
    left: 5vw;
    z-index: 100;
    width: 30px;
    height: 30px;
}

.b-video.playing .close {
    display: block;
}

.b-video.playing .close a {
    opacity: 1;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.b-video.playing .close a:hover {
    opacity: 0.5;
}

.split-item .bl-title {
    text-align: right;
}

.b-audience {
    position: relative;
    overflow: visible;
    padding-bottom: 15em;
    padding-top: 4em;
}

.b-audience .decor {
    position: absolute;
    top: 0;   
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 0;
}

.b-audience .holder {
    max-width: var(--maxsection);
    margin: 0 auto;
    position: relative;
    z-index: 10;
}


.b-audience .bl-title {
    margin-right: 0;
    margin-left: 0;
}

.b-audience .bcontent {
    font-size: 1.1em;
    line-height: 1.6em;
    padding-left: 60px;
    max-width:30.64em;
}

.b-audience .bcontent p {
    margin-bottom: 1em;
}

.b-audience .cta-but.cta-main a, .b-code .cta-but.cta-main a {
    border: none;
}

.b-audience .ticker {
    border: 3px solid var(--ink);
    background: var(--ink);
    position: relative;
    font-size: 2.1em;
    color: #fff;
    padding: 9px 0;
}

.b-audience .ticker span {
    margin-left: 66px;
    display: inline-block;
}

.b-audience .ticker span.outline {
    -webkit-text-stroke-width: 2px;
}

.b-audience .ticker span::after {
    left: -0.8em;
    top: 0;
}

.b-audience .ticker span.reg::after {
    left: -0.75em;
}

.b-audience .ticker span.reg:nth-child(even)::after {
    content: "/";
}

.b-audience .ticker {
    font-weight: normal;
}

.b-audience .t1 {
    position: absolute;
    top: 7.5vw;
    left: -50vw;
    transform: rotate(-15deg);
    z-index: 50;
    color: var(--ink)000;
    border-color:var(--kpeach);
    background: var(--kpeach);
}

.b-audience .t2, .b-audience .t5 {
    position: absolute;
    top: 9vw;
    left: -51.85vw;
    transform: rotate(15deg);
    z-index: 40;
    background: var(--kpurple);
    border-color:var(--kpurple);
    color: var(--ink);
}

.b-audience .t3 {
    position: absolute;
    top: 28.8vw;
    left: -53.75vw;
    transform: rotate(-8deg);
    z-index: 30;
    background: var(--kpink);
    border-color:var(--kpink);
    color:var(--ink);
}

.b-audience .t4 {
    position: absolute;
    top: 27.64vw;
    left: -58.1vw;
    transform: rotate(8deg);
    z-index: 20;
    background: var(--kblue);
    border-color:var(--kblue);
    color:var(--ink);
}

.b-audience .t5 {
    background:var(--kturq);
    border-color:var(--kturq);
    color:var(--ink);
    position: absolute;
    top: 47.5vw;
    left: -57.6vw;
    transform: rotate(-15deg);
    z-index: 10;
}

.b-audience .ticker .ticker-int {
    animation-name: marquee_4;
}

.b-audience .ticker.rev .ticker-int {
    animation-name: marquee_4_rev;
}

@keyframes marquee_4 {
    to {
        transform: translate(25.1%, 0);
    }
}

@keyframes marquee_4_rev {
    from {
        transform: translate(25.1%, 0);
    }
    to {
        transform: translate(0%, 0);
    }
}

.b-audience .cta-but.cta-sec {
    margin-top: 40px;
}

.workshop .tile .cont {
    color: var(--ink);
    background: #fff;
    font-size: 70px;
    font-weight: bold;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    text-align: center;
    position: absolute;
    top: 74px;
    right: -63px;
}

.workshop .cta-regbut .but-norm .cta-but-exp {
    background-color:#fff;
    color:var(--ink);
}

.workshop .decor {
    height: 157px;
}

.workshop .decor::after {
    background-position: 2px 2px;
}

.ws-tkt-info {
    position: absolute;
    top: -20px;
    left: 0;
}

/* ============================================================================
   sold-out overlay — the 2026 design, site-wide. Consumed by the workshops
   cards (.b-workshops .bws, homepage + program), the single-workshop header
   (.workshop) and the program table (.ptable); those three add positioning
   only. The 2025 wave-mask sticker treatment is gone and is not coming back.
   ============================================================================ */

.ws-tkt-info.soldout-info {
    position: absolute;
    background: rgba(255, 255, 255, 0.78);
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    cursor: pointer;
    z-index: 10;
}

.ws-tkt-info.soldout-info .soldout-info-int {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    background: none;
    padding: 10px;
    position: relative;
}

/* ink pill / lime label — the exact inverse of the lime .seats-limit chip, so
   "sold out" and "N seats left" read as opposites at a glance */
.soldout-ticket {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    background: var(--ink);
    color: var(--lime);
    border-radius: 800px;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.3em;
    line-height: 1;
    padding: 0.2em 1em 0.4em;
}

a.soldout-tag {
    border-bottom: none !important;
}

/* the add-event / waiting-list link is the canonical lime CTA pill
   (.cta-but.cta-main.arrow-left) — 24px label => 2.138em = 51px tall.
   Set on the <a>, not the wrapper: the overlay renders inside .ws-desc, whose
   `.b-workshops .ws-desc a {font-size:22px}` would otherwise hit the label
   directly and beat an inherited size. */
.ws-tkt-info.soldout-info .cta-but.cta-main a {
    font-size: 0.7em;
}

.seats-limit {
    background: var(--kturq);
    color: var(--ink);
    width: 220px;
    height: 51px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    background-size: contain;
    padding: 7px 4px 5px;
    -webkit-transition: background-image 0.8s 0s ease, color 0.8s 0s ease;
    -moz-transition: background-image 0.8s 0s ease, color 0.8s 0s ease;
    -o-transition: background-image 0.8s 0s ease, color 0.8s 0s ease;
    transition: background-image 0.8s 0s ease, color 0.8s 0s ease;
    -webkit-mask-image: url('../images/b-workshops/wave-mask.svg');
    mask-image: url('../images/b-workshops/wave-mask.svg');
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.ws-tkt-info.seats-limit {
    transform: rotate(-9.4deg);
    left: -82px;
}

.b-testimons {
    padding-bottom: 0;
    overflow: hidden;
}

.b-testimons .bl-title .bl-title-int {
    max-width: 500px;
    margin: 0 auto;
}

.b-testimons .decor {
    display: none;
}

.b-testimons .holder {
    padding-top: 240px;
    padding-bottom: 60px;
}

.b-testimons .gal-wrap {
    width: calc(100% - 100px);
    max-width: var(--maxsection);
    margin: 0 auto;
    position: relative;
}

.b-testimons .testimons {
    display: flex;
    flex-wrap: wrap;
    color: var(--ink);
    justify-content: space-between;
    grid-column-gap: 100px;
    grid-row-gap: 30px;
    padding-top: 80px;
}

.b-testimons .testimon {
    width: 30%;
    align-self: flex-start;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 388px;
}

.b-testimons .testimon-int {
    border: none;
    width: 100%;
    padding: 40px;
    line-height: 1.6em;
    position: relative;
    font-size:1.1em;
}
.b-testimons .testimon-int blockquote {
    font-weight:bold;
}

.b-testimons .testimon:nth-child(2) {
    margin-top: -120px;
}

.b-testimons .testimon:nth-child(3) {
    margin-top: -30px;
}


.b-testimons .testimon:nth-child(5) {
    margin-right: auto;
}

.b-testimons .testimon.item-5 {
    margin-left: auto;
    margin-top: 90px;
    margin-bottom: 35px;
}

.b-testimons .testimon.item-6 {
    margin-top: 10px;
    margin-right: auto;
}

.b-testimons .testimon:nth-child(8) {
    margin-top: 50px;
    margin-left: auto;
}

.b-testimons .testimons .bl-title {
    max-width: 615px;
    display: inline-block;
    width: 100%;
    padding: 0;
    margin: 0;
    position: relative;
}

.b-testimons .bl-title h3 {
    max-width: 327px;
    margin: 0 auto;
}

.b-testimons .testimon cite {
    font-size: 1.1em;
    line-height: 1.1em;
    font-weight: normal;
    margin-top: 20px;
    display: inline-block;
}


.b-orgs .holder {
    width: calc(100% - 100px);
    max-width: var(--maxsection);
    margin: 0 auto;
    padding-bottom: 150px;
}
.splitbox {
    display:flex;
}
.splitbox .split-right, .splitbox .split-left {
    flex-basis:50%;
}
.b-orgs .split-left {
    overflow: hidden;
    padding-top: 90px;
    display: flex;
    justify-content: flex-end;
}

.bl-title h3 {
    margin-top:1em;
}
.b-orgs .bl-title h2 {
    display: table-caption;
}

.b-orgs .bl-title {
    padding-top: 100px;
    padding-bottom: 0;
    width: 100%;
}

.b-orgs .orgs {
    display: flex;
    justify-content: flex-end;
    grid-column-gap: 150px;
    overflow: hidden;
    align-items: flex-start;
}

.b-orgs .org img {
    width: 100%;
    line-height: 0;
    display: inline-block;
    filter: grayscale(100%) contrast(1);
}

.b-orgs .org img:hover {
    filter: none;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.b-orgs .org {
    width: 209px;
    margin-bottom: 70px;
    text-align: center;
}

.b-orgs .orgs-column.orgs-right {
    animation: marquee_v 102s linear infinite;
    will-change: transform;
}

.b-orgs .orgs-column.orgs-left {
    animation: marquee_v_rev 90s linear infinite;
    will-change: transform;
}

.b-orgs .orgs-column {
    color: var(--ink);
    cursor: pointer;
}

.stop .b-orgs .orgs-column {
    animation-play-state: paused;
}

.b-orgs .orgs-wrap {
    overflow: hidden;
}

.b-orgs .org.org-71713 img, .b-orgs .org.org-71651 img, .b-orgs .org.org-71714 img, .b-orgs .org.org-71722 img,
.b-orgs .org.org-71692 img, .b-orgs .org.org-71639 img, .b-orgs .org.org-71690 img, .b-orgs .org.org-71630 img,
.b-orgs .org.org-71704 img, .b-orgs .org.org-71650 img, .b-orgs .org.org-71640 img, .b-orgs .org.org-71638 img {
    width: 6em;
}

.b-orgs .org.org-71710 img {
    width: 7em;
}

.b-orgs .org.org-52619 img {
    width: 3.4em;
}

.org.org-52605 img {
    width: 3.6em
}

.ogr.org-52631 img {
    width: 3.9em;
}

.b-code {
    padding: 0;
}

.b-code .splitbox {
    grid-column-gap: 50px;
}

.b-code .holder {
    margin: 0 auto;
    max-width:var(--maxsection);
}
.b-code .b-code-wrap {
    padding: 105px 115px;
}

.b-code .bl-title {
    padding: 0;
    width: auto;
    margin: 0 0 40px 0;
}

.bl-title a {
    color: var(--ink);
    text-decoration: none;
}

.inv .bl-title a {
    color: #fff;
}

.bl-title a:hover {
    color: var(--kpink);
    -webkit-transition: all 0.2s 0s ease;
    -moz-transition: all 0.2s 0s ease;
    -o-transition: all 0.2s 0s ease;
    transition: all 0.2s 0s ease;
}

.b-code .board {
    background-size: 78px 78px;
    background-image: linear-gradient(to right, var(--kpink) 1.5px, transparent 1px),
    linear-gradient(to bottom, var(--kpink) 1.5px, transparent 1px);
    background-position: 0 0;
    width: 470px;
    height: 470px;
    position: relative;
}

.b-code .decor {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.b-code .bl-content {
    font-size: 1.1em;
    line-height: 1.6em;
    color:#fff;
}
/* (the pre-2026 white/kpink link rules for the old dark CoC card lived here —
   the 2026 card is light, so the canonical rule above is the only one) */

.b-code .bl-content p {
    margin-bottom: 1.5em;
}

.b-code .split-left {
    flex-basis: calc(50% - 50px);
}

.b-code .switch {
    width: 115px;
    height: 48px;
    padding: 8px;
    background: var(--kturq);
    border-radius: 30px;
    margin-bottom: 60px;
    display: flex;
    cursor: pointer;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.b-code .switch-int {
    height: 48px;
    width: 48px;
    background: var(--ink);
    border-radius: 100%;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.b-code .off .switch {
    background: var(--kpink) !important;
    opacity:0.35;
}

.b-code .off .switch .switch-int {
    transform: translatex(-68px);
    background: var(--ink)000 !important;
}

.b-code .bitem {
    width: 77px;
    height: 77px;
    background: var(--kpink);
    border-radius: 100%;
    position: absolute;
    -webkit-transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
    -moz-transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
    -o-transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
    transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
}
.b-code .bitem::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/b-code/code-smiley.svg) no-repeat center;
    background-size: 50%;
    -webkit-transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
    -moz-transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
    -o-transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
    transition: background-image 0.1s 0.05s ease, transform 0.5s 0s ease;
}

.b-code .bitem.smiley {
    -webkit-filter: drop-shadow(0px 7px 10px #D983FA2b);
    filter: drop-shadow(0px 7px 10px #D983FA3b);
}

.b-code .bitem.smiley-2 {
    -webkit-filter: drop-shadow(0px 7px 10px #56DFD72b);
    filter: drop-shadow(0px 7px 10px #56DFD72b);
}

.b-code .bitem.smiley-3, .b-code .bitem.smiley-4 {
    -webkit-filter: drop-shadow(0px 7px 10px var(--kblueshadowlight));
    filter: drop-shadow(0px 7px 10px var(--kblueshadowlight));
}

.b-code .bitem.non-smiley {
    background: var(--kturq);
}

.b-code .off .bitem {
    transform: rotateY(180deg);
}

.b-code .off .bitem.smiley {
    transform: rotateY(180deg) rotate(45deg) scale(0.97) translate(0px, -3px);
    background:var(--ink);
    border:2px solid var(--kpink);
    border-radius: 100%;
}

.b-code .sad .bitem.smiley::after {
    background-image: url(../images/b-code/code-sad2.svg);
}


.b-code .bitem:nth-child(1) {
    left: 79px;
    top: 79px;
}

.b-code .bitem:nth-child(2) {
    left: 1px;
    top: 313px;
    background: var(--kturq);
}

.b-code .bitem:nth-child(3) {
    left: 314px;
    top: 391px;
    background: var(--kpeach);
}

.b-code .bitem:nth-child(4) {
    left: 391px;
    top: 1px;
    background: var(--kblue);
}

.b-code .bitem:nth-child(5) {
    left: 235px;
    top: 235px;
    background:var(--kpurple);
}

.b-code .bitem:nth-child(6) {
    -webkit-mask: url(../images/b-testimonials/star_black_thick.svg) no-repeat center;
    mask: url(../images/b-testimonials/star_black_thick.svg) no-repeat center;
    left: 157px;
    top: 312px;
}

.b-sponsors .split-right {
    direction: ltr;
    text-align: left;
}

.b-sponsors .split-left .cta {
    width: 85%;
    margin: 30px auto 0;
}

.b-sponsors .split-right .cta {
    width: 85%;
    margin: 30px auto 0;
}

.b-sponsors .bl-title h2 {
    display: table-caption;
    word-spacing: 50vw;
    line-height: 1.16em;
}

.b-sponsors .bl-title {
    padding-bottom: 22px;
}

.b-sponsors .spons-head {
    margin-bottom: 8.33em;
}

.ttl-eng {
    direction: ltr;
    text-align: left;
}

.cta.eng .cta-but.cta-main a {
    left: inherit;
    right: 0;
    transform-origin: left center;
}

.b-sponsors .sp-level {
    width: 100%;
    max-width: var(--maxsection);
    margin: 0 auto 2em;
    position: relative;
    /*background: transparent linear-gradient(90deg, #003FFF 0%, #D983FA 54%, var(--kturq) 100%) 0 0 repeat padding-box;*/

}

.b-sponsors .sp-level:last-child {
    margin-bottom: 0;
}

.b-sponsors .sp-level-wrap {
    width: 100%;
    height: 100%;
    background-position: left top 1px;
    background-size: 79px 78px;
}

.page .alt.p-sponsors {
    padding-bottom: 0;
}

.b-sponsors .sp-level-int {
    height: fit-content;
    margin: 0 auto;
    display: grid;
    grid-template-columns: fit-content(30%) fit-content(70%);
    justify-content: space-between;
    padding: 70px 100px;
    border:2px solid var(--ink);
}

.b-sponsors .sp-level-title {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: normal;
    font-size: 1.833em;
    line-height: 1.22em;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

.b-sponsors .sp-level-title span {
    white-space: nowrap;
}


.b-sponsors .sponsor img {
    max-width: 240px;
}

.b-sponsors .sp-level.PLATINUM .sponsor img {
    max-width: 300px;
}

.b-sponsors .sponsor.sponsor-53592 img {
    max-width: 180px;
}

.b-sponsors .sponsor.sponsor-60453 img {
    max-width: 200px;
}

.b-sponsors .sponsor.sponsor-61058 img {
    max-width: 200px;
}

.b-sponsors .sponsor.sponsor-61504 img {
    max-width: 285px;
}

.b-sponsors .sp-level-sponsors {
    display: flex;
    padding-top: 55px;
    padding-bottom: 55px;
    grid-row-gap: 45px;
    grid-column-gap: 3em;
    padding-right: 100px;
    align-items: center;
    flex-wrap: wrap;
    direction: ltr;
}

.b-sponsors .holder {
    padding-bottom: 150px;
}

.footer {
    background: var(--ink);
    color: #fff;
}

/* ============================================================================
   main CTA — the 2026 lime pill. Canonical, site-wide (Figma 42:2050 / 42:2063:
   h62, r800, pad 28, gap 16, label leon 400 29px #0E1819). Everything is em-based
   off the context's font-size (the homepage sections set 29px), so a smaller CTA
   keeps the same proportions instead of re-declaring the whole button.
   ============================================================================ */
.cta-but.cta-main a,
.cta-but.cta-main button,
.f-file.f-field label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.552em;               /* 16/29 */
    box-sizing: border-box;
    height: 2.138em;            /* 62/29 */
    padding: 0 0.966em 0.27em; /* 28/29; the 3px bottom pad optically centres leon */
    border: 0;
    border-radius: 800px;
    background: var(--lime);
    color: var(--ink);
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    transform-origin: center center;
    transition: transform 0.3s ease, background 0.3s ease;
}

.cta-but.cta-main a:hover,
.cta-but.cta-main button:hover,
.f-file.f-field label:hover {
    background: var(--cta-hover-grad);
    transform: scale(1.04);
}

/* .arrow-left: the seats-limit badge arrow (union glyph, Figma 42:2052) turned
   90deg clockwise off that badge's down-pointing rotate(-135) => rotate(-45),
   i.e. pointing left. In RTL flex the ::after lands leftmost, as the class says. */
.cta-but.cta-main.arrow-left a::after,
.eng .cta-but.cta-main.arrow-right a::after,
.f-file.f-field label::after {
    content: '';
    flex: 0 0 auto;
    width: 0.552em;
    height: 0.552em;
    margin-bottom: -0.3em;   /* re-centre against the anchor's bottom padding */
    background: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%22-3.2 -3.2 21.8 21.8%22%3E%3Cpath transform=%22rotate(-45 7.7 7.7)%22 d=%22M14.1572 2.5459L4.34668 2.5459L15.3955 13.5957L13.5957 15.3965L2.5459 4.34668L2.5459 14.1572L0 14.1572L0 0L14.1572 0L14.1572 2.5459Z%22 fill=%22%230E1819%22/%3E%3C/svg%3E') no-repeat center / contain;
}

/* English (LTR) uses the very same 2026 union glyph, mirrored to point right,
   instead of the legacy 2025 cta-arrow-right-black.svg triangle. Reusing the
   rule above keeps a single copy of the glyph. */
.eng .cta-but.cta-main.arrow-right a::after {
    transform: scaleX(-1);
}


.columns {
    display: flex;
    grid-column-gap: 130px;
    justify-content: space-between;
}

.footer .bl-title {
    width: auto;
    margin: 0;
    padding: 0;
    text-align: right;
}

.footer .holder {
    width: 100%;
    max-width: var(--maxsection);
    padding: 90px 0 100px;
    position: relative;
    z-index: 10;
    margin: 0 auto;
}


.footer .columns.upper .col1, .footer .columns.lower .col1 {
    flex: 0 0 42%;
}

.footer .columns.upper {
    padding-bottom: 5em;
    margin-bottom:2em;
    border-bottom:1px solid #fff;
}

.footer .columns.upper .col2 {
    flex-basis: 355px;
    font-size: 1.5em;
    line-height: 1.28em;
    padding-top: 10px;
}

.footer .columns.upper .col3 {
    flex: 0 0 820px;
}

input {
    font-size: 1.5em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

input:focus {
    outline: medium dashed var(--kblue);
    outline-offset: 3px;
}

form .invalid {
    display: none;
    flex-basis: 100%;
    color: #fff;
}

form.error .invalid {
    display: block;
}

.footer form {
    position: relative;
}

.footer form.error input {
    border-color: #F54040;
    border-width: 5px;
}

.footer form .invalid {
    color: #F54040;
    margin-top:9px;
    max-width: 350px;
    width: 100%;
    font-size: 0.95em;
}

.footer input {
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--ink);
    padding: 0.7em;
    width: calc(100% - 1.4em - 2px);
    direction: ltr;
    text-align: right;
}

.footer input::placeholder {
    color: #666;
}

.footer form .row2 {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.footer form .row2 .cta {
    position: relative;
    margin-top: 10px;
}

.footer form .row1 {
    display: flex;
    flex-wrap: wrap;
}

.footer form.sending .the-form, .footer form.sent .the-form {
    display: none;
}

.footer form .the-loader {
    display: none;
    height: 100%;
}

.footer form.sending .the-loader {
    display: block;
    font-size: 1.3em;
}

.footer form .the-confirmation {
    display: none;
}

.footer form.sent .the-confirmation {
    display: block;
}

.footer .exp {
    color: #fff;
    padding-right: 25px;
    width: 205px;
    margin-right: 25px;
    position: relative;
    font-size: 0.9583em;
    margin-top: 8px;
}

.footer .exp:after {
    content: '*';
    font-size: 1.5em;
    position: absolute;
    right: 0;
    top: 0;
    width: 25px;
    height: 33px;
}

.footer .cta-but.cta-main {
    font-size: 1.5em;
}

.footer .columns.upper .col3 .col-content, .footer .columns.upper .col3 form {
    height: 100%;
}

.loader {
    width: 50px;
    aspect-ratio: 1 / 1;
    position: relative;
    display: flex;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
}

.loader:after, .loader:before {
    content: '';
    width:calc(100% - 0.6em);
    position: absolute;
    right: 0;
    top: 0;
    background-size: 1.2em;
    padding: 0.3em;
    border-radius: 100%;
    aspect-ratio: 1 / 1;
}
.loader::after {
    background:var(--lime);
    -webkit-mask:url(../images/b-code/code-smiley.svg) no-repeat center;;
    mask:url(../images/b-code/code-smiley.svg) no-repeat center;
    animation: fullcw linear 3s infinite;
}
.loader:before {
    background:var(--ink);
}

@keyframes fullcw {
    0% {
        transform: rotate(0deg);
    }
    25% {
        transform: rotate(90deg);
    }
    75% {
        transform: rotate(270deg);
    }
    100% {
        transform: rotate(360deg);
    }

}


#footer .loader {
    padding-right: 3.2em;
    justify-content: flex-start;
    width: 100%;
    height: 80px;
}

#footer .loader:after {
    width: 80px;
    height: 80px;
}


.loader-wrap .txt {
    margin-right: 0.7em;
}

.footer form .the-confirmation {
    border: 1px solid #fff;
    padding: 20px 46px 35px;
    max-width: 650px;
}

.footer form .the-confirmation p {
    margin-top: 16px;
    font-size: 1.25em;
}

.footer .heart {
    width: 52px;
    height: 51px;
    display: inline-block;
    -webkit-mask: url(../images/b-footer/footer-heart.svg) no-repeat bottom;
    mask: url(../images/b-footer/footer-heart.svg) no-repeat bottom;
    background: var(--kblue);
    background-size: contain;
    position: relative;
    top: 7px;
    -webkit-transition: background-color 0.8s 0s ease;
    -moz-transition: background-color 0.8s 0s ease;
    -o-transition: background-color 0.8s 0s ease;
    transition: background-color 0.8s 0s ease;
}

.footer .the-confirmation h3 {
    font-size: 1.3em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
}

@keyframes around {
}

.footer .logo {
    max-width: 414px;
}

.footer .columns.lower {
    padding-top: 70px;
    position: relative;
    z-index: 15;
    grid-gap:0;
    justify-content: flex-start
}

.footer .fstars {
    z-index: 1;
}

.footer .columns.upper .col1 .col-content {
    display:flex;
    grid-gap:90px;
}
.footer .columns.upper .col1 .bl-exp {
    font-size:1.25em;
    line-height:1.6em;
    
}
.footer .columns.lower .col1 .col-content {
    max-width: 766px;
    font-size: 1em;
    line-height: 1.6em;
    display:flex;
    grid-gap:3em;
}

.footer .columns.lower .col1 p {
    margin-top: 50px;
    max-width: 535px;
}
.footer .columns.lower .col1 p:first-child {
    margin-top:0;
}   

.footer .col1 a {
    color: #fff;
    border-bottom: 3px solid var(--ink);
}

.footer .col1 a:hover {
    border-color: var(--lime);
}

.footer .col1 a.logo-link {
    border-bottom: none;
}


.footer .columns.lower .col3 {
    flex: 0 0 auto;
}

.footer .columns.lower .col1 .footer-line {
    font-size: 0.75em;
    margin-top: 38px;
}

.footer .columns.lower .col1{
    padding-left:130px;
}
.footer .columns.lower .col1 .footer-line .copyright-symbol {
    color: var(--kturq);
}

.footer .col3 {
    position: relative;
}

.footer .ulogo {
    left: 120px;
    bottom: 33px;
    z-index: 10;
    display: inline-block;
}

.footer .ulogo a {
    text-decoration: none;
    border: none;
}

.footer .ulogo img {
    max-width: 109px;
}

.footer .columns.lower .col2 {
    flex: 0 0 26%;
    padding-bottom: 10px;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.3334em;
    font-weight: Bold;
}

.footer .footer-nav {
    height: 100%;
}

.footer .footer-nav ul {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    height: 100%;
    row-gap: 32px;
    max-width: 314px;
    line-height: 1.2em;
}

.footer .footer-nav a {
    color: #fff;
    text-decoration: none;
    padding: 0;
    position: relative;
    -webkit-transition: all 0.2s 0s ease;
    -moz-transition: all 0.2s 0s ease;
    -o-transition: all 0.2s 0s ease;
    transition: all 0.2s 0s ease;
    bottom: 0;
}

.footer .footer-nav a:hover {
    padding: 0 0 10px 0;
    bottom: 7px;
}

.footer .footer-decor {
    position: absolute;
    bottom:0;
    left:0;
    width:50%;
    height:100%;
    z-index:0;
    max-width:722px;
}

.footer .footer-decor-video {
    position: absolute;
    bottom:0;
    left:0;
    width:100%;
    z-index:0;
    object-fit: contain;
}
.sched.show-info .pr-content {
    margin-bottom:1.5em;
}
.sched.no-program-content h1 {
    text-align:center;
    margin-bottom:1.3em;
}
.sched.no-program-content .page_content > div {
    max-width:50em;
    margin:0 auto;
}
.sched-head {
    width: calc(100% - 100px);
    margin: 0 auto;
    max-width: var(--maxsection);
    padding-top: 100px;
    position: relative;
}

.head-cmds {
    position: absolute;
    top: 120px;
    left: 0;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.head-cmds a.pr-sched {
    padding-left: 4.2em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    display: table-caption;
    width: 3.5em;
    line-height: 1.15em;
    background: url(../images/sched/print.svg) no-repeat left top;
    background-size: contain;
    text-decoration: none;
    color: var(--ink);
    height: 3em;
    padding-bottom: 6px;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.head-cmds a.pr-sched .mob {
    display: none;
}

.head-cmds:hover {
    margin-top: -14px;
    padding-bottom: 12px;

}

.head-cmds::after {
    content: '';
    height: 0;
    position: absolute;
    background: var(--kpink);
    width: 100%;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    display: block;
    bottom: -3px;
}

.head-cmds:hover::after {
    height: 6px;
}

/* hover underline gradient: same live animate12 canvas as the mini-header
   links (.mh-grad) — a 60px render sliced to the 6px bar via clip-path; the
   ::after pink bar stays underneath as the no-JS fallback */
.head-cmds .hc-grad {
    position: absolute;
    left: 0;
    bottom: -30px; /* bar bottom (-3px) minus the 27px clip margin */
    width: 100%;
    height: 60px;
    clip-path: inset(27px 0 27px 0);
    opacity: 0;
    pointer-events: none;
    z-index: 1; /* above the ::after bar (pseudo paints after children) */
    transition: opacity 0.15s ease 0s;
}

.head-cmds:hover .hc-grad {
    opacity: 1;
}

.program-message {
    font-size: 1.334em;
    margin-bottom: 1em;
}

.program-message strong {
    font-weight: bold;
}

.sc-row .sc-timephoto {
    display: flex;
    grid-column-gap: 0.5em;
    flex: 1;
}
.sc-row.act-no-speaker .sc-timephoto {
    align-items:flex-start;
}

.sc-row .sc-timephoto {
    flex: 0 0 223px;
}

.no-hours .sc-row .sc-timephoto {
    flex: 0 0 104px;
}

.multiple-speakers .sc-row .sc-timephoto {
    flex: 0 0 calc(290px + 1.5em);
}

.no-hours .multiple-speakers .sc-row .sc-timephoto {
    flex-basis: calc(171px + 1.5em);
}


.sched-head h1 {
    font-size: 4em;
    line-height:1.2em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
}

.sc-activities {
    display: flex;
    flex-direction: column;
}

.sc-meta {
    margin-top:3em;
    margin-bottom: 3.3em;
}

.sc-meta ul {
    display: flex;
    grid-column-gap: 2.4em;
    flex-wrap: wrap;
    line-height: 1.3em;
}

.sc-meta li {
    position: relative;
    white-space: nowrap;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.5em;
    line-height: 1.6em;
}

.sc-meta li::after {
    content: '//';
    color: var(--schedsep);
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    position: relative;
    left: -0.9em;
    top: 0;
}

.kpink .sc-meta li::after {
    color: var(--kpink);
}

.kblue .sc-meta li::after {
    color: var(--kblue);
}

.sc-meta li:last-child::after {
    display: none;
}

.sc-row.breaks {
    height: 2em;
    padding-top: 0.8em;
    padding-bottom: 0.8em;
    position: relative;
    overflow: hidden;
    margin-top: 0.5em;
    margin-bottom: 1.2em;

}

.sc-ticker.ticker {
    font-size: 1.5em;
    font-weight: normal;
    height: 100%;
    overflow: visible;
}

/* Seamless infinite loop.
   printScheduleTicker() emits two byte-identical .ticker-group children, so a
   translation of exactly one group (50% of the track) lands group 2 precisely
   where group 1 began and the wrap cannot be seen. Previously the strip was a
   single run of items with an odd repeat count, so the same 50% shift had
   nothing matching to land on and the loop visibly jumped/emptied.
   The translation DIRECTION must follow the box's anchoring: .ticker-int is
   absolutely positioned, so in RTL it is right-anchored and must travel +50%
   (as the original marquee50 did), while in LTR it is left-anchored and must
   travel -50%. Going the wrong way walks the strip out of the visible window.
   js/sc-ticker.js guarantees one group is at least as wide as the container
   (otherwise a gap would open at the far edge) and sets --sc-ticker-duration
   from the measured width so every ticker moves at the same speed.
   Scoped to .sc-ticker: the head / audience / luz / slide tickers are untouched. */
.sc-ticker.ticker .ticker-int {
    animation-name: sc-ticker-rtl;
    animation-duration: var(--sc-ticker-duration, 90s);
    display: flex;
    align-items: center;
    width: max-content;
}

.sc-ticker.ticker .ticker-group {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

/* RTL (Hebrew program): right-anchored, so travel rightwards. */
@keyframes sc-ticker-rtl {
    from { transform: translateX(0); }
    to   { transform: translateX(50%); }
}

/* LTR (English program): left-anchored, so travel leftwards. */
.program-en .sc-ticker.ticker .ticker-int {
    animation-name: sc-ticker-ltr;
}

@keyframes sc-ticker-ltr {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .sc-ticker.ticker .ticker-int {
        animation: none;
        transform: none;
    }
}

.sc-ticker.ticker span {
    margin-left: 1.5em;
}

.sc-ticker.ticker span::after {
    display: none;
}

.sc-row.sched {
    display: flex;
    width: calc(100% - 4.15em + 5px);
    padding: 1.6em 2em;
    grid-column-gap: 2.4em;
    border-top: none;
    border-left: none;
    border-right: none;
    border-bottom: 3px solid var(--ink);
    position: relative;
}

.sc-row.sched.last-before-break, .sc-row.sched.last {
    border-bottom: none;
}

.sc-box {
    border: 3px solid var(--ink);
    background: #fff;
    padding: 0;
}

.sc-row.sched .sc-time {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    font-size: 1.5em;
    color: var(--ink);
    display: flex;
    align-items: center;
    flex: 0 0 3.33em;
}

.sc-row.sched .sc-photo {
    flex: 0 0 100px;
    display: flex;
    grid-column-gap: 14px;
    align-items: center;
    position: relative;
}

.multiple-speakers .sc-row.sched .sc-photo {
    flex: 0 0 194px; /* 2 x 90px photos + 14px gap */
}


/* 2026: square speaker photos, rounded like .b-workshops .ws-spk a
   (24px on 230.75px there -> same ~10% proportion on 90px here) */
.sc-row.sched .sc-photo .sc-single,
.sc-row.sched .sc-photo .sc-multi {
    position: relative;
    line-height: 0;
    /* The ONE deliberate exception to the section grain: these photos are spec'd
       clean, and a section-wide grain layer would sit on top of them regardless
       of anything the photo does to itself. So sit above it (52 > the section
       ::after's 51) — the section grain never reaches the photo. */
    z-index: 52;
}

.sc-row.sched .sc-photo img {
    display: block;
    width: 90px;
    height: 90px;
    object-fit: cover;
    border-radius: 10px;
}

.sc-row.sched .sc-photo a {
    display: block;
    line-height: 0;
}

/* Speaker photos stay full colour and grain-free in every state — what used to
   be the hover reveal is now simply how they always look. Row hover is left to
   the title alone; touch devices already behaved this way. */
@media (hover: hover) and (pointer: fine) {
    .sc-row.sched:hover .sc-title a {
        border-bottom-color: var(--lime);
    }
}

.sc-row .ticker span.sc-tick-dec1, .sc-row .ticker span.sc-tick-dec2 {
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.sc-row.act-morning .ticker span.sc-tick-dec1 {
    width: 1.5em;
    height: 1.14em;
    background-image: url(../images/sched/sched-coffee2.svg);
}

/* was sched-sharks.png — the last of last year's underwater set. An idea bulb
   with rays reads right for the morning gathering, and is drawn in the same hand
   as the rest (bold uniform monoline, round caps, no fill, ink on transparent).
   Stroke matched by measurement: 43.6 against the set's 43-44 at a common height.
   Square art (1.007), so a square box: the old 2.4x1.72 box was shaped for the
   sharks' 1.78 aspect, and since background-size is `contain` it would letterbox
   a square icon to 1.72em and leave 0.34em of dead space each side. Height stays
   1.72em, so the row keeps the footprint it was built around. */
.sc-row.act-morning .ticker span.sc-tick-dec2 {
    width: 1.72em;
    height: 1.72em;
    background-image: url(../images/sched/sched-bulb.png);
}

.sc-row.act-break .ticker span.sc-tick-dec1 {
    width: 1.5em;
    height: 1.14em;
    background-image: url(../images/sched/sched-coffee2.svg);
}

/* was sched-jellyfish.png — last year's underwater set. Same hand as its
   neighbours (bold uniform monoline, round caps, no fill, ink on transparent),
   so it sits beside sched-coffee2/juice2 with those left unchanged.
   Stroke matched by measurement, not by eye: 43.8 against the jellyfish's 44.0
   normalised to a common height, which renders at 3.0px here — the same 3.0px
   the claps and the end row's squiggle measure. (The cup is a shade heavier at
   4.0px; it always was.)
   Square (1:1), hence a 2em box rather than the jellyfish's 2.8em: background-size
   is `contain`, so a 2.8em box would letterbox a square icon and open a gap in
   the ticker. Kept as PNG like the set it joins — the art is a drawn hand, and
   tracing it to SVG would lose exactly what makes it match. */
.sc-row.act-break .ticker span.sc-tick-dec2 {
    width: 2em;
    height: 2em;
    background-image: url(../images/sched/sched-brain.png);
}

.sc-row.act-break .ticker span.sc-tick-dec3 {
    width: 0.83em;
    height: 1.44em;
    bottom: 0.1em;
    background-image: url(../images/sched/sched-juice2.svg);
    background-size: contain;
    background-repeat: no-repeat;
}

.sc-row.act-lunch {
    font-size: 2.88em;
    font-weight: Bold;
    margin-top: 0.4em;
    margin-bottom: 0.4em;
}

.sc-row.act-lunch .sc-ticker.ticker .ticker-int {
    animation-duration: 100s;
}

.sc-row.act-lunch .sc-ticker.ticker {
    font-weight: Bold;
}

.sc-row.act-lunch .ticker span.sc-tick-dec1 {
    width: 1.11em;
    height: 1.16em;
    background-image: url(../images/sched/sched-lunch-food2.svg);
}

.sc-row.act-lunch .ticker span.sc-tick-dec2 {
    width: 1.21em;
    height: 1.144em;
    background-image: url(../images/sched/sched-lunch-smiles2.svg);
}

/* was sched-submarine.png — the last of the underwater set that renders. Now the
   animated squiggle: the hero's line-art hand (open cubic, round caps, ink) with
   a dash-offset flow, so the mark keeps drawing itself as the ticker scrolls.
   The in-SVG CSS animation DOES run through background-image — verified in
   Chrome, the span's pixels change frame to frame with the marquee frozen — so
   the empty-span contract holds and no markup or PHP changes. Worth knowing that
   is not a given: an SVG used as an image gets no script, and declarative
   animation support has historically been uneven.
   2.8em not 2.7em: the art is 84x60 = 1.4, and 2.7/2 = 1.35 would letterbox it.
   vector-effect:non-scaling-stroke holds the nib steady however the em resolves;
   it renders at 3.0px here, measured equal to the claps beside it. */
.sc-row.act-end .ticker span.sc-tick-dec1 {
    width: 2.8em;
    height: 2em;
    background-image: url(../images/sched/sched26-fold.svg);
}

.sc-row.act-end .ticker span.sc-tick-dec2 {
    width: 1.66em;
    height: 1.67em;
    background-image: url(../images/sched/sched-end-claps2.svg);
}

.sc-row a, .sc-row .sc-title {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    text-decoration: none;
    font-weight: normal;
    color: var(--ink);
}

.sc-row .sc-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.sc-row .sc-title {
    font-size: 1.5em;
    line-height: 1.2em;
    margin-bottom: 0.8em;
}


/* Only the title carries the underline: the whole row leads to the talk, so the
   speaker name is not a destination of its own. */
.sc-row .sc-title a {
    border-bottom: 2px solid transparent;
}

.sc-row .sc-title a:hover {
    border-bottom-color: var(--lime);
}

/* The title link is stretched over the whole row, so a click anywhere in it —
   speaker name and photo included — opens the talk. */
.sc-row.sched .sc-title a::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}

.sc-row .sc-role-org .speaker-name {
    margin-left: 31px;
    position: relative;
}

.sc-row .sc-role-org .speaker-name::after {
    content: '/';
    position: relative;
    color: var(--schedsep);
    top: 0;
    left: -0.6em;
}

.sc-row .sc-role-org li {
    margin-bottom: 4px;
    line-height: 1.3em;
}

.sc-row.eng .sc-info {
    direction: ltr;
    text-align: left;
}

.sc-row.eng .speaker-name {
    margin-left: 0;
    margin-right: 31px;
}

.sc-row.eng .sc-role-org .speaker-name::after {
    left: auto;
    right: -22px;
}

.sched .holder .cta-regbut {
    font-size:0.8em;
    margin-top:4em;
    position: relative;
    z-index:15;
}

.entity-nav {
    z-index: 0;
    width: 100%;
}

.entity-header {
    width: 90%;
    margin: 0 auto;
}

.entity-header.eng {
    direction: ltr;
}

.entity-header h1 {
    font-weight: bold;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 4em;
    line-height:1.2em;
    text-align: center;
}

.entity-nav {
    position: absolute;
    width: 100%;
    display: flex;
    justify-content: space-between;
    right: 50%;
    transform: translateX(50%);
}

.gpage .page_content.page {
    background:#fff;
    max-width: 50em;
    margin: 0 auto;
}

.gpage .page_content.page::after {
    content: '';
    clear: both;
}

.b-team {
    margin-left: -2em;
}

.gpage.eng {
    direction: ltr;
}

.gpage.eng .page > .entry-content {
    padding-left: 2em;
    padding-right: 8em;
    font-family: 'leonprod', arial, Helvetica, sans-serif;
}

/* 2026: the team block borrows the .speakers-wrap card layout from the workshop
   and activity pages — square photo with rounded corners, flat name and role
   ranged under it — but keeps its photos in plain colour (see below). The 2025
   treatment (circle in an ink ring, rotated peach label floating over the
   photo) is gone. */
.team-wrap {
    display: flex;
    flex-wrap: wrap;
    grid-column-gap: 1.33em;
    grid-row-gap: 2.5em;
    margin-bottom: 6em;
    justify-content: flex-start;
}

.team-wrap .entity-wrap {
    position: relative;
    flex: 0 0 clamp(120px, 20vw, 158px);
}

/* square via aspect-ratio so the photo fills whatever the clamp above resolves
   to, exactly as .speakers-wrap sizes its column. */
.team-wrap .team-photo {
    display: block;
    line-height: 0;
}

.team-wrap img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 16px;
    padding: 0;
}

/* deliberately NOT the .speakers-wrap photo treatment: no grayscale, no grain
   layer, no hover reveal. Team members aren't linked here, so there is nothing
   for a hover state to promise — the photos just sit in colour. */

.team-wrap .team-desc {
    position: static;
    width: auto;
    padding: 0.8em 0 0;
    transform: none;
    background: none;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    line-height: 1.2;
    font-size: 1em;
    /* always ranged right, unlike the speaker card which mirrors for English:
       the team grid stays on one RTL grain so the column of names reads as a
       single edge regardless of each member's language. */
    text-align: right;
}

.team-wrap .team-name {
    font-size: 1.19em;
    font-weight: 400;
    color: var(--ink);
}

.team-wrap .team-title {
    margin-top: 0.35em;
    font-size: 0.81em;
    font-weight: 400;
    color: var(--ink);
}

/* English names/roles read ltr but stay ranged to the card's right edge — the
   direction flip alone would drag them left. */
.team-wrap .team-name.eng,
.team-wrap .team-title.eng {
    direction: ltr;
    text-align: right;
}

.page .entry-content, .single .entry-content, .archive .entry-content {
    padding: 50px;
}

/* body-copy links match the .speaker-info underline: flat 2px ink rule, lime on
   hover (both inherited from the base .entry-content a). Width-only override on
   purpose — the base 0.16em scales with font-size, and overriding the shorthand
   here would out-specify the `border-bottom:none` opt-outs (a.clean,
   .activity .speaker-info a) and underline them. style:none survives a width. */
.page .entry-content a,
.single .entry-content a,
.archive .entry-content a {
    border-bottom-width: 2px;
}

.page .entry-content {
    padding: 4em 5em;
    max-width: 1240px;
    font-size: 1em;
    line-height: 1.6em;
    background: #fff;
    border:3px solid var(--ink);
    margin: 0 auto;

}

.gpage .page > .entry-content {
    min-height: 40vh;
    max-width: none;
}

.page .page-header, .error404 .page-header, .page-template-page-error .entry-content{
    max-width: 50em;
}

.page .assign .entry-content, .page .assign-list .entry-content {
    min-height: 0;
}

.entry-content figure {
    margin-top: 1.5em;
}

.entry-content .wp-block-separator {
    margin: 3em auto;
    width: 35%;
}

.activity article.ev_activity .entry-content {
    border:3px solid var(--ink);
}

.activity .talk-info {
    display: flex;
    justify-content: center;
    margin: 2em 0 1.6em;
}

.activity .talk-info ul {
    display: flex;
    font-size: 1.5em;
    font-weight: bold;
    grid-column-gap: 1.6em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    direction: ltr;
}

.activity .talk-info li {
    position: relative;
    color: var(--ink);
}

.talk-info.hidehours {
    opacity: 0;
}

.talk-info li:first-child::after {
    content: '/';
    position: relative;
    top: 0;
    right: -0.8em;
    font-weight: bold;
    color: var(--schedsep);
}

.talk-info.hidehours li:first-child::after {
    display: none;
}

.eng .talk-info li:first-child::after {
    left: auto;
    right: -1.05em;
}

.activity .page_content {
    width: calc(100% - 100px - 262px - 262px - 40px);
    margin: 0 auto;
    position: relative;
    z-index: 10;
}

.speakers-wrap .entity-content {
    padding: 50px 50px 50px 110px;
    overflow: hidden;
    border:3px solid var(--ink);
    background:#fff;
    max-width:1050px;
    margin:0 auto;

}

.activity .speaker-info {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    margin-bottom: 1.22em;
}

.activity .speaker-info ul {
    display: flex;
    grid-column-gap: 1.75em;
}

.activity .eng .speaker-info ul {
    direction: ltr;
}

.single .alt.activity {
    padding-top:5em;
}
.activity .speaker-info a {
    text-decoration: none;
    color: var(--ink);
    border-bottom: none;
}
.activity .speaker-info a::after {
    content: '';
    left: 0;
    width: 100%;
    bottom: -2px;
    height: 2px;
    background-color: var(--ink);
    position: absolute;
    -webkit-transition: all 0.15s ease 0s;
    -moz-transition: all 0.15s ease 0s;
    -o-transition: all 0.15s ease 0s;
    -ms-transition: all 0.15s ease 0s;
    transition: all 0.15s ease 0s;
}

.activity .speaker-info a:hover::after {
    background-color: var(--lime);
}

.activity .speaker-info li {
    position: relative;
}

.activity .speaker-info li::after {
    content: '✱';
    position: absolute;
    left: -1.18em;
    top: 0;
    color: var(--kblue);
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: Bold;
}

.activity .speaker-info li:last-child::after {
    display: none;
}

.entity-content {
    font-size: 1;
    line-height: 1.6em;
}

.entry-content p {
    margin-bottom: 0.75em;
}

.entry-content h2 {
    font-size: 1.4em;
    font-weight: 900;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    margin-top: 1em;
    margin-bottom: 0.7em;
}

.entry-content h3 {
    font-size: 1.1em;
    font-weight: 600;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    margin-bottom: 0.4em;
    margin-top: 1em;
}

.entry-content h3 a.clean:hover, .entry-content h2 a.clean:hover {
    color: var(--kblue);
    transition: none;
}

.entry-content ul, .sidebar-box ul {
    margin-right: 1em;
    margin-bottom: 2em;
}

.entry-content li, .sidebar-box li {
    text-indent: 0;
    padding-right: 1em;
    list-style: disc;
    margin-bottom: 0.6em;
    line-height: 1.6em;
}

.sidebar-box li {
    padding-right: 0.5em;
}

.entry-content li {
    margin-right: 0.8em;
}

.entry-content blockquote {
    border: none;
    padding: 1.5em;
    max-width: 75%;
    margin: 2em 0;
    background:var(--kpeach);
}

.entry-content strong, .sidebar-box strong {
    font-weight: bold;
}

.activity .entity-content {
    min-height: 12em;
}

.activity .cta-but.cta-main a{
    margin-left:0;
}
.activity .entity-content p {
    margin-bottom: 1em;
}

.activity .entity-nav.holder {
    margin-top: 540px;
}

.entity-nav-dir {
    cursor: pointer;
    position: relative;
    bottom: 0;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    align-self: flex-start;
    display: flex;
    flex-direction: column;
    max-width:10em;
}

.entity-nav-dir .target {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    font-size: 1.83em;
    display: block;
    width: 4.3em;
    margin-bottom: 0.1em;
    -webkit-transition: all 0.3s 0s ease-in-out;
    -moz-transition: all 0.3s 0s ease-in-out;
    -o-transition: all 0.3s 0s ease-in-out;
    transition: all 0.3s 0s ease-in-out;
    background-position: left 0;
}

.entity-nav-dir.prev .target {
    padding-right: 2.2em;
    padding-top: 0.15em;
    background: url(../images/entity/entity-right-arrow.svg) no-repeat right 0.15em;
    background-size: 1.9em 1.9em;
    min-height: 2em;
    min-width: 2em;
}

.entity-nav-dir.next .target {
    padding-left: 2.2em;
    padding-top: 0.15em;
    background: url(../images/entity/entity-left-arrow.svg) no-repeat left 0.15em;
    background-size: 1.9em 1.9em;
    min-height: 2em;
    min-width: 2em;
}
.entity-nav-dir.prev .entity-name {
    padding-right:4.026em;
}

.entity-nav-dir .entity-name.eng {
    direction: ltr;
    text-align: left;
}

.entity-nav-dir a {
    color:var(--ink);
}

.entity-nav-dir:hover {
    padding-bottom: 14px;
    bottom: 14px;
}

.speaker .speakers-wrap {
    margin-top: 3em;
}

.single .alt.speaker {
    margin-top:100px;
    padding-bottom: 0;
}

section.speaker .speaker-photo .entity-name {
    display: none;
}

.speaker .speaker-photo {
    display: flex;
    flex-direction: column;
    height: 100%;
}


.nav-links {
    margin: 1.2em auto 2em;
    width: calc(100% - 626px - 10px - 100px);
    text-align: center;
    font-size: 1.334em;
    line-height: 1.2em;
}

.nav-links ul {
    display: flex;
    flex-direction: column;
    grid-row-gap: 1em;
}

.activity .page_content.ev_speaker {
    width: calc(100% - 100px);
    max-width: var(--maxsection);
}

article.eng .entry-content {
    direction: ltr;
    text-align: left;
}

article.eng .entry-content .cta {
    direction: rtl;
    text-align: right;
}

.speakers-wrap .splitbox {
    justify-content: space-between;
    grid-column-gap: 50px;
}

.speakers-wrap .split-right {
    flex: 0 0 calc(7.14em + 44px);
    padding-left: 60px;
    padding-right: 60px;
}

.speakers-wrap .split-left {
    flex: 1 1 70%;
}

/* 2026: square, rounded speaker photos matching .b-workshops .ws-spk. Renders on
   the activity, workshop and speaker pages — all three put .speakers-wrap inside
   a .single .alt, so the z-index below holds for every one. */
.speakers-wrap .speaker-photo a.spk-photo-link {
    display: block;
    position: relative;
    width: 100%;
    line-height: 0;
    /* The ONE deliberate exception to the section grain, as .sc-photo .sc-single
       and .ws-spk a: the spec is "B&W + noise at rest, colour + NO noise on
       hover", impossible under a section-wide layer — clearing the photo's own
       grain would still leave the section's on top. So sit above it (52 > the
       .single .alt ::after's 51) and own the grain outright, which lets the hover
       clear it. Not a double: the section grain never reaches the photo. */
    z-index: 52;
}

/* width:100% + aspect-ratio squares the photo to whatever the column is at each
   breakpoint (~158px desktop, ~141px <=1024), so it fits exactly instead of
   overflowing the legacy `7.14em + 44px` basis the way the old 8em+16px did. */
.speakers-wrap .speaker-photo a.spk-photo-link img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 16px; /* ~10% of the column, as .ws-spk's 24 on 230.75 */
    padding: 0;
}

/* hover-capable (desktop): B&W + film grain at rest, colour with no grain once
   the pointer is over the card; touch devices skip this and stay colour, as
   .sc-photo does. Hovering the card (not just the photo) drives it, so the name
   and bio light the photo too — the whole card is one target for the speaker. */
@media (hover: hover) and (pointer: fine) {
    .speakers-wrap .speaker-photo a.spk-photo-link img {
        filter: grayscale(1);
        transition: filter 0.3s ease;
    }

    .speakers-wrap .speaker-photo a.spk-photo-link::after {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: 16px;
        background-image: var(--figma-noise);
        opacity: var(--noise-opacity);
        pointer-events: none;
        transition: opacity 0.3s ease;
    }

    .speakers-wrap .speaker-wrap:hover .speaker-photo a.spk-photo-link img {
        filter: none;
    }

    .speakers-wrap .speaker-wrap:hover .speaker-photo a.spk-photo-link::after {
        opacity: 0;
    }
}
/* flex-start, not "right": the cross-axis start follows the card's direction, so
   the Hebrew card aligns to the photo's right edge and the .ev_speaker.eng card
   (whose .splitbox is ltr) mirrors to its left edge without a second rule. */
.speakers-wrap .speaker-desc-header {
    margin-top: -0.5em;
    padding: 1em 0 0.2em;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/* matches .b-workshops .snames .entity-name a exactly: flat, no tilt, no pill */
.speakers-wrap .entity-name a {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 29px;
    line-height: 1.2;
    font-weight: 400;
    background: none;
    color: var(--ink);
    text-decoration: none;
    display: inline;
    padding: 0;
    transform: none;
}

.speakers-wrap .entity-wrap.spkid-even .speaker-photo a.spk-photo-link img:hover {
    border-color: var(--kpink);
}

.speakers-wrap .entity-name a.eng {
    direction: ltr;
    text-align: left;
}

.speaker-list .spk.item .spk-name {
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    transform-origin: center;
}

/* flattened with the name above it: no tilt, no pill. The workshop card has no
   role element, so there is no reference for it — it just reads as plain text. */
.speakers-wrap .ev_speaker .spk-role {
    transform: none;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 0.81em;
    font-weight: 400;
    background: none;
    padding: 0;
    line-height: 1.2;
    text-align: right;
    position: relative;
    display: inline-block;
    max-width: 10em;
    /* side margins must stay 0: an auto margin beats align-items on the cross
       axis, so `auto` here would re-centre the role under a flex-start header. */
    margin: 0.5em 0 0 0;
    color: var(--ink);
}

.speakers-wrap .ev_speaker.eng .splitbox {
    direction: ltr;
}

.speaker .ev_speaker .spk-role {
    margin-top: 0.4em;
}

.speakers-wrap .ev_speaker.eng .entity-content {
    padding: 50px 110px 50px 50px
}

/* the caption stays ltr so the English reads correctly, but its lines are ragged
   to the card's start edge: text-align: right inside an ltr box is what keeps a
   wrapped role flush under the name. .ev_speaker.eng flips it back below. */
.speakers-wrap .spk-role.eng {
    align-self: flex-start;
    direction: ltr;
    text-align: right;
    max-width: calc(90% - 2em);
}

.speakers-wrap .entry-content {
    overflow: hidden;
    border: none;
    padding: 0;
    background: none;
}

.speakers-wrap .ev_speaker.eng .speaker-desc-header {
    display: flex;
    flex-direction: column;
}

/* an English speaker's card is ltr end to end, so its start edge is the left one
   and the role ranges left again. */
.speakers-wrap .ev_speaker.eng .spk-role.eng {
    align-self: flex-start;
    text-align: left;
}

/* the eng role flattens with the rest — its tilt and pill padding are gone, and
   .spk-role.eng still carries the ltr direction it actually needs. */
.speakers-wrap .ev_speaker.eng .spk-role {
    transform: none;
}

.speaker-social {
    margin-top: 1em;
    width: 100%;
}

.speaker-social ul {
    display: flex;
    width: 100%;
    justify-content: center;
    grid-column-gap: 12px;
}

/* inside the card the icons share the name/role edge instead of centring under
   the photo. Scoped to .speakers-wrap so any other .speaker-social stays put. */
.speakers-wrap .speaker-social ul {
    justify-content: flex-start;
}

.entry-content .speaker-social ul, .entry-content .speaker-info ul {
    margin-right: 0;
}

.speaker-social li a {
    display: inline-block;
    width: 1.69em;
    height: 1.69em;
    background: url(../images/social/social-facebook.svg) no-repeat center center;
    background-size: contain;
    line-height: 0;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    position: relative;
    bottom: 0;
}

.entry-content .speaker-social li, .entry-content .speaker-info li {
    padding-right: 0;
    list-style: none;
    margin-bottom: 0;
    line-height: 1em;
}

.entry-content .speaker-info li {
    margin-right:0;
}
.speaker-social li a:hover {
    bottom: 20px;
    padding-bottom: 20px;
    margin-bottom: -20px;
}

.speaker-social li.linkedin a {
    background-image: url(../images/social/social-linkedin.svg);
}

.speaker-social li.website a {
    background-image: url(../images/social/social-website.svg);
}

.speaker-social li.twitter a {
    background-image: url(../images/social/social-twitter.svg);
}

.activity .speaker-wrap {
    margin-top: 4.375em;
}

.activity .speaker-wrap:first-child {
    margin-top: 0;
}

.speaker article.ev_speaker {
    margin-top: 4em;
}

.speaker .entity-header {
    width: calc(100% - 630px);
    margin: 0 auto;
}

.speaker .ev_speaker .speaker-photo a.spk-photo-link:hover img {
    border-color: var(--ink);
}

.speaker .nav-wrap {
    display: flex;
    justify-content: space-between;
    grid-column-gap: 2em;
    margin: 1.8em auto 0;
    width: calc(100% - 100px);
    max-width: var(--maxsection);
}

.speaker .nav-wrap .nav-links {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    width: auto;
    text-align: left;
    align-items: center;
    margin: 0;
    min-width: 0;
}

.speaker .nav-wrap .nav-links a {
    white-space: nowrap;
    font-family: 'leonprod', arial, Helvetica, sans-serif;
    font-weight: 400;
    overflow: visible;
    position: relative;
}

.speaker .speaker-activities-events {
    flex: 0 1 35em;
}

.speaker .speaker-activities-events-int {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    padding: 1.5em 2em;
    display: flex;
    flex-direction: column;
    grid-row-gap: 2em;
    overflow: hidden;
    border:3px solid var(--ink);

}

.speaker .speaker-evts {
    display: grid;
    grid-template-columns: 1fr 4fr;
    grid-row-gap: 1em;
    grid-column-gap: 2em;
}

.speaker .speaker-evts .lst-label {
    grid-column-start: 1;
    font-size: 0.95em;
    grid-column-end: 3;
}

.speaker .speaker-evts .evtime, .speaker .speaker-evts .evtitle {
    font-weight: bold;
    font-size: 1.1em;
}

.speaker .speaker-activities.speaker-evts.hidehours  {
    display:flex;
    flex-direction:column;
}
.speaker .speaker-evts.hidehours .evtime.act-time {
display:none;
}

.speaker-evts .evtitle.eng {
    direction: ltr;
    text-align: left;
}

.speaker .speaker-evts .evtime ul {
    display: flex;
    grid-column-gap: 2em;
    direction: ltr;
}

.speaker .speaker-evts li {
    position: relative;
}

.speaker .speaker-evts time li {
    color: var(--ink);
}

.speaker .speaker-evts li:first-child::after {
    content: '/';
    color: var(--schedsep);
    position: relative;
    top: 0;
    right: -1em;
}

.speaker .speaker-evts a {
    border-bottom: none;
}
.speaker .speaker-evts a:hover {
    color:var(--kpink);
}
.activity .entity-nav-dir a {
    display: flex;
    flex-direction: column;
    color:var(--ink);
}

.activity .entity-nav-dir .entity-name {
    width: 100%;
}

.activity .nav-links li a, .speaker .nav-wrap .nav-links a {
    white-space: nowrap;
    font-family: 'leonprod', Arial, 'Helvetica Neue', Helvetica, sans-serif;
    font-weight: normal;
    overflow: visible;
    position: relative;
    display: inline-block;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    bottom: 0;
    border-bottom: none;
}

.activity .nav-links li a::after, .speaker .nav-wrap .nav-links a::after {
    content: '';
    height: 3px;
    background: var(--lime);
    position: absolute;
    width: 100%;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    display: block;
    bottom: -3px;
}

.activity .nav-links li a:hover::after, .speaker .nav-wrap .nav-links a:hover::after {
    background:var(--kpink);
}


.activity .nav-links li a:hover, .speaker .nav-wrap .nav-links a:hover {
    color: var(--ink);
}
.activity .nav-links li a:hover::after {
    background: var(--kpink);
}
.ev_speaker .spk-role .english_content_font {
    direction: ltr;
    text-align: left;
}

.page .page-header {
    max-width: 1240px;
}

.page-header {
    margin: 0.05em auto 4em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    padding-top:3em;
    font-weight: Bold;
    line-height: 1.16em;
    width: 85%;
}

.page-header h1 {
    font-size: 4em;
    text-align: center;
    line-height:1.2em;
}

.page-header h1 a {
    color: var(--ink);
}

.page-header h1 a:hover {
    color: var(--kpink);
}

.page-header h2 {
    font-size:1.5em;
    line-height:1.6em;
    font-weight:normal;
    text-align: center;
}

.speaker-list .spk-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-column-gap: 46px;
    grid-row-gap: 46px;
}

.speaker-list .spk-grid .speaker-wrap {
    width: 100%;
    position: relative;
    display: flex;
    justify-content: center;
    max-width: 350px;
    margin: 0 auto;
    font-size: 0.9em;
}

.speaker-list .spk-grid .speaker-wrap:hover {
    filter: none;
}

.speaker-list .item.spk {
    max-height: calc(100vh - 150px);
}

.speaker-list .spk-grid .spk, .ws-speakers .spk {
    border: 3px solid var(--ink);
    width: calc(100% - 10px);
    height: calc(100% - 10px);
    position: relative;
    overflow: hidden;
}

.speaker-list .spk-grid .spk-photo {
    filter: grayscale(1);
}

.speaker-list .spk-grid .spk:hover .spk-photo, .ws-speakers .spk:hover .spk-photo {
    filter: none;
}

.speaker-list .spk-grid .spk {
    border: none;
    width: 100%;
    height: 0;
    padding-top: 230%;
}

.speaker-list .spk-grid .spk-photo {
    position: absolute;
    top: 0;
    left: 0;
}

.speaker-list .spk-grid .spk-photo, .speaker-list .spk-grid .spk-photo a, .ws-speakers .spk-photo, .ws-speakers .spk-photo a {
    width: 100%;
    height: 100%;
}

.speaker-list .spk-grid .spk-photo a, .ws-speakers .spk-photo a {
    display: block;
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: top center;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.speaker-list .spk-grid .speaker-wrap:hover .spk-photo a, .ws-speakers .speaker-wrap:hover .spk-photo a {
    background-size: 100%;
}

.speaker-list .spk-grid .speaker-wrap:hover, .ws-speakers .speaker-wrap:hover {
    cursor: pointer;
}

.speaker-list .spk.item .spk-name, .ws-speakers .spk.item .spk-name {
    right: -15px;
    opacity: 1;
}

.ws-speakers .spk.item .spk-name {
    max-width: 70%;
}

.speaker-list .spk.item .spk-name.eng, .ws-speakers .spk.item .spk-name.eng {
    right: auto;
    left: -15px;
    align-self: flex-end;
}

.home .spk.item.anim:hover .spk-name {
    -webkit-transition: all 0.3s 0.05s ease;
    -moz-transition: all 0.3s 0.05s ease;
    -o-transition: all 0.3s 0.05s ease;
    transition: all 0.3s 0.05s ease;
}

.speaker-list .spk.item .spk-role {
    right: -15px;
    opacity: 1;
}

.ws-speakers .spk.item .spk-role {
    display: none;
}

.speaker-list .spk.item .spk-role.eng {
    align-self: flex-end;
    text-align: left;
    direction: ltr;
    right: auto;
    padding: 4px 20px 4px 28px;
    left: 1000px;
}

.speaker-list .spk.item .spk-role.eng {
    left: -15px;
}

.speaker-list .spk.item .spk-role.eng.up {
    transform: rotate(-4deg);
}

.speaker-list {
    background:var(--ink);
    padding-top:100px;
}

/* Video overlay styles for speaker archive page */
.speaker-list .speaker-wrap .spk-video-overlay {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 100%;
    height: auto;
    opacity: 0;
    pointer-events: none;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    transform: translateX(-50%);
    transition: opacity 0.3s ease;
    top: 0;
    height: 100%;
}

.speaker-list .speaker-wrap {
    position: relative;
}
.speaker-list .page-header h1 {
    color:#fff;

}
.speaker-list .speaker-wrap:hover .spk-video-overlay {
    opacity: 1;
}

.speaker-list .speaker-wrap .spk-video-overlay .video-canvas {
    width: 173%;
    height: auto;
    display: block;
    position: relative;
    left: 0;
    background: transparent;
    opacity: 1;
    object-fit: contain;
    object-position: bottom;
}

.speaker-list .speaker-wrap .spk-video-overlay .video-source {
    display: none;
}

/* Hide video overlay on mobile devices */
@media only screen and (max-width: 768px) {
    .speaker-list .speaker-wrap .spk-video-overlay {
        display: none;
    }
}

.single .alt.workshop {
    padding-top: 0;
    background: var(--ink);
    color: #fff;
    padding-bottom:5em;
}

.sc-meta .sc-dt-int {
    direction: ltr;
    display: inline-block;
}

.workshop .entity-header h1 {
    text-align: right;
    font-size: 2.92em;
    max-width: 1040px;
    line-height:1.2em;
}

.workshop .entity-header {
    padding: 110px 0 110px 50px;
    width: calc(100% - 50px);
}

.single .alt.workshop .entry-content h3 {
    font-weight:Bold;
}

.workshop .decor {
    position: relative;
}

.workshop .spk.item {
    background: var(--ink);
}

.workshop .ws-head-holder .ws-speakers {
    display: flex;
    width: 100%;
    max-height: 100%;
    align-items: flex-start;
    justify-content: flex-end;
    /*min-height: 576px;*/
}

.workshop .ws-head-holder .speaker-wrap {
    position: relative;
    width: 315px;
    aspect-ratio: 1 / 2.3;
}

.workshop .ws-head-holder .manual .speaker-wrap {
    width: 100%;
}

.workshop.multiple-speakers .ws-head-holder .manual .speaker-wrap {
    width: 50%;
}

.workshop .ws-head-holder .mobile-speaker-wrap {
    display: none;
}

.workshop .manual .split-left {
    display: flex;
    justify-content: flex-end;
}

.workshop .ws-head-holder .split-right {
    flex: 1 1 67%;
}

.workshop .ws-head-holder .split-left {
    flex: 1 1 33%;
}

.workshop .ev_event.page_content .entry-content {
    border: none;
    background: var(--ink);
    padding: 0;
}

.workshop .sc-meta {
    margin-bottom: 0;
}

.workshop .ws-head-holder {
    width: calc(100% - 100px);
    max-width: var(--maxsection);
    margin: 0 auto;
}

.workshop .ws-columns {
    display: flex;
    grid-column-gap: 4.875em;
    margin-top: 2.5em;
    justify-content: space-between;
}


.workshop .ws-columns .column-right {
    flex: 1 1 70%;
    font-size: 1em;
    line-height: 1.8em;
    max-width:1050px;
}

.workshop .ws-columns .column-left {
    flex: 1 1 30%;
    max-width: 390px;
}

.workshop .ws-tkt-info {
    position: relative;
    left: auto;
    right: auto;
}

/* placement: an inline badge in the header, not an overlay — the 2026 pill
   recipe itself is shared with the workshops cards (see .b-workshops chip).
   The offsets and the tilt below are cancellations, not tuning: responsive.css
   still aims the legacy sticker's rotate/left/top at the unscoped
   .ws-tkt-info.seats-limit, which leaks onto this in-flow chip. */
.workshop .ws-tkt-info.seats-limit {
    top: auto;
    left: auto;
    right: auto;
    transform: none;
}

.workshop .entity-header .ws-tkt-info {
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.workshop .entity-header .ws-rem-ticket-info {
    margin-top: 2.5em;
    display: inline-block;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    position: relative;
    bottom: 0;
}

.workshop .entity-header .ws-rem-ticket-info.below-limit {
    cursor: pointer;
}

.workshop .entity-header .ws-rem-ticket-info.below-limit:hover {
    bottom: 10px;
    padding-bottom: 10px;
}

/* the workshop header is a dark page and the block sits inline in it, so there
   is no card to wash out: the pill + lime button carry their own fills */
.workshop .ws-tkt-info.soldout-info {
    justify-content: flex-start;
    background: none;
}

/* ...and on that ink page the base's ink pill would be ink-on-ink (invisible),
   so mirror the polarity: the pill stays the high-contrast one, lime side up */
.workshop .soldout-ticket {
    background: var(--lime);
    color: var(--ink);
}

.workshop .ws-tkt-info.soldout-info .soldout-info-int {
    padding: 0;
}

.single-ev_event .pauser.min a, .single-ev_event .pauser a {
    background: rgba(255, 255, 255, 0.2);
}

.workshop .spk-info-wrap {
    margin-top: 3.8em;
}

.workshop .spk-info-wrap .page_content .entry-content {
    background: #fff;
    color: var(--ink);
}

.workshop .speakers-wrap .page_content .entry-content {
    /*background: #fff;*/
    color: var(--ink);
}

.workshop .ev_event .edit-post-link {
    color: #fff;
    margin-top: 40px;
    margin-bottom: 40px;
    display: inline-block;
}

.workshop .speakers-wrap .speaker-wrap {
    padding-bottom: 5em;
}

.workshop .speakers-wrap .speaker-wrap.spk-last {
    padding-bottom: 0;
}

.sidebar {
    border: 3px solid #fff;
    padding: 40px 30px;
    width: calc(100% - 60px - 6px);
    position: relative;
}
.workshop .sidebar {
    margin-top:0;
}

.sidebar .textwidget {
    line-height: 1.2em;
}

.sidebar h3, .sidebar h2 {
    font-size: 1.15em;
    margin: 0.7em 0 0.33em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: 700;
}

.sidebar p {
    margin-bottom: 0.6em;
}

.sidebar .box-content {
    font-size: 1.1em;
    line-height: 1.2em;
}

.sidebar-box {
    margin-bottom: 0.5em;
}

.sidebar-box p {
    line-height: 1.6em;
}


.sidebar-box:last-child {
    margin-bottom: 0;
}

.workshop .cta.cta-regbut {
    margin-bottom: 4em;
}

.workshop .speakers-wrap {
    margin-top: 5em;
}

.cta-regbut .cta-but-row {
    display: inline-block;
    max-width:100%;
}

.soldout .ws-cta-holder {
    margin-top: 3em;
}

#header .h-promo {
    position: relative;
    height: calc(100% - 56px);
    color: var(--kpeach);
}

#header .h-promo.dt {
    padding-left: 15px;
    padding-right: 15px;
}

.reg-wrap .page-header h2 {
    margin-top:0;
}
.reg-wrap .page-header .disc-info-wrap {
    display:flex;
    justify-content: center;
}
.reg-wrap .h-promo {
    color:var(--ink);
    position:relative;
    font-weight:normal;
    padding-bottom:0.3em;
    padding-top:0.3em;
    display:flex;
    justify-content: center;
    /* same surface as the homepage hero: bg-base.svg = radial washes only (no
       noise, no squiggles — the grain comes from the ::before below);
       y-offset samples the colorful band around the radial centre, not the white top */
    background:url(../images/hero26/bg-base.svg) center 30% / cover;
}

/* No grain declared for the promo bar: .reg-wrap IS a `.page .alt`, and that
   section's ::after grain runs at z-index 51 — above this bar's z-index:50 — so
   the bar is already grained by it. A layer here too would be the same noise
   twice on one element (0.24 against the page's 0.12). */
.reg-wrap .h-promo .time-box {
    justify-content: center;
    fleX:0;
}
.reg-wrap .h-promo.tkt .num, .reg-wrap .h-promo.tkt .per {
    font-size:1.8em;
}
.reg-wrap .h-promo .promise {
    font-size:1.3em;
}

.no-head-ticker .head-ticker {
    display: none;
}

 #main {
    margin-top: 0;
}

.no-head-ticker .mini-header {
    border-bottom: none;
}

.ticketform input#pg, .ticketform input#ccinv {
    width: 0;
    height: 0;
    opacity: 0;
    overflow: hidden;
}

.ptable-row {
    display: flex;
    grid-column-gap: 1.25em;
    padding: 1.75em 3em;
    position: relative;
}

.pcell {
    flex: 0 0 0;
}

.c-when {
    flex-basis: 16%;
    width: 16%;
}

.c-what {
    flex-basis: 47.5%;
    width: 47.5%;
}

.c-price {
    flex-basis: 15%;
    width: 15%
}

.c-tickets {
    flex-basis: 15.5%;
    width: 15.5%;
}

.vat-note {
    display: block;
    font-size: .5em;
    direction: rtl;
    font-weight: 400;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.tf-p1 {
    display: flex;
    grid-column-gap: 2.71em;
}

.tf-p1 .right-area {
    flex: 1 1 100%;
}

.tf-p1 .left-area {
    flex: 0 0 22em;
}

.reg-wrap .sidebar {
    border: 3px solid var(--ink);
}

.ptable-sums .vat-row .c-price-int {
    font-weight: normal;
}

.ptable-row-sum.vat-row .c-tickets {
    display: none;
}

.ptable-sums .ptable-row.vat-row {
    border-top: none;
    padding-top: 0;
}

.ptable-head .ptable-row .pcell-int {
    font-size: 1.2em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.ptable-head .ptable-row .pcell.c-price .pcell-int span {
    font-size: 0.5em;
    line-height: 1.3em;
    display: block;
}

.ptable-head .ptable-row {
    padding-top: 0;
    padding-bottom: 0.5em;
    border-left: 5px solid rgba(0, 0, 0, 0);
    border-right: 5px solid rgba(0, 0, 0, 0);
}

.ptable-body .ptable-row {
    border: 3px solid var(--ink);
    margin-bottom: 2em;
}


.ptable .ws-tkt-info {
    right: 64%;
    left: auto;
    top: auto;
    bottom: -32px;
}

/* the program table shows the pill as a standalone badge, not a card overlay:
   no white wash, no full-size box — the ink pill carries its own fill */
.ptable .ws-tkt-info.soldout-info {
    width: auto;
    height: auto;
    background: none;
}

.ptable .ws-tkt-info.seats-limit {
    transform: rotate(2deg);
    right: 61%;
    color: var(--ink);
    bottom: -21px;
    z-index: 100;
}

.ptable .ev-2389 .ws-tkt-info.seats-limit {
    bottom: -9px
}

.c-when .w-date, .c-what h3 {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.542em;
    font-weight: bold;
    line-height: 1.2em;
}

.c-what a {
    text-decoration: none;
    color: var(--ink);
}

.c-what a:hover, .kpink .c-what a:hover  {
    border-bottom:3px solid var(--lime);

}


.c-what .spk {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    margin-top: 0.5em;
}

.c-what .sub-ttl {
    margin-top: 0.5em;
    line-height: 1.6em;
}

.c-what .sub-ttl a {
    border-bottom: 4px solid var(--kblue);
}

.workshops .c-what .sub-ttl {
    margin-top: 0.8em;
}

.c-when .w-time {
    font-size: 1.15em;
    white-space: nowrap;
    margin-top: 0.5em;
}

.c-price-int {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.542em;
    display: flex;
    flex-direction: column;
    margin-top: 0.09em;
    direction: ltr;
    text-align: right;
}

.ptable-sums .c-price-int {
    font-weight: bold;
}

.ptable-sums .ptable-row-discount .c-price-int {
    font-weight: normal;
}
.ptable-sums  .total  {
    white-space: nowrap;
}
.tf-p2-int .ptable-sums .c-tickets .total {
    white-space: normal;
}

.ptable-sums .c-price-int .decor {
    display: block;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: normal;
    font-size: 0.5em;
}

.c-price .fprice {
    opacity: 0.3;
    text-decoration: line-through;
    margin-top: 0.5em;
}

.ptable-body .c-tickets-int {
    font-size: 1.5em;
    width: 100%;
    position: relative;
    height: calc(1em + 26px);
    margin-top: 0.09em;
}

.tkt-spinner {
    position: absolute;
    bottom: 18px;
    z-index: -1;
    right: 0;
    opacity: 0;
    height: 0;
    width: 1em;
    border-bottom: 6px solid var(--kblue);
    padding: 0;
    background: #fff;
    -webkit-transition: all 0.3s 0s ease-in-out;
    -moz-transition: all 0.3s 0s ease-in-out;
    -o-transition: all 0.3s 0s ease-in-out;
    transition: all 0.3s 0s ease-in-out;
}

.tkt-spinner .sp-ctl {
    cursor: default;
}

.c-tickets.spn .tkt-spinner {
    opacity: 1;
    padding: 7px 19px 9px;
    border: 3px solid var(--ink);
    width: calc(100% - 10px - 38px);
    height: 1em;
    bottom: 0;
    z-index: 1;
}

.c-tickets.spn .tkt-spinner .sp-ctl {
    cursor: pointer;
    position: absolute;
    display: inline-block;
    font-family: 'leonprod', arial, Helvetica, sans-serif;
    color: var(--lime);
    background:var(--ink);
    padding: 5px 8px;
    text-decoration: none;
    right: 5px;
    font-size: 1.1em;
    opacity: 0;
    font-weight: 800;
    width: 0;
    height: 0;
    top: 2px;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.c-tickets.spn .tkt-spinner .sp-ctl:hover {
    background:#0E1819AA;
}
.c-tickets.spn .tkt-spinner .sp-ctl.sp-plus {
    right: auto;
    font-weight: 600;
    left: 5px;
}

.tkt-spinner input {
    width: 0;
    height: 0;
}

.c-tickets.spn input {
    width: calc(100% - 38px);
    height: 100%;
    min-width: 1em;
    font-size: 1em;
    border: none;
    max-width: calc(100% - 38px);
    margin: 0 auto;
    display: block;
    text-align: center;
    -webkit-transition: all 0.5s 0s ease;
    -moz-transition: all 0.5s 0s ease;
    -o-transition: all 0.5s 0s ease;
    transition: all 0.5s 0s ease;
}

.c-tickets.spn .tkt-spinner .sp-ctl {
    width: auto;
    height: auto;
    opacity: 1;
}

.c-tickets.spn a.add-ev {
    display: none;
}

.c-tickets .add-ev, .c-tickets .add-event.soldout-msg a, .c-tickets .waiting-list a, .add-discount-wrap a, .c-tickets-int a.remove-discount {
    color: var(--ink);
    text-decoration: none;
    position: relative;
    padding-bottom: 3px;
    top: 0;
    -webkit-transition: all 0.15s ease 0s;
    -moz-transition: all 0.15s ease 0s;
    -o-transition: all 0.15s ease 0s;
    -ms-transition: all 0.15s ease 0s;
    transition: all 0.15s ease 0s;
}

.c-tickets .add-ev::after, .c-tickets .add-event.soldout-msg a::after, .c-tickets .waiting-list a::after,
.add-discount-wrap a::after, .c-tickets-int a.remove-discount::after {
    content: '';
    left: 0;
    width: 100%;
    bottom: 0;
    height: 3px;
    background: var(--ink);
    position: absolute;
    -webkit-transition: all 0.15s ease 0s;
    -moz-transition: all 0.15s ease 0s;
    -o-transition: all 0.15s ease 0s;
    -ms-transition: all 0.15s ease 0s;
    transition: all 0.15s ease 0s;
}

.add-discount-wrap a::after {
    height: 2px;
}

.c-tickets .add-ev:hover::after, .c-tickets .add-event.soldout-msg a:hover::after, .c-tickets .waiting-list a:hover::after,
.add-discount-wrap a:hover::after, .c-tickets-int a.remove-discount:hover::after {
    height: 5px;
    background: var(--lime);
}

.c-tickets .add-ev:hover, .c-tickets .add-event.soldout-msg a:hover, .c-tickets .waiting-list a:hover, .add-discount-wrap a:hover, .c-tickets-int a.remove-discount:hover {
    color: var(--ink);
    padding-bottom: 7px;
    top: -4px;
}

.c-tickets .add-event.soldout-msg a, .c-tickets .waiting-list a, .add-discount-wrap a, .c-tickets-int a.remove-discount {
    padding-bottom: 2px;
}

.c-tickets .add-event.soldout-msg a:hover, .c-tickets .waiting-list a:hover, .add-discount-wrap a:hover, .c-tickets-int a.remove-discount:hover {
    padding-bottom: 5px;
    top: -3px;
}

.ptable-body.keynotes {
    margin-bottom: 3em;
}

.c-what .ws-tickets {
    position: absolute;
    left: 3em;
    bottom: -1em;
}

.ptable-row.sold-out {
    background: rgba(255, 255, 255, 0.5);
    border-color: rgba(0, 0, 0, 0.3);
}

.ptable-row.sold-out .c-what-int *, .ptable-row.sold-out .c-when, .ptable-row.sold-out .c-price, .c-when .w-date::before {
    color: rgba(0, 0, 0, 0.3) !important;
}

/* the `a` is deliberately NOT in this list: it is the lime CTA pill now, and
   stripping its background would erase the fill (this used to cancel the old
   design's `background: var(--ink)` on the underlined link) */
.ptable-row .ws-tkt-info.soldout-info, .ptable-row .ws-tkt-info.soldout-info .soldout-info-int {
    background: none;
}

.ptable-row .ws-tkt-info.soldout-info a {
    cursor: default;
}

.c-tickets .add-event.soldout-msg a, .c-tickets .waiting-list a {
    display: inline-block;
    color: var(--ink);
}

.ptable-sums {
}

.ptable-sums .ptable-row {
    border: 3px solid var(--ink);
    border-bottom: none;
}

.ptable-sums .ptable-row.after-discount {
    border-bottom: 3px solid var(--ink);
}

.ptable-sums .c-tickets-int .total-wrap {
    /*font-size: 1.15em;*/
}

.ptable-sums .c-tickets-int .total {
    font-size: 1.37em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.ptable-sums .c-when {
    display: none;
}

.ptable-sums .c-what {
    flex-basis: calc(63.5% + 1.25em);
    width: calc(63.5% + 1.25em);
}

.ptable-sums.no-discount .ptable-row.before-discount .c-what-int, .ptable-sums.has-discount .ptable-row.after-discount .c-what-int, .ptable-row-load .c-what-int {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.29em;
    font-weight: bold;
    line-height: 1.2em;
}

.ptable-sums.has-discount .ptable-row.before-discount .c-price-int {
    font-weight: normal;
}

.ptable-sums .c-what-int {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.ptable-sums.has-discount .ptable-row.before-discount, .ptable-sums.has-discount .ptable-row-discount {
    border-bottom: none;
}

.ptable-sums.has-discount .ptable-row-discount {
    border-top: none;
}

.ptable-sums.has-discount .ptable-row.after-discount {
    border-top: 5px solid var(--ink);
}

.ptable-sums.has-discount .ptable-row.before-discount, .ptable-sums.has-discount .ptable-row-discount {
    padding: 0.4em 3em;
}

.ptable-sums.has-discount .ptable-row.before-discount {
    padding-top: 0.875em;
}

.ptable-sums.has-discount .ptable-row-discount.last {
    padding-bottom: 0.875em;
}

.ptable-sums .c-what {
    text-align: left;
}

.ptable-sums .ptable-row {
    align-items: center;
}

.add-discount-wrap {
    margin-top: 0.2em;
    font-size:0.8em;
}

.ptable-row-load {
    display: none;
}

.ptable-sums.no-discount.zero-sum .ptable-row.before-discount, .ptable-sums.has-discount .ptable-row-sum.after-discount {
    border-bottom: 3px solid var(--ink);
}

.ptable-sums.load .ptable-row {
    display: none;
}

.ptable-sums.load .ptable-row-load {
    display: flex;
    border-bottom:3px solid var(--ink);
}

.ptable-row-discount.total-before-vat .pcell {
    border-top: 2px solid var(--ink);
    padding-top: 20px;
    align-self: flex-start;
}

.ptable-row-discount.total-before-vat .pcell.c-what {
    padding-top: 29px;
}

.kyellow .ptable-sums .ptable-row {
    background: #FEBAED;
}

.floatnav {
    cursor: pointer;
    position: fixed;
    left: 40px;
    bottom: 0;
    z-index: -1;
    opacity: 0;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.floatnav-wrap {
    border: 3px solid var(--ink);
    display: flex;
}

.pw-int.p2 .floatnav {
    display: none;
}

.floatnav:hover {
    padding-bottom: 0.5em;
}

.floatnav:hover a.reg {
    margin-bottom: 8px;
    bottom: 8px;
    color: var(--kblue);
}

.floatnav.active {
    z-index: 10;
    opacity: 1;
}

.floatnav-int {
    white-space: nowrap;
    background: #fff;
    padding: 0.6em 0.833em;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.floatnav-int:first-child {
    border-left: 5px solid;
    padding-right: 0.6em;
}

.floatnav-int span {
    margin-left: 0.3em;
}

.floatnav .cnt {
    font-weight: bold;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.5em;
}

.floatnav .tkt {
    width: 1.96em;
    height: 2.08em;
    background: url(../images/tickets/tickets3.svg) no-repeat left top;
    background-size: contain;
    margin-left: 0;
}

.floatnav .mult {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 0.625em;
}

.floatnav .pay a {
    font-size: 1.2em;
    font-weight: normal;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.floatnav .sum {
    font-size: 1.2em;
    font-weight: bold;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    margin-left: 0;
    min-width: 90px;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    position: relative;
}

.floatnav .sum:after {
    content: '';
    position: relative;
    width: 0.5em;
    height: 0.5em;
    display: inline-block;
    background: url(../images/global/cta-arrow-left.svg) no-repeat center center;
    background-size: contain;
    transform: rotate(270deg) translate(0.2em, -0.2em);
    opacity: 0;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;

}

.floatnav:hover .sum:after {
    opacity: 1;
}

.floatnav .wrap {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    width: 6em;
    justify-content: flex-end;
}

.floatnav .loader {
    position: relative;
    padding-right: 0;
    opacity: 0;
    margin-left: 0;
    width: 0;
}

.floatnav a {
    color: var(--ink);
}

.floatnav.loading .loader {
    opacity: 1;
    display: flex;
    width: 50px;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}

.floatnav.loading .loader:after {
    position: relative;
}
.floatnav.loading .loader:before {
    background:var(--ink);
}

.floatnav.loading .sum {
    opacity: 0;
    display: none;
}

.page .alt.reg-wrap {
    padding-top:0;
}


.reg-wrap .pw-p1 .cta-but-row {
    margin-top: 0;
    display: flex;
    justify-content: flex-end;
    grid-column-gap: 2em;
}

.reg-wrap .cta {
    margin-top: 1.5em;
}

.reg-wrap .cta-but.cta-main {
    margin-left: 0;
}

.reg-wrap .cta-but-wrap {
    display: table;
}

.reg-wrap .cta-but-exp {
    display: table-caption;
    caption-side: bottom;
    margin-top: 1em;
    line-height: 1.6em;
}

.reg-wrap .cta-but-exp h4 {
    font-weight: bold;
    margin-bottom: 0.3em;
}

.reg-wrap .cta-but.cta-main.arrow-left a {
    transform-origin: right bottom;
}

.reg-wrap .cta-but.cta-main.cc::after {
    background-color: var(--kblue);
}

.pw-int .page-wrap {
    position: relative;
    flex: 0 0 100%;
    align-self: flex-start;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;

}

.pw-int {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    right: 0;
    position: relative;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
}


.pw-int .pw-p2 {
    display: none;
}

.pw-int.p2 {
    right: -100vw;
}

.pw-int.p2 .pw-p1 {
    opacity: 0;
    height: 0;
    overflow: hidden;
}

.pw-int.p2 .pw-p2 {
    display: block;
}

.pw-int .pw-p2 .page-header {
    margin-bottom: 0.5em;
}

.ticketform.pay-cc .inv-only {
    display: none;
}

.ticketform.pay-inv .cc-only {
    display: none;
}

.purchase.back-btn-wrap {
    position: absolute;
    top: calc(0.5em + 6px);
    right: 0;
}

.alt.pay,  .page-template-page-error .alt {
    margin-top:3em;
}

/* The CardCom form sits inside .alt.pay, so the section grain would wash over the
   live payment iframe. The deliberate exception to that grain covering all of an
   .alt's content: third-party embedded content is not ours to texture, the same
   call as .b-video::after staying below a playing video. 52 clears the grain's 51. */
#pay_cardcom {
    position: relative;
    z-index: 52;
}
.pay .purchase.back-btn-wrap {
    width: calc(100% - 100px);
    max-width: var(--maxsection);
    position: absolute;
    right: 50%;
    transform: translateX(50%);
}

.purchase.back-btn-wrap a.back-btn-arrow {
    background: url(../images/tickets/arrow-right.svg) no-repeat right 0.3em;
    width: 0.8em;
    position: absolute;
    top: 0;
    right: 0;
    height: 1em;
    display: inline-block;
}

.purchase.back-btn-wrap a {
    font-size: 1.334em;
}

.purchase.back-btn-wrap a.back-btn.reg {
    position: absolute;
    top: 0;
    right: 0.8em;
    height: 1em;
    white-space: nowrap;
    padding-bottom:0.2em;
}

.purchase.steps {
    width: 100%;
    margin: 0 auto 3.4em;
    padding-top: 0.5em;
}

.purchase.steps ul {
    display: flex;
    justify-content: center;
    grid-column-gap: 2.8em;
}

.purchase.steps li {
    font-size: 1.334em;
    position: relative;
}

.purchase.steps li::after {
    content: '';
    position: absolute;
    left: -1.15em;
    width: 0.38em;
    height: 0.57em;
    background: url(../images/tickets/arrow-left.svg) no-repeat left center;
    top: 0.25em;
}

.purchase.steps li:last-child::after {
    display: none;
}

.purchase.steps li a {
    color: var(--ink);
}

.purchase.steps li a:hover {
    color: var(--kpink);
}

.purchase.steps li.active {
    font-weight: 600;
}

form h3 {
    font-size: 1.5em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
}

.pw-p2 .splitbox {
    grid-column-gap: 2.51em;
}

.pw-p2 .split-right {
    flex-basis: calc(57% - 2.51em);
}

.pw-p2 .split-left {
    flex-basis: 43%;
}

.order-summary .c-what {
    width: 8.9em;
    flex-basis: 8.9em;
}

.order-summary .c-tickets {
    width: 3.3em;
    flex-basis: 3.3em;
}

.order-summary .c-price {
    width: 4.5em;
    flex-basis: 4.5em;
}

.order-summary .c-total {
    width: 5.1em;
    flex-basis: 5.1em;
}

.order-summary .ptable-body .c-what .pcell-int {
    font-size: 1.29em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
}

.order-summary .ptable-row {
    padding: 1em 1.5em;
    border-bottom: none;
    margin-bottom: 0;
    grid-column-gap: 1.3em;
}

.order-summary .ptable-head .ptable-row {
    border: 3px solid var(--ink);
    border-bottom: none;
}

.order-summary .ptable-head .ptable-row .c-total span {
    display: block;
    font-size: 0.9em;
}

.order-summary .ptable-wrap {
    margin-top: 1.15em;
    background: #fafafa;   /* same fill as the homepage .b-workshops block */
    color: var(--ink);              /* the panel's text inherits black otherwise */
}

.order-summary .ptable-head .ptable-row, .order-summary .ptable-body .ptable-row, .order-summary .ptable-sums .ptable-row {
    border: none;
    background: none;
}

.order-summary .ptable-sums {
    background: none;
}

.order-summary .ptable-body .ptable-row {
    border-top: none;
    border-bottom: none;
}

.order-summary .ptable-head .pcell .pcell-int {
    font-size: 0.96em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.order-summary .c-price .pcell-int, .order-summary .c-total .pcell-int, .order-summary .ptable-body .c-tickets .pcell-int {
    font-size: 1.29em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    margin-top: 0;
}

.order-summary .ptable-sums.has-discount .ptable-row.before-discount, .order-summary .ptable-sums.has-discount .ptable-row-discount {
    padding: 1em 1.5em;
}

.order-summary .c-tickets .pcell-int .total {
    font-weight: 500;
    font-size: 1.125em;
}

.order-summary .c-tickets .pcell-int .total .total {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 1.15em;
}

.order-summary .ptable-row-sum .c-price .pcell-int {
    direction: rtl;
}

.order-summary .ptable-sums.has-discount .ptable-row.before-discount {
    border-top: 2px solid var(--ink);
}

.order-summary .ptable-head .ptable-row-discount {
    border-top: none;
}

.order-summary .ptable-head .ptable-row-discount .c-price .pcell-int {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.order-summary .ptable-row.after-discount .c-price .pcell-int, .order-summary .ptable-row.after-discount .c-total .pcell-int {
    font-weight: bold;
}

.order-summary .c-total .pcell-int {
    direction: ltr;
    text-align: right;
}

.kyellow .reg-wrap input:focus, .kpink .reg-wrap input:focus, .kgreen .reg-wrap input:focus, .kwhite .reg-wrap input:focus,
.kyellow .assign input:focus, .kpink .assign input:focus, .kgreen .assign input:focus, .kwhite .assign input:focus,
.kyellow .upload input:focus, .kpink .upload input:focus, .kgreen .upload input:focus, .kwhite .upload input:focus,
.kwhite .rafflepg input:focus, .kyellow .rafflepg input:focus {
    outline-color: var(--ink);
}

.f-box {
    border:3px solid var(--ink);
    padding: 2.5em;
    margin-top: 1.15em;
    margin-bottom: 2em;
}

.f-box.err {
    border-color: #ff012b;
}

.f-box.disabled {
    background: none;
}

.f-row {
    display: flex;
    grid-column-gap: 2em;
    margin-bottom: 2em;
}

.f-row > * {
    flex: 1 1 50%;
}

.f-field input[type=text], .f-field input[type=email], .f-field input[type=tel] {
    padding: 0.8em 1em;
    border: 3px solid var(--ink);
    margin-top: 0.6em;
    width: calc(100% - 2em - 10px);
    font-size: 1.15em;
}

.f-box.orderer-details {
    margin-top: 1.5em;
}

.h3-exp {
    width: 64%;
    margin-top: 1em;
    line-height:1.6em;
}

.f-field label {
    font-weight: 500;
    font-size: 1.15em;
    position: relative;
}

.f-field.req label::after {
    content: '*';
    position: relative;
    left: 0;
    color:var(--kpeach);
}

/* A file field's <label> is the lime CTA pill, not the caption — its ::after is
   the arrow glyph (see .cta-but.cta-main.arrow-left a::after), so the required
   marker moves off the button and onto the caption text it actually qualifies. */
.f-file.f-field.req label::after {
    content: '';   /* '' not none: the pseudo must survive to paint the arrow */
}

.f-file.f-field.req .f-file-cap::after {
    content: '*';
    color: var(--kpeach);
}

.f-file.f-field.req.err .f-file-cap::after {
    color: #F54040;
}

.pw-p2 .cta-but-row {
    margin-top: 0;
}

.f-field.err input {
    border-color: #F54040;
}

.f-field.req.err label:after {
    color: #F54040;
}

.f-field.f-email input, .f-field.f-tel input {
    direction: ltr;
    text-align: right;
}

form.err-empty .pw-p1 .cta .errmsg.err-empty-msg, .livelogin .errs {
    opacity: 1;
    height: auto;
    margin-top: 2em;
    margin-bottom: 2em;
    text-align: center;
}

form.err-empty .pw-p1 .cta .errmsg.err-empty-msg, .ferr .cta .errs {
    padding-left: 1em;
    padding-right: 1em;
    background: #fff;
    border: 3px solid #ff012b;
    text-align: center;
}

.pw-p2.ferr .cta .errs, .livelogin .errs {
    margin-bottom: 1em;
}

form.err-empty .pw-p1 .cta .errmsg.err-empty-msg, .ferr .cta .errs .errmsg {
    padding: 1em;
}

.f-box-events .errs {
    display: none;
    margin-top: 1.4em;
}

.err-no-check .err-no-check-msg, .err-no-file .err-no-file-msg, .err-empty .err-empty-msg {
    display: block;
    height: auto;
    opacity: 1;
    line-height: 1.4em;
}

.err-no-file .err-no-file-msg {
    margin-top: 0.7em;
}

.f-box-events.err .errs {
    display: block;
}

.pw-p2 .cta-but-wrap .cta-but.cta-main::after {
    background: var(--kblue);
}


.reg-wrap .disabled.cta-but-row .cta-but.cta-main.arrow-left a:hover {
    transform:none;
}

.cta .disabled .cta-but.cta-main a, .cta-but.cta-main.disabled a {
    transform:none;
}

.cta .disabled {
    opacity: 0.3;
}


.cta .disabled .cta-but.cta-main a:hover, .cta .disabled .cta-but.cta-main:hover a,
.cta-but.cta-main.disabled a:hover, .cta-but.cta-main.disabled:hover a {
    cursor: default;
}

.cta .disabled .cta-but.cta-main::after, .cta .disabled .cta-but.cta-main.disabled::after {
    width: 0.28em;
    bottom: 7px;
}

.pw-p2 .f-row.q-1 {
    flex-direction: column;
    line-height:1.6em;
}

.pw-p2 .f-row.q-1 h4 {
    font-weight:bold;
    margin-top:0.6em;
}

.f-row.inv-only.q-2 {
    margin-top:1em;
}

.pw-p2 .page-header {
    width: 100%;
}

.pw-p2 .page-header, .assign .page-header, .assign-list .page-header, .upload .page-header {
    margin: 0.22em auto 1.75em;
}
.assign .page-header, .assign-list .page-header, .upload .page-header {
    margin-right:0;
}
.assign, .assign-list, .upload {
    margin-top:3em;
}
.assign .page-header {
    margin-left:0;
    margin-right:0;
}

.assign .page-header h1, .assign-list .page-header h1, .upload .page-header h1 {
    font-size: 4em;
    line-height: 1.3em;
    text-align: right;
}


.assign .purchase.steps {
    display: none;
}

.assign .entry-content {
    border: none;
    background: none;
    padding: 0;
    font-size: 1em;
}

.assign .splitbox, .assign-list .splitbox, .upload .splitbox {
    grid-column-gap: 9.95em;
}

.assign .split-right, .assign-list .split-right, .upload .split-right {
    flex: 1 1 100%;
}

.assign .split-left, .assign-list .split-left, .upload .split-left {
    flex: 0 0 19em;
}

.page .assign article.page_content {
    margin-bottom: 2em;
    background: none;
    border: none;
}

.assign .part-wrap h3 {
    margin-bottom: 1em;
}

.assign .f-field input.kblue {
    border-color: var(--kblue);
}

.magic-radio, .magic-checkbox {
    display: block;
    opacity: 0;
    z-index: -1;
}

.magic-radio + label:before, .magic-checkbox + label:before {
    left: auto;
    right: 0;
    width: 1.09em;
    height: 1.09em;
    border: 3px solid var(--ink);
}

.magic-radio + label:after {
    top:9px;
    left:auto;
    right:9px;
    background-color:var(--kblue);
}

.magic-radio:checked + label:before {
    border-width:3px;
    border-color:var(--kblue);
}
.magic-radio+label:hover:before,
.magic-checkbox+label:hover:before {
    border-color:var(--lime) !important;
}

.rb-wrap {
    line-height:1.6em;
}
.magic-checkbox:focus + label {
    /*outline: medium dashed var(--ink)000;*/
    /*outline-offset: 5px;*/
    /*font-weight: 700;*/
    color: var(--kpink);
}

.magic-checkbox:focus + label:before, .magic-checkbox:checked:focus + label:before {
    border-color: var(--kpink);
}

.magic-radio + label, .magic-checkbox + label {
    padding-right: 2.25em;
    padding-left: 0;
    line-height: 1.46em;
    margin-bottom: 0.1em;
    display: inline-block;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}



.magic-checkbox + label:after {
    left: auto;
    right: 7px;
}

.magic-checkbox + label:before {
    border-radius: 0;
}

.magic-checkbox + label {
    font-weight: normal;
}

.magic-checkbox:checked + label:before {
    border: 3px solid var(--ink);
    background: url(../images/tickets/checkbox-check.svg) no-repeat center;
    background-size: 76%;
}

.magic-checkbox + label:hover:before {
    animation: none;
    border-color: var(--kpink);
}

.magic-checkbox:checked + label:after {
    display: none;
}

.magic-radio[disabled] + label, .magic-checkbox[disabled] + label {
    cursor: not-allowed;
    color: var(--ink);
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.magic-checkbox:checked[disabled] + label:before {
    border: 3px solid var(--ink);
    background: #ffffff00 url(../images/tickets/checkbox-check.svg) no-repeat center;
}

.magic-checkbox[disabled] + label:hover .evdate {
    border-left-color: var(--ink);
}

.cb-wrap {
    margin-bottom: 1.65em;
}

.cb-wrap:last-child {
    margin-bottom: 0;
}

.cb-wrap .evdate {
    font-weight: bold;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    margin-left: 0.3em;
    position: relative;
}

.cb-wrap .evdate::after {
    content: '/';
    position: relative;
    margin-right: 0.3em;
}

.cb-wrap label:hover .evdate {
    border-left-color: var(--kblue);
}

.err .magic-radio + label, .err .magic-checkbox + label {
    color: #F54040;
}

.err .magic-radio + label:before, .err .magic-checkbox + label:before {
    border-color: #F54040;
}

.err .cb-wrap .magic-checkbox + label .evdate {
    border-left-color: #f54040;
}

.f-field .exp {
    margin-top: 0.4em;
}

.f-row:last-child, .f-row.last {
    margin-bottom: 0;
}

.assign .err-no-check .f-box-events .errs, .assign .err-double-date .f-box-events .errs {
    margin-top: 1.5em;
}

.fass-wrap .cta-but-row .cta-main.cta-but a {
    white-space: nowrap;
    border: none;
}


.fass-wrap .cta-but.cta-sec.cancel-but a {
    color: var(--ink);
    font-weight: 500;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    position: relative;
    margin-bottom: 0;
    bottom: 0;
    font-size:1.7em;
}

.fass-wrap .cta-but.cta-sec.cancel-but a:hover {
}

.fass-wrap .cta-but-exp {
    margin-top: 1.2em;
    position:absolute;
}

.fass-wrap .cta {
    position: relative;
}

.submitting {
    position: fixed;
    top: 0;
    left: 0;
    justify-content: center;
    color: #fff;
    width: 100%;
    height: 100%;
    align-items: center;
    background: rgba(0, 0, 0, 0.85);
    display: none;
    z-index: 1000;
    font-size: 1.5em;
}

.submitting .loader {
    margin-left: 0.65em;
}

.page-loader .submitting {
    display: flex;
}

.f-box-events .f-row.f-row3 {
    display: block;
}

.fass-info {
    width: calc(100% - 10px);
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.fass-box-wrap {
}

.fass-box {
    padding: 1.05em 1.65em;
    border-bottom: 2px solid var(--ink);
}

.fass-box:last-child {
    border-bottom: none;
}

.fass-box.fass-remain {
    border-bottom: 3px solid var(--ink);
    background: var(--lime);
}

.kyellow .fass-box.fass-remain {
    background: #FEBAED;
}

.fass-box .num {
    font-size: 1.4em;
    margin-left: 0.1em;
}

.fass-box-head h3 {
    font-size: 1.29em;
    font-weight: bold;
}

.fass-box-head {
    margin-bottom: 1em;
}

.fass-box-body {
    font-size: 0.96em;
    line-height: 1.2em;
}

.fass-box-body li {
    margin-bottom: 0.6em;
}

.fass-box.empty .fass-box-body {
    font-family: 'leonprod', arial, Helvetica, sans-serif;
}

.assign .cta-but.cta-main::after,
.assign-list .cta-but.cta-main::after,
.insta-popup .cta-but.cta-main::after {
    background: var(--kblue) !important;
}

/* finished-assignment box: same animated background as homepage testimonial
   item-3 — a live animate23 canvas (js/hero26-gradient.js, booted site-wide).
   Flat --ink underneath is the boot/no-JS fallback, as on the cards. */
.fass-box.fass-done {
    position: relative;
    overflow: hidden;
    background: var(--ink);
    color: #fff;
}

/* square canvas centred and over-scanned so it covers the box at any height;
   the 90deg rotation matches the design instance inside the item-3 card */
.fass-box.fass-done .gcanvas {
    position: absolute;
    display: block;
    left: 50%;
    top: 50%;
    width: 124%;
    height: auto;
    aspect-ratio: 1 / 1;
    transform: translate(-50%, -50%) rotate(90deg);
    z-index: 0;
    pointer-events: none;
}

.fass-box.fass-done .fass-box-head,
.fass-box.fass-done .fass-box-body {
    position: relative;
    z-index: 1;
}

.fass-box.fass-done .fass-box-body {
    font-family: 'leonprod', arial, Helvetica, sans-serif;
    font-weight: normal;
}

.fass-toaster {
    width: calc(100% - 10px);
    border: 3px solid var(--ink);
    background: var(--lime);
    line-height: 1.2em;
    overflow: hidden;
    -webkit-transition: transform 0.4s 0s ease, max-height 1s 0s ease, margin-bottom 1s 0s ease;
    -moz-transition: transform 0.4s 0s ease, max-height 1s 0s ease, margin-bottom 1s 0s ease;
    -o-transition: transform 0.4s 0s ease, max-height 1s 0s ease, margin-bottom 1s 0s ease;
    transition: transform 0.4s 0s ease, max-height 1s 0s ease, margin-bottom 1s 0s ease;
    transform-origin: center top;
    max-height: calc(10px + 7em);
    margin-bottom: 1.5em;
}

.fass-toaster-inner {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    background: url(../images/tickets/toaster-check.svg) no-repeat calc(100% - 1.2em) center;
    background-size: 2.2em;
    overflow: visible;
    padding: 1.5em 4em 1.5em 2em;
}

.fass-toaster.waiting {
    /*transform:scale(0);*/
    max-height: 0;
    margin-bottom: 0;
    border: none;
}

.f-box h4 {
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 1.5em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.assign-list .ttl-split {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.assign-list .ttl-split .split-right, .assign-list .ttl-split .split-left {
    flex: 0 0 50%;
}

.assign-list .cta-but.cta-main {
    font-size: 1.125em;
}

.assign-list .ttl-split {
    margin-bottom: 1.5em;
}

.assign-list .ttl-split h2 {
    font-size: 1.542em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
}

.ticket {
    position: relative;
    border: 3px solid var(--ink);
    background: #fff;
    margin-bottom: 0.8em;
}

.ticket-int {
    display: flex;
    flex-direction: column;
}

.ticket-body {
    padding: 1.2em 1.8em 0.8em;
}

.ticket-cmds {
    padding: 0.8em 1.8em;
    border-top: 2px solid var(--ink);
}

.ticket-cmds ul {
    display: flex;
    grid-column-gap: 2em;
}

.assign-list .ttl-left .cta-main.cta-but {
    margin-left: 0;
}

.ticket-ttl {
    display: flex;
    grid-column-gap: 2em;
    justify-content: space-between;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    margin-bottom: 0.8em;
}

.ticket-ttl .ticket-id {
    font-size: 1.54em;
}

.ticket-ttl .ticket-id .ticket-order {
    margin-left: 0.4em;
}

.ticket-ttl .ticket-num {
    font-size: 1.3em;
}

.ticket-body {
    cursor: pointer;
}

.ticket-ttl a {
    color: var(--ink);
}

.ticket-body:hover .ticket-ttl a {
    border-bottom:3px solid var(--lime);
}

.ticket-event .event-date {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
    margin-left: 0.4em;
    position: relative;
}

.ticket-event .event-date::after {
    content: '/';
    position: relative;
    margin-right: 0.4em;
}

.ticket-event .event-name {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
}

.ticket-event {
    margin-bottom: 0.6em;
}

.ticket-event:last-child {
    margin-bottom: 0;
}
.ticket-cmds .cmd {
    padding: 0.2em 0.7em 0.4em;
    border-radius: 800px;
}
.ticket-cmds .cmd:hover {
    background: var(--lime);
}
.ticket-cmds .cmd a {
    padding-right: 1em;
    font-weight: 500;
    color: var(--ink);
    position:relative;
    displaY:inline-block;
}
.ticket-cmds .cmd a::after {
    content:'';
    position:absolute;
    mask: url(../images/tickets/cmd-edit.svg) no-repeat right center;
    background:var(--ink);
    mask-size: 0.7em;
    display:block;
    width:0.9em;
    height:0.9em;
    top:0.3em;
    right:0;
}

.ticket-cmds .cmd.cmd-assign a::after {
    mask-image: url(../images/tickets/cmd-assign.svg);
}

.ticket-cmds .cmd.cmd-del a::after {
    mask-image: url(../images/tickets/cmd-delete.svg);
}

.assign-list .emptry {
    margin-bottom: 1em;
}


.insta-popup .p-popup-int {
    max-width: 480px;
}

.insta-popup .p-popup-title {
    text-align: right;
}

.insta-popup .cta-but-row {
    display: flex;
    grid-column-gap: 3em;
    align-items: center;
}

.f-file input[type=file] {
    visibility: hidden;
    height: 0;
    padding: 0;
    margin: 0;
    max-width: 0;
    max-height: 0;
    width: 0;
    display: inline;
    position: absolute;
    left: 0;
    top: 0;
}

.f-file .f-wrap {
    display: flex;
    font-size: 0.8em;
    align-items: center;
    grid-column-gap: 2em;
}

.entry-content h2:first-child {
    margin-top: 0;
}

.upload .entry-content {
    font-size: 1em;
    background: none;
    box-shadow: none;
    padding:0;
}
.upload .f-box .req:first-child {
    margin-top:0;
}
.upload .page-header {
    max-width: 950px;
}

.upload .f-row.uq-5 input {
    max-width: 13em;
}

.wp-block-table {
    overflow: visible;
}

.post-51191 td, .page-id-64065 td {
    padding-top: 0.4em;
    padding-bottom: 0.4em;
    border-bottom: 1px solid var(--ink);
    line-height: 1.5em;
}

.p-sponsors .page-header {
    text-align: right;
    padding-top:3em;
}

.wp-block-image img {
    display: block;
}

.wp-block-image figcaption {
    margin-top: 0.2em;
    margin-bottom: 1em;
    font-size: 0.9em;
}

.p-sponsors .page-header, .p-sponsors .page-header h1 {
    margin-right: auto;
    margin-lefT:auto;
}

.p-sponsors .page > .entry-content {
    max-width: 35em;
    line-height: 1.4em;
    margin-bottom: 2em;
    background: none;
}

.p-sponsors .b-sponsors {
    margin-top: 2em;
}

.post-1783 .entry-content {
    word-break: break-word;
}

.page-template-page-organizer-info .alt {
    margin-top:3em;
}

.page-template-page-organizer-info .entry-content {
    margin: 0 auto;
}


.single-ev_event .entry-content a:hover {
    color: var(--kblue);
}

.single-ev_event .entry-content blockquote {
    position: relative;
}

.single-ev_event .entry-content blockquote::before {
    position: absolute;
    color: #fff;
    content: '"';
    top: 0;
    right: -0.1em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-size: 3em;
}

.single-ev_event .entry-content blockquote.eng::before {
    right: auto;
    left: -0.1em;
}

/*****************************************/
.b-orgs .org.org-52629 img {
    filter: grayscale(100%) contrast(1);
}

.rafflepg .split-left {
    flex: 0 1 16em;
    position: relative;
}

.rafflepg .page-header {
    max-width: none;
    margin: 0;
    font-size: 3.5em;
}

.rafflepg .page-header h1 {
    text-align: right;
}

.rafflepg .page .entry-content {
    padding-left: 0;
    padding-right: 0;
}

.rafflepg .split-left .track {
    background: url(../images/tickets/tickets-spc.svg) repeat-y center bottom;
    width: 100%;
    position: absolute;
    height: calc(100% - 2em);
    left: 0;
    z-index: 50;
    bottom: 0;
}

.rafflepg .split-left .hider {
    position: absolute;
    width: 100%;
    bottom: 2.5em;
    top: 0;
    -webkit-transition: none;
    -moz-transition: none;
    -o-transition: none;
    transition: none;
}

.rafflepg .split-left .pc-wrap {
    width: 100%;
    height: 100%;
    top: 0;
    position: absolute;
    bottom: 0;
    -webkit-transition: top 200ms;
    -moz-transition: top 200ms;
    -o-transition: top 200ms;
    transition: top 200ms;
    overflow: hidden;
}

.pacman {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: var(--ink);
    margin: 20px auto 0;
    animation-name: eat;
    animation-duration: 0.7s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    clip-path: polygon(74% 100%, 48% 44%, 21% 100%, 0 100%, 0 0, 100% 0, 100% 100%);
    position: absolute;
    bottom: 0;
    right: calc(50% - 50px);
    cursor: pointer;
}

.upacman {
    position: relative;
    -webkit-transition: none;
    -moz-transition: none;
    -o-transition: none;
    transition: none;
    z-index: 100;
    animation-name: walk;
    animation-duration: 30s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    width: 100%;
    height: 100px;
}

.pacman__eye {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    top: 40px;
    right: 20px;
    background: var(--kblue) 00;
    -webkit-transition: none;
    -moz-transition: none;
    -o-transition: none;
    transition: none;
}

@keyframes eat {
    0% {
        clip-path: polygon(74% 100%, 48% 44%, 21% 100%, 0 100%, 0 0, 100% 0, 100% 100%);
    }
    25% {
        clip-path: polygon(60% 100%, 48% 44%, 40% 100%, 0 100%, 0 0, 100% 0, 100% 100%);
    }
    50% {
        clip-path: polygon(50% 100%, 48% 44%, 50% 100%, 0 100%, 0 0, 100% 0, 100% 100%);
    }
    75% {
        clip-path: polygon(59% 100%, 48% 44%, 35% 100%, 0 100%, 0 0, 100% 0, 100% 100%);
    }
    100% {
        clip-path: polygon(74% 100%, 48% 44%, 21% 100%, 0 100%, 0 0, 100% 0, 100% 100%);
    }
}

@keyframes walk {
    0% {
        height: 100px;
    }
    98% {
        height: 100%;
    }
    100% {
        height: 100px;
    }
}

.rafflepg h3 {
    font-size: 1.2em;
    font-weight: normal;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    line-height: 1.3em;
    margin-bottom: 2em;
    margin-top: 0.5em;
}

.rafflepg ol {
    list-style: none;
    counter-reset: item;
    margin-bottom: 1.2em;
}

.rafflepg ol li {
    list-style: none;
    counter-increment: item;
    margin-bottom: 5px;
    padding-right: 0;
    font-size: 1.2em;
    font-weight: 600;
}

.rafflepg ol li:before {
    content: counter(item) ".";
    width: 1.2em;
    text-align: right;
    display: inline-block;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
}

.rafflepg .entry-content p {
    font-size: 1.2em;
    line-height: 1.2em;
}

.rafflepg .entry-content p strong {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: bold;
}

.stop .upacman, .stop .upacman .pacman {
    animation-play-state: paused;
}

.rafflepg .f-box {
    max-width: 806px;
}

.rafflepg .f-field .err {
    display: none;
}

.rafflepg .f-field.err .err {
    color: #f54040;
}

.rafflepg .loader {
    display: none;
}

.rafflepg .exp {
    margin-top: 0.3em;
}


/* Testimonial item background colors */
.b-testimons .testimon.item-1 .testimon-int {
    background: var(--kpeach);
}

.b-testimons .testimon.item-2 .testimon-int {
    background: var(--kturq);
}

.b-testimons .testimon.item-3 .testimon-int {
    background: var(--kpink);
}

.b-testimons .testimon.item-4 .testimon-int {
    background: var(--kpink);
}

.b-testimons .testimon.item-5 .testimon-int {
    background: var(--kpeach);
}

.b-testimons .testimon.item-6 .testimon-int {
    background: var(--kturq);
}

.b-testimons .testimon.item-7 .testimon-int {
    background: var(--kpurple);
}

.venue-header {
    font-size: 4.33em;
    height: 1em;
    margin: 0.25em 0 0.75em;
}

.venue-header .ticker-int {
    animation-duration: 300s;
}

.venue-header .ticker-int span {
    display: inline-block;
    background-repeat: no-repeat;
    background-position: 0.5em 0;
    background-size: contain;
    margin-left: 0;
    padding-left: 2em;
}

.venue-header .ticker-int span.vn-down {
    background-image: url(../images/venues/vn-down.svg);
}

.venue-header .ticker-int span.vn-left {
    background-image: url(../images/venues/vn-left.svg);
    background-position: 0.3em 0;
}

.venue-header .ticker-int span.vn-right {
    background-image: url(../images/venues/vn-right.svg);
    background-position: 0.3em 0;
}

.venue-header .ticker-int span::after {
    content: '';
}

.venue-header .ticker {
    overflow: visible;
}

.venue-nav {
    width: 100%;
    margin-bottom: 3em;
}

.venue-nav ul {
    position: relative;
    display: flex;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    grid-column-gap: 4em;
    justify-content: center;
}

.venue-nav ul li {
    font-weight: bold;
}

.venue-nav ul li a {
    color: var(--ink);
    border-bottom: 4px solid var(--kblue);
    font-weight: normal;
}

.venue-nav ul li a:hover {
    color: var(--kblue);
}

.archive .alt.page-venue {
    padding-top:3em;
}

.page-venue .entry-content {
    max-width: 100%;
    padding: 0;
    bordeR:none;
}

.page-venue .venue {
    border: 3px solid var(--ink);
    background: var(--ink);
    margin-bottom: 2em;
}

.page-venue .v-head {
    background: var(--ink);
    color: #fff;
    padding: 2.12em 1.81em;
}

.page-venue .v-body {
    background: #fff;
    padding: 2.12em 1.81em;
}

.page-venue .v-head-ttl {
    display: flex;
    grid-column-gap: 4em;
}

.page-venue .v-head-ttl h2 {
    position: relative;
    font-size: 2.45em;
    margin-bottom: 0.55em;
}

.page-venue .v-head-ttl h2::after {
    content: '//';
    position: relative;
    color: var(--kblue);
    top: 0;
    left: -0.78em;
    font-weight: normal;
}

.page-venue .v-head-ttl h2 .v-name {
    white-space: nowrap;
}

.page-venue .v-head .v-type {
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    font-weight: normal;
    font-size: 1.285em;
}

.page-venue .v-head-ttl .v-addr {
    font-size: 1.285em;
    font-weight: bold;
}

.page-venue .v-instruct p {
    margin-bottom: 0;
    padding-bottom: 0.75em;
}

.page-venue .v-event {
    grid-column-gap: 2em;
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    display: flex;
    margin: 0 0 1em;
}

.page-venue .v-event:last-child {
    margin-bottom: 0;
}

.page-venue .v-event li {
    list-style-type: none;
    font-size: 1.285em;
    margin: 0;
    padding-right: 0;
    position: relative;
}

.page-venue .v-event li::after {
    content: '//';
    position: relative;
    color: var(--kblue);
    top: 0;
    left: -0.65em;
    font-weight: normal;
}

.page-venue .v-event li:last-child::after {
    display: none;
}

.page-venue .v-event li.ev-name::after {
    position: absolute;
}

.page-venue .v-event .ev-name {
    font-weight: bold;
    padding-left: 1.3em;
    flex: 0 1 50%;
}

.page-venue .v-event .ev-name a {
    border: none;
    display: block;
}

.page-venue .v-body {
    border-bottom: 2px solid var(--ink);
}

.page-venue .v-instruct {
    display: flex;
    background: #fff;
    border-bottom: 2px solid var(--ink);
}

.page-venue .v-instruct .v-trans {
    border-left: 2px solid var(--ink);
    padding: 2.12em 1.81em;
    flex-basis: calc(33% - 2px - 3.61em)
}

.page-venue .v-instruct .v-trans:last-child {
    border-left: none;
}

.page-venue .v-trans-head h3 {
    font-size: 1.285em;
    font-weight: bold;
    margin-top: 0;
    background: url(../images/venues/vn-car.svg) no-repeat right center;
    background-size: 1.3em;
    padding: 0.2em 1.75em 0.2em 0;
}

.page-venue .i-train .v-trans-head h3 {
    background-image: url(../images/venues/vn-train.svg);
    background-size: 1.02em;
}

.page-venue .i-bus .v-trans-head h3 {
    background-image: url(../images/venues/vn-bus.svg);
    background-size: 1.15em;
}

.page-venue .v-trans-head {
    margin-bottom: 1em;
}

.page-venue .v-event.v-event-2389 .ev-name {
    flex-basis: auto;
    color: var(--kblue);
}

.food-wrap, .venues-kosher {
    display:none;
    line-height:1.6em;
}
.food-wrap.shown, .venues-kosher.shown {
    display:block;
}

.venues-kosher-link {
    margin-top:1em;
}

.fass-wrap .cta-but-row {
    display:flex;
    align-items:center;
    gap:2em;
}

.venues-kosher.shown {
    margin-top: 1.5em;
}

.fass-wrap .venue-item {
    display:flex;
    gap:1em;
}
.fass-wrap .venue-item .vkosher {
    display:flex;
    gap:1em;
}
.fass-wrap .venue-item .vdates {
    margin-right:-0.5em;
}
.fass-parts .form-box p {
    margin-top:0.5em;
    max-width:700px;
}

.upload .fass-info {
    background:var(--kturq);
}
 .page .upload .entry-content{
     border:none;
 }
 .upload .f-field-po_num {
     display:flex;
     flex-direction: column;

 }


.livelogin h5 {
    font-size: 0.8em;
    margin-bottom: 1.5em;
}

.livelogin .forgot-pass, .livelogin .login-remember {
    display: none;
}

.livelogin .button-primary {
    background: var(--ink);
    font-family: 'leonprod', arial, "Helvetica Neue", sans-serif;
    color: #fff;
    border: none;
    padding: 0.6em 0.81em;
    font-weight: bold;
    line-height: 1em;
    text-decoration: none;
    display: inline-block;
    position: relative;
    -webkit-transition: all 0.3s 0s ease;
    -moz-transition: all 0.3s 0s ease;
    -o-transition: all 0.3s 0s ease;
    transition: all 0.3s 0s ease;
    top: 0;
    left: 0;
}

.livelogin label {
    display: block;
}

.livelogin input[type=text], .livelogin input[type=password] {
    padding: 0.8em 1em;
    border: 3px solid var(--ink);
    margin-top: 0.3em;
    width: calc(100% - 2em - 10px);
    font-size: 1.15em;
}

.livelogin #loginform {
    max-width: 600px;
    margin-top: 1.5em;
}

.livelogin .warn {
    margin-top: 20px;
}

.page .livepg .entry-content {
    margin: 0 auto;
}

.livepg iframe {
    /*CSS transitions*/
    -o-transition-property: none !important;
    -moz-transition-property: none !important;
    -ms-transition-property: none !important;
    -webkit-transition-property: none !important;
    transition-property: none !important; /*CSS transforms*/
    -o-transform: none !important;
    -moz-transform: none !important;
    -ms-transform: none !important;
    -webkit-transform: none !important;
    transform: none !important;
    /*CSS animations*/
    -webkit-animation: none !important;
    -moz-animation: none !important;
    -o-animation: none !important;
    -ms-animation: none !important;
    animation: none !important;
    position: relative;
    z-index: 100;
}

.page .livepg .page-header {
    margin-top: 2em;
}

.upload .cta-but.cta-main a, .pw-p2 .cta-but.cta-main a {
    transform-origin:right center;
}
.audience-box b, .audience-box strong {
    font-weight:bold;
}

/* leonprod webfont — used site-wide (header, footer, sponsors) */
@font-face { font-family:'leonprod'; src:url('../fonts/leon/Leon-ProductRegular.woff2') format('woff2'),
  url('../fonts/leon/Leon-ProductRegular.woff') format('woff'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'leonprod'; src:url('../fonts/leon/Leon-ProductBold.woff2') format('woff2'),
  url('../fonts/leon/Leon-ProductBold.woff') format('woff'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'leonprod'; src:url('../fonts/leon/Leon-ProductHeavy.woff2') format('woff2'),
  url('../fonts/leon/Leon-ProductHeavy.woff') format('woff'); font-weight:900; font-style:normal; font-display:swap; }

/* shekel — Leon Product's own U+20AA glyph is malformed, so that one codepoint
   is re-pointed at Arial. Must stay after the faces above: where unicode-ranges
   overlap the last matching face wins, so every font-family:'leonprod' in this
   file inherits it with no rule changes. 700/900 name Arial's real bold face —
   a regular face declared at 700 counts as already-bold, which suppresses
   synthesis and would leave the shekel too light beside bold digits. If Arial
   is absent the face fails to load and U+20AA falls through to the next family
   in the stack, which is already arial. */
@font-face { font-family:'leonprod'; src:local('Arial'), local('Liberation Sans'), local('Helvetica');
  unicode-range:U+20AA; font-weight:400; font-style:normal; }
@font-face { font-family:'leonprod'; src:local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold');
  unicode-range:U+20AA; font-weight:700; font-style:normal; }
@font-face { font-family:'leonprod'; src:local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold');
  unicode-range:U+20AA; font-weight:900; font-style:normal; }

/* the currency span the price templates already emit (page-registration,
   page-products) had no rule anywhere. Backs up the face above where local()
   lookup is blocked (Firefox resistFingerprinting) or the span sits outside a
   leonprod stack. Deliberately span-scoped: quote_details.php reuses the same
   class on <td> for whole money cells, and those must keep their own font. */
span.currency { font-family: Arial, "Liberation Sans", Helvetica, sans-serif; }

/* brain parts 9 + 11 — reused by the hamburger menu decor on every page */
.part11 { position:relative; width:382.07px; height:402.71px;
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22382.07%22%20height%3D%22402.71%22%20viewBox%3D%220%200%20382.07%20402.71%22%3E%3Cpath%20d%3D%22M21.6641%20287.429C95.7785%20209.868%2061.163%20133.025%2034.591%20104.298C0.119927%20-5.58084%20127.235%20-16.3531%20174.633%2015.9642C212.552%2041.818%20211.978%2095.6802%20206.951%20119.38C214.85%20114.352%20231.081%20116.363%20232.804%20164.624C234.959%20224.949%20191.869%20224.949%20185.406%20231.413C195.747%20272.779%20171.042%20281.684%20157.397%20280.966C81.2716%20315.438%20-52.4502%20364.991%2021.6641%20287.429Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%280.806643%2C-0.591039%2C0.591039%2C0.806643%2C0.000%2C137.643%29%22/%3E%3C/svg%3E'); mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22382.07%22%20height%3D%22402.71%22%20viewBox%3D%220%200%20382.07%20402.71%22%3E%3Cpath%20d%3D%22M21.6641%20287.429C95.7785%20209.868%2061.163%20133.025%2034.591%20104.298C0.119927%20-5.58084%20127.235%20-16.3531%20174.633%2015.9642C212.552%2041.818%20211.978%2095.6802%20206.951%20119.38C214.85%20114.352%20231.081%20116.363%20232.804%20164.624C234.959%20224.949%20191.869%20224.949%20185.406%20231.413C195.747%20272.779%20171.042%20281.684%20157.397%20280.966C81.2716%20315.438%20-52.4502%20364.991%2021.6641%20287.429Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%280.806643%2C-0.591039%2C0.591039%2C0.806643%2C0.000%2C137.643%29%22/%3E%3C/svg%3E');
  -webkit-mask-size:100% 100%; mask-size:100% 100%; mask-repeat:no-repeat; isolation:isolate; }
.part11 .pback { position:absolute; inset:0; background:#884FFF; opacity:1; }
.part11 .pgrad { position:absolute; left:0; top:0;
  transform:matrix(1.0,0.0,0.0,1.0,-34.4,-42.95) scale(0.7143); transform-origin:0 0; }
.part9 { position:relative; width:419.00px; height:601.53px;
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22419.00%22%20height%3D%22601.53%22%20viewBox%3D%220%200%20419.00%20601.53%22%3E%3Cpath%20d%3D%22M155.646%2049.6095C160.163%20-21.6168%20201.76%20-0.795386%20221.994%2018.5186C274.226%20-16.1052%20354.693%20185.279%20354.693%20188.105C379.538%20192.062%20397.513%20228.853%20403.395%20246.754C419.771%20255.798%20420.1%20292.448%20418.218%20309.642C376.432%20293.249%20362.692%20311.291%20361.045%20322.361C368.104%20344.266%20361.045%20382.423%20361.045%20384.543C381.938%20409.415%20367.868%20460.386%20358.222%20482.762C376.574%20515.972%20382.22%20588.753%20343.399%20597.939C312.342%20605.288%20291.402%20594.877%20284.814%20588.753C226.089%20601.19%20197.761%20588.753%20190.938%20580.981C181.903%20601.896%20153.764%20602.885%20140.823%20600.766C146.47%20596.243%20147.882%20580.51%20147.882%20573.208C80.8269%20563.315%20109.766%20537.877%2074.474%20507.493C46.2402%20483.186%2062.71%20454.497%2074.474%20443.191C54.7105%20460.15%2028.1239%20450.258%2017.3011%20443.191C-34.2252%20385.249%2042.7113%20318.828%2074.474%20306.109C106.237%20293.39%2097.7667%20240.394%2099.1784%20203.65C100.59%20166.907%20112.589%20190.932%20118.942%20104.018C124.024%2034.4879%20145.529%2038.7748%20155.646%2049.6095Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%281.000000%2C0.000000%2C0.000000%2C1.000000%2C0.000%2C0.000%29%22/%3E%3C/svg%3E'); mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22419.00%22%20height%3D%22601.53%22%20viewBox%3D%220%200%20419.00%20601.53%22%3E%3Cpath%20d%3D%22M155.646%2049.6095C160.163%20-21.6168%20201.76%20-0.795386%20221.994%2018.5186C274.226%20-16.1052%20354.693%20185.279%20354.693%20188.105C379.538%20192.062%20397.513%20228.853%20403.395%20246.754C419.771%20255.798%20420.1%20292.448%20418.218%20309.642C376.432%20293.249%20362.692%20311.291%20361.045%20322.361C368.104%20344.266%20361.045%20382.423%20361.045%20384.543C381.938%20409.415%20367.868%20460.386%20358.222%20482.762C376.574%20515.972%20382.22%20588.753%20343.399%20597.939C312.342%20605.288%20291.402%20594.877%20284.814%20588.753C226.089%20601.19%20197.761%20588.753%20190.938%20580.981C181.903%20601.896%20153.764%20602.885%20140.823%20600.766C146.47%20596.243%20147.882%20580.51%20147.882%20573.208C80.8269%20563.315%20109.766%20537.877%2074.474%20507.493C46.2402%20483.186%2062.71%20454.497%2074.474%20443.191C54.7105%20460.15%2028.1239%20450.258%2017.3011%20443.191C-34.2252%20385.249%2042.7113%20318.828%2074.474%20306.109C106.237%20293.39%2097.7667%20240.394%2099.1784%20203.65C100.59%20166.907%20112.589%20190.932%20118.942%20104.018C124.024%2034.4879%20145.529%2038.7748%20155.646%2049.6095Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%281.000000%2C0.000000%2C0.000000%2C1.000000%2C0.000%2C0.000%29%22/%3E%3C/svg%3E');
  -webkit-mask-size:100% 100%; mask-size:100% 100%; mask-repeat:no-repeat; isolation:isolate; }
.part9 .pback { position:absolute; inset:0; background:#FF80AB; opacity:1; }
.part9 .pgrad { position:absolute; left:0; top:0;
  transform:matrix(-0.0,-1.0,1.0,-0.0,-94.0,657.0) scale(1.0); transform-origin:0 0; }
.part9 .pa0 { position:absolute; left:0.0px; top:0.0px;
  width:419.0px; height:602.0px; mix-blend-mode:overlay; opacity:1; }
.part9 .pa1 { position:absolute; left:-27.7px; top:206.0px;
  width:371.4px; height:350.0px; mix-blend-mode:lighten; opacity:1; }
.part9 .pa2 { position:absolute; left:120.87px; top:449.82px;
  width:39.29px; height:39.28px; mix-blend-mode:overlay; opacity:1; }

/* brain parts 1 + 13 — reused by the footer decor on every page */
.part1 { position:relative; width:368.02px; height:409.17px;
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22368.02%22%20height%3D%22409.17%22%20viewBox%3D%220%200%20368.02%20409.17%22%3E%3Cpath%20d%3D%22M158.877%20176.685C175.281%20212.719%20193.051%20212.173%20199.886%20207.396C199.886%20188.969%20177.33%20195.112%20177.33%20182.827C177.33%20170.542%20191.683%20156.21%20158.877%20148.021C126.071%20139.831%20121.967%20100.93%20152.724%20113.215C183.481%20125.499%20187.582%20117.309%20162.976%2086.5982C138.371%2055.8869%20160.926%2010.8437%20177.33%2014.9386C193.733%2019.0336%20199.886%2043.6024%20206.036%2031.3179C212.186%2019.0334%20232.692%20-11.6779%20261.399%204.70147C290.105%2021.0808%20242.945%20123.452%20261.399%20105.025C279.853%2086.5983%20283.954%2010.8438%20312.661%2014.9386C341.367%2019.0335%20304.459%2076.3612%20312.661%2084.5509C320.863%2092.7406%20361.872%2059.9819%20361.872%2092.7406C361.872%20125.499%20294.206%20131.642%20294.206%20141.879C294.206%20152.116%20368.023%20121.404%20368.023%20141.879C368.023%20162.353%20302.408%20195.111%20273.702%20207.396C244.995%20219.68%20249.096%20254.487%20265.5%20246.297C281.904%20238.107%20335.216%20229.918%20345.468%20242.202C355.721%20254.487%20329.064%20254.487%20320.863%20272.913C312.661%20291.34%20353.67%20291.34%20361.872%20332.289C370.074%20373.237%20320.863%20344.573%20294.206%20336.383C267.55%20328.194%20279.853%20358.905%20261.399%20377.332C242.945%20395.759%20238.844%20352.763%20222.44%20344.573C206.036%20336.383%20230.642%20383.474%20222.44%20401.901C214.238%20420.328%20187.582%20399.853%20183.481%20383.474C179.38%20367.095%20179.38%20342.526%20144.522%20352.763C109.664%20363%20128.118%20303.625%20152.724%20291.34C177.33%20279.056%20183.481%20254.487%20158.877%20254.487C134.273%20254.487%20107.616%20299.53%2076.8566%20309.767C46.0971%20320.004%2072.7556%20268.819%2070.7052%20254.487C68.6547%20240.155%2048.1524%20266.771%2027.6453%20281.103C7.1382%20295.435%2015.3425%20248.344%2021.4939%20236.06C27.6453%20223.775%209.19277%20227.87%200.990892%20195.111C-7.21099%20162.353%2037.9001%20199.206%2048.1524%20182.827C58.4048%20166.448%2013.2944%20148.021%2035.8496%20141.879C58.4048%20135.736%2083.0104%20176.685%20107.616%20195.111C132.222%20213.538%20109.665%20182.827%2097.3627%20148.021C85.0598%20113.215%20138.372%20131.641%20158.877%20176.685Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%281.000000%2C0.000000%2C0.000000%2C1.000000%2C0.000%2C0.000%29%22/%3E%3C/svg%3E'); mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22368.02%22%20height%3D%22409.17%22%20viewBox%3D%220%200%20368.02%20409.17%22%3E%3Cpath%20d%3D%22M158.877%20176.685C175.281%20212.719%20193.051%20212.173%20199.886%20207.396C199.886%20188.969%20177.33%20195.112%20177.33%20182.827C177.33%20170.542%20191.683%20156.21%20158.877%20148.021C126.071%20139.831%20121.967%20100.93%20152.724%20113.215C183.481%20125.499%20187.582%20117.309%20162.976%2086.5982C138.371%2055.8869%20160.926%2010.8437%20177.33%2014.9386C193.733%2019.0336%20199.886%2043.6024%20206.036%2031.3179C212.186%2019.0334%20232.692%20-11.6779%20261.399%204.70147C290.105%2021.0808%20242.945%20123.452%20261.399%20105.025C279.853%2086.5983%20283.954%2010.8438%20312.661%2014.9386C341.367%2019.0335%20304.459%2076.3612%20312.661%2084.5509C320.863%2092.7406%20361.872%2059.9819%20361.872%2092.7406C361.872%20125.499%20294.206%20131.642%20294.206%20141.879C294.206%20152.116%20368.023%20121.404%20368.023%20141.879C368.023%20162.353%20302.408%20195.111%20273.702%20207.396C244.995%20219.68%20249.096%20254.487%20265.5%20246.297C281.904%20238.107%20335.216%20229.918%20345.468%20242.202C355.721%20254.487%20329.064%20254.487%20320.863%20272.913C312.661%20291.34%20353.67%20291.34%20361.872%20332.289C370.074%20373.237%20320.863%20344.573%20294.206%20336.383C267.55%20328.194%20279.853%20358.905%20261.399%20377.332C242.945%20395.759%20238.844%20352.763%20222.44%20344.573C206.036%20336.383%20230.642%20383.474%20222.44%20401.901C214.238%20420.328%20187.582%20399.853%20183.481%20383.474C179.38%20367.095%20179.38%20342.526%20144.522%20352.763C109.664%20363%20128.118%20303.625%20152.724%20291.34C177.33%20279.056%20183.481%20254.487%20158.877%20254.487C134.273%20254.487%20107.616%20299.53%2076.8566%20309.767C46.0971%20320.004%2072.7556%20268.819%2070.7052%20254.487C68.6547%20240.155%2048.1524%20266.771%2027.6453%20281.103C7.1382%20295.435%2015.3425%20248.344%2021.4939%20236.06C27.6453%20223.775%209.19277%20227.87%200.990892%20195.111C-7.21099%20162.353%2037.9001%20199.206%2048.1524%20182.827C58.4048%20166.448%2013.2944%20148.021%2035.8496%20141.879C58.4048%20135.736%2083.0104%20176.685%20107.616%20195.111C132.222%20213.538%20109.665%20182.827%2097.3627%20148.021C85.0598%20113.215%20138.372%20131.641%20158.877%20176.685Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%281.000000%2C0.000000%2C0.000000%2C1.000000%2C0.000%2C0.000%29%22/%3E%3C/svg%3E');
  -webkit-mask-size:100% 100%; mask-size:100% 100%; mask-repeat:no-repeat; isolation:isolate; }
.part1 .pback { position:absolute; inset:0; background:#83F362; opacity:1; }
.part1 .pgrad { position:absolute; left:0; top:0;
  transform:matrix(1.0,0.0,0.0,1.0,-14.0,-53.0) scale(0.7143); transform-origin:0 0; }
.part1 .pa0 { position:absolute; left:-8.88px; top:-29.19px;
  width:431.0px; height:572.0px; mix-blend-mode:screen; opacity:1; }

.part13 { position:relative; width:321.70px; height:349.23px;
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22321.70%22%20height%3D%22349.23%22%20viewBox%3D%220%200%20321.70%20349.23%22%3E%3Cpath%20d%3D%22M28.7898%20220.107C2.00515%20179.142%20-2.7224%20151.176%201.21651%20139.359C66.2091%2033.0081%20137.109%2031.0387%20208.009%207.40516C278.91%20-16.2283%20349.81%2011.3441%20310.421%20168.901C278.91%20294.946%20185.689%20305.45%20143.017%20294.946C123.322%20338.274%2076.0555%20361.908%2052.422%20342.213C28.7885%20322.518%2062.2706%20271.313%2028.7898%20220.107Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%28-1.000000%2C0.000000%2C0.000000%2C1.000000%2C321.703%2C0.000%29%22/%3E%3C/svg%3E'); mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22321.70%22%20height%3D%22349.23%22%20viewBox%3D%220%200%20321.70%20349.23%22%3E%3Cpath%20d%3D%22M28.7898%20220.107C2.00515%20179.142%20-2.7224%20151.176%201.21651%20139.359C66.2091%2033.0081%20137.109%2031.0387%20208.009%207.40516C278.91%20-16.2283%20349.81%2011.3441%20310.421%20168.901C278.91%20294.946%20185.689%20305.45%20143.017%20294.946C123.322%20338.274%2076.0555%20361.908%2052.422%20342.213C28.7885%20322.518%2062.2706%20271.313%2028.7898%20220.107Z%22%20fill%3D%22%23000%22%20transform%3D%22matrix%28-1.000000%2C0.000000%2C0.000000%2C1.000000%2C321.703%2C0.000%29%22/%3E%3C/svg%3E');
  -webkit-mask-size:100% 100%; mask-size:100% 100%; mask-repeat:no-repeat; isolation:isolate; }
.part13 .pback { position:absolute; inset:0; background:#024A3E; opacity:1; }
.part13 .pgrad { position:absolute; left:0; top:0;
  transform:matrix(1.0,0.0,0.0,1.0,-62.0,-43.0) scale(0.5714); transform-origin:0 0; }
.part13 .pa0 { position:absolute; left:-200.75px; top:-100.0px;
  width:822.5px; height:470.0px; mix-blend-mode:hard-light; opacity:1; }



/* ============================================================================
   2026 site-wide blocks (moved from home26.css): sec9 sponsorship area
   (printSponsorBlock) + the footer (footer.php), incl. their animated
   gradient canvases (hero26-data/gradient JS load site-wide).
   ============================================================================ */
.b-sponsors, .b-sponsors *, .b-sponsors *::before, .b-sponsors *::after,
footer.footer, footer.footer *, footer.footer *::before, footer.footer *::after {
    box-sizing: border-box;
}

/* ================= SECTION: sec9 (prep/sections/sec9.css) ================= */
/* ==========================================================================
   SEC9 — Sponsors ("We love our sponsors") — COM.PLEX 2026 HP redesign
   Figma: section '9' (42:2213), 1920x1985, coords are section-relative.
   Scoped under .b-sponsors. Load AFTER css/all.css — several rules override
   the legacy .b-sponsors / .cta-but styles there (same or higher specificity).
   Font 'leonprod' is loaded by the theme (fonts/leon/leon.css).
   ========================================================================== */

.b-sponsors {
    background: #fff; /* + global page grain/noise overlay (page-level, not per-section) */
    color: #0E1819;
}

/* Figma: top pad 155, bottom pad 1985 - (753 + 960) = 272 */
.b-sponsors .holder {
    padding: 155px 0 272px; /* overrides all.css .b-sponsors .holder { padding-bottom:150px } */
    max-width: none;
    margin: 0;
}

/* --------------------------------------------------------------------------
   1a. Bilingual header — two 353px columns, 67px gap, group centered on x=960.
   DOM order kept: .split-right (English) first = right side in RTL page.
   -------------------------------------------------------------------------- */

.b-sponsors .spons-head {
    display: flex;
    justify-content: center;
    gap: 67px;
    margin: 0 0 160px; /* wrapper gap header -> rows (Figma gap 160) */
    padding: 0;
}

.b-sponsors .spons-head .split-item {
    flex: 0 0 353px; /* overrides .splitbox .split-* { flex-basis:50% } */
    max-width: 353px;
}

.b-sponsors .split-right {
    direction: ltr;
    text-align: left;
}

.b-sponsors .bl-title {
    width: 100%; /* overrides .bl-title { width:85%; padding:150px 0 60px; text-align:center } */
    margin: 0;
    padding: 0 0 40px; /* title bottom y=491 -> button y=531 */
}

.b-sponsors .split-left .bl-title { text-align: right; }
.b-sponsors .split-right .bl-title { text-align: left; }

/* Section title: leonprod 400 70/84, #0E1819, one word per line.
   Keeps the existing table-caption/word-spacing trick (mobile reverts to
   normal wrapping, per the theme's responsive pattern). In RTL the caption
   box hugs the right edge (the center gap); the LTR eng column hugs the left. */
.b-sponsors .bl-title h2 {
    display: table-caption;
    word-spacing: 50vw;
    font-family: 'leonprod', sans-serif;
    font-weight: 400;
    font-size: 70px;
    line-height: 84px; /* 120% — 4 lines = 336px, button lands at y=531 */
    color: #0E1819;
    margin: 0;
}

.b-sponsors .bl-title h2 a {
    color: inherit;
    text-decoration: none;
}

.b-sponsors .ttl-eng {
    direction: ltr;
    text-align: left;
}

/* --------------------------------------------------------------------------
   1b. Pill CTAs — 353x62, radius 999, solid #DBF263 over a hidden radial
   gradient (revealed on hover), label 29/36.95, icon+label gap 16.
   -------------------------------------------------------------------------- */

.b-sponsors .cta,
.b-sponsors .split-left .cta,
.b-sponsors .split-right .cta {
    width: 100%; /* overrides all.css .b-sponsors .split-* .cta { width:85%; margin:30px auto 0 } */
    margin: 0;
}

.b-sponsors .cta-but-row {
    margin: 0;
}

.b-sponsors .cta-but.cta-main {
    display: block;
    width: 100%;
    font-size: 29px;
}

.b-sponsors .cta-but.cta-main a,
.b-sponsors .cta-but.cta-main.arrow-left a,
.b-sponsors .eng .cta-but.cta-main.arrow-right a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    width: 100%;
    height: 62px;
    box-sizing: border-box;
    padding: 0 28px;
    border: none;
    border-radius: 999px; /* Figma cornerRadius 800 */
    /* bottom paint: the radial gradient hidden under the solid in the design */
    background: radial-gradient(150% 250% at 18.5% 92%, #D6E368 0%, #F7B2E1 50%, #9EC5FF 100%);
    background-image: radial-gradient(150% 250% at 18.5% 92%, #D6E368 0%, #F7B2E1 50%, #9EC5FF 100%); /* kill legacy bg-arrow images */
    color: #0E1819;
    font-family: 'leonprod', sans-serif;
    font-weight: 400;
    font-size: 29px;
    line-height: 36.95px;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    top: auto;
    left: auto;
    transform: none;
}

/* top paint: resting solid fill; fades out on hover to reveal the gradient */
.b-sponsors .cta-but.cta-main a::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: #DBF263;
    opacity: 1;
    transition: opacity 0.35s ease;
}

.b-sponsors .cta-but.cta-main a:hover::before {
    opacity: 0;
}

.b-sponsors .cta-but.cta-main a:hover {
    transform: none; /* neutralize all.css scale(1.05) hover */
}

.b-sponsors .sp-lbl,
.b-sponsors .sp-arr {
    position: relative; /* above the ::before solid layer */
    z-index: 1;
}

.b-sponsors .sp-lbl {
    display: block;
    white-space: nowrap;
    /* leonprod optical re-centering: Hebrew glyphs sit low in the em box */
    top: -3px;
}

/* Latin label sits nearly centered already (descender balances) — lift less */
.b-sponsors .eng .sp-lbl {
    top: -1px;
}

/* Arrow icon: Figma 15.4x15.4 'Union' in an 18x21 frame; base glyph points
   UPPER-LEFT (Figma 42:2221, identity transform). The English pill's icon
   frame is mirrored horizontally in the design (42:2227/42:2228: bbox offset
   flips vs. relativeTransform) -> upper-RIGHT: scaleX(-1), not rotate(180). */
.b-sponsors .sp-arr {
    display: block;
    flex: 0 0 auto;
    width: 15.4px;
    height: 15.4px;
}

.b-sponsors .eng .sp-arr {
    transform: scaleX(-1);
}

/* The sponsor pills draw their arrow as a real inline svg.sp-arr, so the shared
   .arrow-left / .eng .arrow-right pseudo-arrow (see ~line 3608) is a duplicate
   here. It went unnoticed in Hebrew because the untransformed ::after paints
   below the opaque a::before pill fill; the English one carries
   transform: scaleX(-1), which promotes it above that fill and made it show. */
.b-sponsors .cta-but.cta-main.arrow-left a::after,
.b-sponsors .eng .cta-but.cta-main.arrow-right a::after {
    content: none;
}

/* --------------------------------------------------------------------------
   1c. Sponsor tier rows — 1200 wide cards, radius 24, 2px 10% ink border,
   pad 40/60, label right (RTL) + logos left, 40px between cards.
   -------------------------------------------------------------------------- */

.b-sponsors .sponsors {
    max-width: 1200px;
    margin: 0 auto;
}

.b-sponsors .sp-level {
    max-width: none; /* overrides all.css var(--maxsection) cap */
    margin: 0 0 40px;
    background: #fff;
    border: 2px solid rgba(14, 24, 25, 0.1);
    border-radius: 24px;
    font-size: 29px; /* replaces the 0.8em/em scaling from responsive.css */
}

.b-sponsors .sp-level:last-child {
    margin-bottom: 0;
}

.b-sponsors .sp-level-wrap {
    width: auto;
    height: auto;
    background: none;
}

.b-sponsors .sp-level-int {
    display: flex; /* overrides all.css grid + border:2px solid var(--ink) */
    grid-template-columns: none;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    padding: 40px 60px;
    border: none;
    min-height: 80px; /* content 80 + 2x40 pad = design row height 160 */
    box-sizing: content-box;
}

/* Tier label — two stacked lines (heb over eng), leonprod 29/40.6, right aligned.
   RTL row + DOM order (title first): title lands at inline-start = RIGHT
   (right text edge at x=1500), logos at inline-end = LEFT — exactly the design. */
.b-sponsors .sp-level-title {
    font-family: 'leonprod', sans-serif;
    font-weight: 400;
    font-size: 29px;
    line-height: 40.6px; /* 140% */
    color: #0E1819;
    text-align: right;
    display: block;
    height: auto;
    padding: 0;
    flex: 0 0 auto;
}

.b-sponsors .sp-level-title span {
    display: block; /* stack .heb / .eng (old CSS had them side by side) */
    white-space: nowrap;
}

/* Logos — left side, LTR run, gap 40, height-capped at 80px */
.b-sponsors .sp-level-sponsors {
    display: flex;
    direction: ltr;
    flex-wrap: wrap;
    align-items: center;
    gap: 40px; /* replaces grid gaps 45/3em */
    padding: 0; /* card padding does the work (was padding 55/100) */
}

.b-sponsors .sponsor img {
    display: block;
    max-height: 80px;
    width: auto;
    /* max-width intentionally NOT set here — the legacy all.css caps
       (base + per-tier overrides like PLATINUM) govern, per user request */
}

/* ==========================================================================
   Responsive — follows the theme's existing breakpoints (responsive.css)
   ========================================================================== */

/* <=1280 (cf. responsive.css 1045-1064): shrink rows */


/* <=1024 (cf. responsive.css 1817-1907 — the theme's main mobile switch) */


/* <=400 (cf. responsive.css 4593): CTA padding fix */


/* print (cf. responsive.css 4767+): keep hiding the block */


/* ================= SECTION: footer (prep/sections/footer.css) ================= */
/* ============================================================
   COM.PLEX 2026 — footer (Figma node 42:2318, 1920x807, bg #0E1819)
   Scope: everything under #footer.footer (id beats theme .footer rules).
   Asset urls are relative to prep/sections/ (assets/footer/...).
   When moved into the theme css/ dir change them to ../images/... paths.
   Replaces the .footer block of css/all.css (bg var(--ink), footer.webm decor).
   ============================================================ */

#footer.footer {
    position: relative;
    background: #0E1819;
    color: #fff;
    overflow: hidden;
    font-family: 'leonprod', 'leonprod', arial, sans-serif;
}

/* film grain — Figma NOISE effect, black @ 0.25 (sits over the bg fill, under content) */
#footer.footer::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: var(--figma-noise);
    opacity: var(--noise-opacity);
}

#footer .holder {
    position: relative;
    z-index: 10;
    width: calc(100% - 120px);
    max-width: 1600px;
    margin: 0 auto;
    padding: 83px 0 145px;
}

/* ---------------- upper zone — newsletter ---------------- */

#footer .f-upper {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-bottom: 81px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

#footer .f-title {
    /* Figma box is 490w, but the real leonprod runs ~19% wider than Figma's Leon
       at the same size — keep the specified 70px and hug one line instead */
    width: auto;
    white-space: nowrap;
    height: 145px;
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    font-family: 'leonprod', sans-serif;
    font-weight: 400;
    font-size: 70px;
    line-height: 94.5px;
    color: #fff;
    text-align: right;
}

#footer .f-exp {
    width: 250px; /* Figma 227; widened for the wider webfont to keep the 3-line wrap */
    min-height: 99px;
    display: flex;
    align-items: center;
}

#footer .f-exp p {
    margin: 0;
    font-size: 22px;
    line-height: 33px;
    color: #fff;
    text-align: right;
}

#footer .f-form {
    width: 591px;
    flex: 0 0 auto;
}

#footer .f-form form {
    position: relative;
}

#footer .f-form input[type=email] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 81px;
    background: #fff;
    border: none;
    border-radius: 4px;
    padding: 0 32px;
    font-family: 'leonprod', sans-serif;
    font-size: 24px;
    line-height: 81px;
    color: var(--ink);
    direction: ltr;
    text-align: right;
}

#footer .f-form input[type=email]::placeholder {
    color: rgba(0, 0, 0, 0.5);
    opacity: 1;
}

#footer .f-form .row2 {
    margin-top: 18px;
    position: relative;
    display: block;
}

#footer .f-form .cta {
    position: relative;
    margin: 0;
}

#footer .cta-but-row {
    display: flex;
    flex-direction: row-reverse; /* RTL: puts .cta-but at the LEFT, privacy note at the RIGHT */
    justify-content: space-between;
    align-items: center;
}

#footer .cta-but.cta-main {
    font-size: 29px;
    display: block;
}

#footer .cta-but.cta-main a {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 339px;
    height: 62px;
    padding: 0 0 6px 0;
    border: none;
    border-radius: 999px;
    background: var(--lime);
    box-shadow: 15px 40px 80px 10px rgba(0, 0, 0, 0.7);
    color: #0E1819;
    font-family: 'leonprod', sans-serif;
    font-weight: 400;
    font-size: 29px;
    line-height: 1;
    text-decoration: none;
}

/* the #footer id out-specifies the canonical .cta-but.cta-main a:hover, so the
   shared hover fill has to be restated here */
#footer .cta-but.cta-main a:hover {
    background: var(--cta-hover-grad);
    transform: scale(1.04);
}

#footer .f-privacy {
    display: flex;
    align-items: flex-start;
    width: 236px;
    gap: 14px;
}

#footer .f-privacy-icon {
    flex: 0 0 23px;
    width: 23px;
    height: 23px;
    margin-top: 3px;
    background: url('../images/hp26/footer/privacy-icon.svg') center / contain no-repeat;
}

#footer .f-privacy-txt {
    font-size: 16px;
    line-height: 25.6px;
    letter-spacing: 0.32px;
    color: #fff;
    text-align: right;
}

/* form functional states (JS contract: error / sending / sent) */

#footer form .invalid {
    display: none;
    color: #F54040;
    margin-top: 9px;
    max-width: 350px;
    width: 100%;
    font-size: 17px;
}

#footer form.error .invalid {
    display: block;
}

#footer form.error input[type=email] {
    box-shadow: inset 0 0 0 4px #F54040;
}

#footer form.sending .the-form,
#footer form.sent .the-form {
    display: none;
}

#footer form .the-loader {
    display: none;
}

#footer form.sending .the-loader {
    display: flex;
    align-items: center;
    min-height: 161px;
    font-size: 24px;
    color: #fff;
}

#footer form .the-confirmation {
    display: none;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 4px;
    padding: 20px 32px 28px;
    color: #fff;
}

#footer form.sent .the-confirmation {
    display: block;
}

#footer .the-confirmation h3 {
    margin: 0;
    font-family: 'leonprod', sans-serif;
    font-weight: 700;
    font-size: 26px;
    line-height: 1.4;
}

#footer .the-confirmation p {
    margin: 12px 0 0;
    font-size: 18px;
    line-height: 28.8px;
}

#footer .heart {
    width: 30px;
    height: 29px;
    display: inline-block;
    vertical-align: 0;
    background: #DBF263;
    -webkit-mask: url('../images/hp26/footer/footer-heart.svg') no-repeat center / contain;
    mask: url('../images/hp26/footer/footer-heart.svg') no-repeat center / contain;
}

/* ---------------- lower zone ---------------- */

#footer .columns.lower {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    column-gap: 213px;
    margin-top: 87px;
    padding: 0;
    position: relative;
    z-index: 15;
}

#footer .columns.lower .col1 {
    flex: 0 0 auto;
    width: 709px;
    padding: 0;
}

#footer .columns.lower .col1 .col-content {
    display: flex;
    gap: 60px;
    max-width: none;
    font-size: 18px;
    line-height: 28.8px;
}

#footer .ulogo {
    flex: 0 0 117px;
}

#footer .ulogo a {
    display: block;
    border: none;
    text-decoration: none;
}

#footer .ulogo img {
    width: 117px;
    max-width: 117px;
    height: auto;
    display: block;
}

#footer .columns.lower .col1 .col-text {
    width: 532px;
}

#footer .columns.lower .col1 p {
    margin: 0;
    max-width: none;
    font-size: 18px;
    line-height: 28.8px;
    letter-spacing: 0.36px;
    color: #fff;
}

#footer .columns.lower .col1 p.f-ribbon {
    margin-top: 24px;
}

#footer .col1 a {
    color: #fff;
    border-bottom: none;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#footer .col1 a:hover {
    text-decoration-color: #DBF263;
}

#footer .footer-line {
    margin-top: 48px;   /* bottom line of the footer (user request) */
    text-align: right;
    font-size: 16px;
    line-height: 25.6px;
    letter-spacing: 0.32px;
    color: #fff;
}

#footer .footer-line .copyright-symbol {
    color: #fff;
}

/* links menu */

#footer .columns.lower .col2 {
    flex: 0 0 auto;
    width: 186px;
    padding: 0;
    font-family: 'leonprod', sans-serif;
    font-size: 22px;
    font-weight: 700;
}

#footer .footer-nav ul {
    display: flex;
    flex-direction: column;
    row-gap: 23px;
    margin: 0;
    padding: 0;
    list-style: none;
    max-width: none;
}

#footer .footer-nav li {
    text-align: right;
    line-height: 28px; /* kill the inherited 1.6em strut so the 51px top-to-top rhythm holds */
}

#footer .footer-nav a {
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 22px;
    line-height: 28px;
    white-space: nowrap; /* longest item overruns the 186px Figma box with the wider webfont */
}

/* ---------------- decor — brain parts 1 + 13 (bottom-left) ----------------
   live hero-pipeline stacks (.part1/.part13: mask + .pback + .pgrad gcanvas
   + .pa0 art). The .f-partN wrappers are zero-size anchors at the design
   spots; --ps scales the fixed-size part stack from its bottom-left corner
   (replaces the old composite <img> width steps: 368 -> 276 -> 202 -> 166). */

#footer .f-decor {
    position: absolute;
    inset: 0;
    z-index: 5; /* below .holder (10): under narrow viewports columns slide over the parts */
    pointer-events: none;
}

#footer .f-decor img {
    max-width: none; /* .pa0 art bleeds past the part box; the mask clips it */
}

#footer .f-decor .f-part1,
#footer .f-decor .f-part13 {
    position: absolute;
    width: 0;
    height: 0;
}

#footer .f-decor .part {
    position: absolute;
    left: 0;
    bottom: 0;
    transform-origin: 0 100%;
    transform: scale(var(--ps, 1));
}

#footer .f-decor .f-part1 {
    left: 12px;
    bottom: 69px;
    --ps: 1;
}

#footer .f-decor .f-part13 {
    left: 250px;
    bottom: -18px;
    --ps: 1;
}

/* ============================================================
   responsive — follows css/responsive.css footer patterns
   ============================================================ */


/* ================= TASK C: section patterns + shared noise overlays ================= */
/* ====================================================================
   Decorative line-art patterns extracted from the Figma file itself
   (.fig vector networks; geometry verified against the API node boxes):
   - sec2 'what'  : node 42:1748 (3 vectors, stroke #0E1819 @10%, w2)
   - workshops    : section-4 'Pattern' clusters 42:2041 / 42:2019 / 42:2028
   - orgs (5a)    : section-4 'Pattern' cluster 42:2024
   The section-4 Pattern frame renders with blend DIFFERENCE (white
   strokes @10%) -> mix-blend-mode:difference on the overlays.
   Shared film grain: --cta-noise (Figma section NOISE, size .5, black
   @25%, kept subtler) applied section-level per the design on:
   audience (sec3), workshops, b-cta, b-code, sponsors.
   ALL overlays are decorative: pointer-events:none, aria-hidden.
   Placement: design coords @1920 canvas, anchored to section center
   (left:calc(50% + (artCenterX - 960px))) so they track at any width.
   ==================================================================== */

:root {
    --cta-noise: var(--figma-noise);   /* alias */
    /* THE single noise for the whole site: the Figma NOISE effect
       (Multi, noise size .5, density 100%). Full alpha on purpose --
       strength is NOT baked in; the `opacity` on .noise-after is the ONE knob
       (0.25 == Figma's 'Opacity 25%'). --cta-noise/--card-noise alias this. */
    --noise-opacity: 0.12;   /* THE noise strength knob, site-wide */
    --figma-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' stitchTiles='stitch' numOctaves='3' seed='7116'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='2' intercept='-0.5'/%3E%3CfeFuncG type='linear' slope='2' intercept='-0.5'/%3E%3CfeFuncB type='linear' slope='2' intercept='-0.5'/%3E%3CfeFuncA type='discrete' tableValues='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
    /* Alpha-speckle grain for the pale card gradients (workshop cards). The
       pattern.svg/Figma recipe with two render-breaking fixes: baseFrequency
       2 -> 0.9 (at 2.0 Chrome samples the Perlin lattice at integers and the
       whole tile renders EMPTY — this is why .b-what::before shows nothing),
       and alpha 0.25 -> 0.34, calibrated so a headless-Chrome render of a card
       (this grain + the --cta-noise section wash on top) matches the Figma
       homepage.png export grain (high-freq std ~13.8).
       Alpha compositing (not overlay blending) is deliberate: overlay grain
       vanishes near white, and the card gradients are mostly near-white. */
    --card-noise: var(--figma-noise);  /* alias */
}

/* ---- sec2 'what': the real 42:1748 pattern (replaces the hero-path stand-in).
   Art box (tight curve bounds): section-rel x 843..1912, y -270..545. ---- */
.b-what .what-pattern {
    top: -270px;
    left: calc(50% + 417.5px);
    width: 1069px;
    height: 815px;
}

/* ---- workshops: the three Pattern clusters over the block ---- */
.b-workshops {
    position: relative;
    isolation: isolate; /* keep the difference-blend inside the block */
}

.b-workshops .ws-pattern {
    position: absolute;
    transform: translateX(-50%);
    z-index: 3; /* above the cards, below the grain — Figma z: content < Pattern < section noise */
    mix-blend-mode: difference;
    pointer-events: none;
}

.b-workshops .ws-pattern img,
.b-orgs .orgs-pattern img {
    display: block;
    width: 100%;
    height: 100%;
}

/* 42:2041 — over the header + top of card 1 (design y -82..783 rel block) */
.b-workshops .wsp-a {
    top: -82px;
    left: calc(50% - 517px);
    width: 816px;
    height: 865px;
}

/* 42:2019 — mid-left (design y 979..1674) */
.b-workshops .wsp-b {
    top: 979px;
    left: calc(50% - 822.5px);
    width: 713px;
    height: 695px;
}

/* 42:2028 — bottom-right, bleeds 210px past the block bottom (cropped, as the design crops at the canvas) */
.b-workshops .wsp-c {
    bottom: -210px;
    left: calc(50% + 744.5px);
    width: 766px;
    height: 838px;
}

/* ---- orgs (5a): Pattern cluster 42:2024 + the design's 170px dark tail
   after the logos, with the pattern continuing through it ---- */
.b-orgs {
    position: relative;
    /* clip only horizontally (the logo marquee); the orgs pattern must show
       uncropped above the section top and below its bottom (user request) */
    overflow-x: clip;
    overflow-y: visible;
    isolation: isolate;
    padding-bottom: 170px; /* design: 5a bottom (y=6132) -> section-4 end (y=6302) */
}

.b-orgs .orgs-pattern {
    position: absolute;
    bottom: -102px; /* art bottom sits 102px past the section end in the design */
    left: calc(50% + 522.5px);
    transform: translateX(-50%);
    width: 1123px;
    height: 1051px;
    z-index: 3;
    mix-blend-mode: difference;
    pointer-events: none;
}

/* ---- section-level grain (same token as .b-cta) ---- */
/* audience: retire the bespoke ::before tile for the shared token; the Figma
   NOISE effect sits over the whole section render, so lift it above content */
.b-audience.sec3::before {
    background-image: var(--cta-noise);
    opacity: var(--noise-opacity);
    z-index: 20;
}

/* shared section grain — one rule, so every section (and notably b-code and the
   b-sponsors block right after it) carries the IDENTICAL noise.
   Was --cta-noise at 0.09 alpha, which is invisible; now the real Figma NOISE,
   dialled back from its 25% since that reads heavy at section scale. */
/* Figma NOISE. Add `noise-after` to any positioned element to grain it;
   the sections below are grained by name because their markup is shared.
   The list is EVERY top-level section frame, because that is what the design
   does — in figma-v2-raw.json every child of the HP page frame carries its own
   NOISE effect (visible:true, size .5, density 1, blend NORMAL):
     1 (via Hero/BG 42:1660) . 2 'what' 42:1742 . 3 42:1753 . 4 42:1903
     (video+workshops+testimonials+orgs) . 5 42:2046 . 9 42:2213 . footer 42:2318
   So a section with no grain is a bug, not a style choice. b-sp-gallery is the
   one exception: it is transparent and the design grains that band from
   Hero/BG, so .hero-grain covers it (see home26.css).
   .single .alt is the single-entity (activity/speaker/venue/workshop) section
   frame — one flat top-level section per template, so it grains like the HP
   sections above without nesting into an already-grained block. */
.noise-after::after,
.b-cta::after,
.b-video::after,
.b-orgs::after,
.b-workshops::after,
.b-code::after,
.b-sponsors::after,
.b-testimons::after,
.single .alt::after,
.page .alt::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--figma-noise);
    opacity: var(--noise-opacity);   /* Figma NOISE opacity — the single strength knob */
    pointer-events: none;
}

/* the grain is inset:0 against the section, so the section must be the
   containing block (.b-testimons had no position of its own) */
.b-testimons { position: relative; }
.b-testimons::after { z-index: 4; } /* over the cards' canvases + tst-pattern (3) */

.b-workshops::after { z-index: 4; }

/* `.alt` is the generic internal-page section (register, program, about, blog...),
   so unlike the homepage blocks its content is not a known quantity. At z-index
   auto the grain sat UNDER anything lifted and left bare islands: the register
   promo bar (z50), the program tickers (z10) and its register CTA band (z15) —
   noise everywhere around them, none on them. 51 clears the highest z-index in
   use inside these sections (50, the promo bar); popups are siblings of .alt,
   never descendants, so nothing modal gets buried. The design backs this: the
   NOISE is a frame effect that renders over the frame's whole content. */
.page .alt::after,
.single .alt::after { z-index: 51; }

/* orgs already isolates (so .orgs-pattern's difference blend stays in-section);
   4 clears that pattern's z-index:3. The pattern bleeds 102px past the section
   on purpose, so the grain (inset:0) stops at the section box, as in the design
   where the NOISE is a section-frame effect. */
.b-orgs::after { z-index: 4; }

/* video: 20 grains the band (title + bg) like the design's frame-4 NOISE, and
   clears the legacy idle content (.ticker, .cta play button, both z-index 10).
   The player is deliberately NOT grained — grain on a moving picture reads as
   compression artefacts — but the 2026 HP no longer reaches that via .playing:
   its markup is just .b-video-int > .video-wrap > iframe, with no .cta/.hider/
   .close for initVideo() to bind, so the player is embedded from first paint and
   .playing never lands. .b-video-int lifts it out of the grain instead (z-index
   21, home26.css). The .playing rules above are legacy, kept for older years. */
.b-video::after { z-index: 20; }

.b-code {
    position: relative;
}

.b-code::after { z-index: 2; } /* over the gradient card (.b-code-wrap z1) */

.b-cta::after { z-index: 2; } /* over the headline + pill, as in .b-code */

.b-sponsors {
    position: relative;
}

.b-sponsors::after { z-index: 30; }

/* ---- responsive: theme precedent (what-pattern) — drop line art on phones ---- */


/* ================= SECTION: workshops (moved from home26.css) ==============
   Site-wide 2026 workshops design (Figma 42:1967). Was homepage-only in
   home26.css; relocated so page-program.php renders identically. Appended
   last so it overrides the legacy .b-workshops rules above at equal
   specificity, exactly as home26.css did by loading later. */
/* ================= SECTION: workshops (prep/sections/workshops.css) ================= */
/* ============================================================
   COM.PLEX 2026 — Workshops block (Figma node 42:1967, section '4')
   Scope: everything under .b-workshops (loads AFTER all.css and
   overrides its legacy .bws / .sc-meta / .ws-tkt-info rules).
   Design coords: frame 1919x2206, pad 80/160/160, cards 1600x551.
   ============================================================ */

.b-workshops {
    background: #0E1819; /* section-4 bg (was var(--ink)) */
    padding: 64px 0 160px; /* Figma pad-top 80 to title CAP-top (leon cap 0.718em) */
    /* clip only horizontally (the patterns run past the viewport); wsp-a must
       show its 82px bleed above the section top, overlapping .b-video — same
       treatment as .b-orgs. `clip` not `hidden` on purpose: hidden+visible
       computes to hidden/auto, which re-clips and adds a scroll container.
       wsp-c's 210px bottom bleed stays hidden regardless — .b-testimons is a
       later sibling with an opaque bg, so it paints over it. */
    overflow-x: clip;
    overflow-y: visible;
}

.b-workshops .holder {
    width: calc(100% - 100px);
    max-width: 1600px;
    margin: 0 auto;
    position: relative;
}

/* ---- section header (overrides global .bl-title padding/width/font) ---- */

.b-workshops .bl-title {
    font-family: leonprod, arial, "Helvetica Neue", sans-serif;
    width: 100%;
    max-width: 1201px;
    margin: 0 auto 82px; /* Figma gap 90 subtitle-baseline -> cards top */
    padding: 0;
    text-align: center;
    color: #fff;
}

.b-workshops .bl-title h2 {
    font-weight: 400;
    font-size: 70px;
    line-height: 75px; /* Figma 75px */
}

.b-workshops .bl-title h3 {
    font-weight: 400;
    font-size: 29px;
    line-height: 36.95px;
    margin-top: 15px; /* Figma cap-to-cap gap 32 */
}

/* ---- cards column ---- */

.b-workshops .workshops {
    display: flex;
    flex-direction: column;
    gap: 60px;
}

/* ---- card ----
   1600 x 551 (min), no radius, no border, content vertically centered.
   RTL grid: col 1 = speaker zone (right, 676px = 42.25%),
             col 2 = text zone   (left,  924px = 57.75%; text 800 flush
             to its inline-start edge, 124px = 13.42% empty at inline-end). */

.b-workshops .bws {
    position: relative;
    /* NO isolation here: it existed only for the old .bws::before card grain (now
       gone — the section grain covers the cards). While it was isolating, it
       trapped .seats-limit's z-index inside the card, so the pill could never
       rise above .ws-pattern (z:3), which lives up in the .b-workshops context. */
    display: grid;
    grid-template-columns: 42.25% 57.75%;
    grid-template-rows: auto auto;
    align-content: center;
    min-height: 551px;
    padding: 60px 0;
    box-sizing: border-box;
    border: none;
    border-radius: 0;
    margin-bottom: 0; /* gap handled by .workshops */
    background: #fff;
    color: #0E1819;
    overflow: visible;
}

/* (no card-level grain: the shared .b-workshops::after section grain already
   covers the cards with the one noise) */

/* per-card radial gradients, cycling for >3 workshops */
.b-workshops .workshops .bws:nth-child(3n+1) {
    background: #fff radial-gradient(2037px 670px ellipse at 36.25% 4.7%, #FFFFFF 2.4%, #DFFCC7 14.4%, #FFFFFF 28.3%, #E8C0FF 77.1%, #FFFFFF 100%);
}

.b-workshops .workshops .bws:nth-child(3n+2) {
    background: #fff radial-gradient(2128px 914px ellipse at 37.97% -28.6%, #FFFFFF 0%, #E8C0FF 25.6%, #FFFFFF 71.7%, #DFFCC7 85.6%, #FFFFFF 97.6%);
}

.b-workshops .workshops .bws:nth-child(3n+3) {
    background: #fff radial-gradient(3180px 1208px ellipse at 59.1% -17.5%, #FFFFFF 2.4%, #E5FFD1 14.4%, #FFFFFF 21.7%, #9EC5FF 60.5%, #FFFFFF 100%);
}

/* all text/links inside a card are dark (all.css forces #fff) */
.b-workshops .bws a {
    color: #0E1819;
    text-decoration: none;
}

/* ---- speaker zone (grid col 1 = right side in RTL) ---- */

.b-workshops .ws-photo {
    grid-column: 1;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0;
    overflow: visible;
}

.b-workshops .sphotos {
    display: flex;
    gap: 37.5px;
}

.b-workshops .ws-spk a {
    display: block;
    position: relative;
    isolation: isolate; /* keep the grain compositing onto the photo only */
    border-radius: 24px;
    line-height: 0;
    /* Same deliberate exception as the program page's .sc-single: the spec is
       "B&W + noise at rest, colour + NO noise on hover", which no section-wide
       layer can do — clearing the photo's own grain would still leave
       .b-workshops::after on top of it. 5 clears that ::after's z-index:4, so
       the photo owns its grain and the hover can actually take it away.
       isolation:isolate alone did NOT do this: it makes a stacking context for
       the photo's own children but leaves the anchor itself at z-index auto (0),
       i.e. under the section grain. */
    z-index: 5;
}

/* the photo's own grain — the only noise it gets (the section's never reaches
   it, see z-index above), so the hover below clears it outright.
   Mobile has no hover and kills this via `content:none` (responsive.css). */
.b-workshops .ws-spk a::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 24px;
    background-image: var(--figma-noise);
    opacity: var(--noise-opacity);
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.b-workshops .ws-spk a:hover::after {
    opacity: 0;
}

/* No noise layer of its own: .b-workshops::after already lays the single
   site-wide grain over the whole section, photos included. Giving the photo a
   second layer double-grained it. (replaced the #9EC5FF 20% colour-blend tint) */

.b-workshops .ws-spk img,
.b-workshops .ws-photo.multi .ws-spk img {
    display: block;
    width: 230.75px;
    height: 230.75px;
    object-fit: cover;
    border-radius: 24px;
    padding: 0;
    /* desktop resting state: black & white; hover restores full colour */
    filter: grayscale(1);
    transition: filter 0.3s ease;
}

.b-workshops .ws-spk a:hover img {
    filter: grayscale(0);
}

/* two speakers: side-by-side columns, no overlap (kills legacy offsets) */
.b-workshops .ws-photo.multi .sphotos .ws-spk:nth-child(2) {
    position: static;
    right: auto;
    top: auto;
}

.b-workshops .snames {
    display: flex;
    gap: 37.5px;
    position: static;
    left: auto;
    transform: none;
    margin-top: 32px; /* Figma cap-to-cap gap 40 below photo */
}

.b-workshops .snames .entity-name {
    position: static;
    left: auto;
    transform: none;
    margin-bottom: 0;
    width: 230.75px;
    text-align: right;
}

.b-workshops .snames .entity-name a,
.b-workshops .wsidx-even .entity-name a {
    font-family: leonprod, arial, "Helvetica Neue", sans-serif;
    font-size: 29px;
    line-height: 1.2;
    font-weight: 400;
    color: #0E1819;
    background: none;
    padding: 0;
    transform: none;
    white-space: normal;
    display: inline;
}

/* legacy all.css leak: .bws:nth-child(3n+X) .entity-name a paints kpurple/kpeach/kblue
   highlight behind the speaker name (specificity 0,4,1 — beats the override above).
   Figma 42:1985: the name is plain #0E1819 text, no background. */
.b-workshops .bws:nth-child(3n+1) .entity-name a,
.b-workshops .bws:nth-child(3n+2) .entity-name a,
.b-workshops .bws:nth-child(3n+3) .entity-name a {
    background: none;
}

.b-workshops .entity-name a:hover {
    transform: none;
    text-decoration: underline;
    text-decoration-color: #DBF263;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

/* ---- text zone (grid col 2 = left side in RTL) ---- */

.b-workshops .ws-title,
.b-workshops .ws-info {
    grid-column: 2;
    padding-inline-end: 13.42%; /* 124 / 924 — empty strip at card's far edge */
    text-align: right;
}

.b-workshops .ws-title {
    grid-row: 1;
    margin-bottom: 0;
}

.b-workshops .ws-title h2 {
    font-size: 44px;
    line-height: 56px; /* Figma 56.06 */
    font-weight: 400;
}

.b-workshops .ws-title h2 a {
    font-family: leonprod, arial, "Helvetica Neue", sans-serif;
    font-size: inherit;
    line-height: inherit;
    font-weight: 400;
}

.b-workshops .ws-title h2 a:hover,
.kpink .b-workshops .ws-title h2 a:hover,
.kblue .b-workshops .ws-title h2 a:hover {
    color: #0E1819;
    text-decoration: underline;
    text-decoration-color: #DBF263;
    text-decoration-thickness: 3px;
    text-underline-offset: 6px;
}

.b-workshops .ws-info {
    grid-row: 2;
    margin-top: 31px; /* Figma cap-to-cap gap 50 title -> desc */
}

.b-workshops .ws-desc,
.b-workshops .ws-desc a {
    font-family: leonprod, arial, "Helvetica Neue", sans-serif;
    font-size: 22px;
    line-height: 33px; /* 150% */
    letter-spacing: 0.44px;
    color: #0E1819;
}

/* "תוכנית הסדנה" link — kept (not in Figma), restyled for light cards */
.b-workshops .ws-desc p.ws-link {
    margin-top: 24px;
    margin-bottom: 0;
}

.b-workshops .ws-desc p.ws-link a {
    border-bottom: 2px solid var(--ink);
    padding-bottom: 2px;
    letter-spacing: 0;
}

.b-workshops .ws-desc p.ws-link a:hover {
    border-color: var(--lime);
}

/* ---- meta row (uxiTheme::printScheduleDate output) ----
   right-aligned to the text column; RTL order date | time | venue
   with 2x36 lime dividers, 24px gap on each side. */

.b-workshops .sc-meta {
    margin: 30px 0 0; /* Figma cap-to-cap gap 40 desc -> meta */
    color: #0E1819;
}

.b-workshops .sc-meta ul {
    display: flex;
    flex-wrap: nowrap;
    grid-column-gap: 50px; /* 24 + 2 (divider) + 24 */
    gap: 50px;
    justify-content: flex-start;
    line-height: normal;
}

.b-workshops .sc-meta li {
    font-family: leonprod, arial, "Helvetica Neue", sans-serif;
    font-size: 22px;
    line-height: 28px; /* Figma 28.03 */
    white-space: nowrap;
    position: relative;
}

/* lime vertical rule instead of the legacy '//' */
.b-workshops .sc-meta li::after,
.kpink .b-workshops .sc-meta li::after,
.kblue .b-workshops .sc-meta li::after {
    content: '';
    position: absolute;
    left: -26px; /* centered in the 50px gap (next item is leftward in RTL) */
    top: 50%;
    transform: translateY(-50%);
    width: 2px;
    height: 36px;
    background: #DBF263;
}

.b-workshops .sc-meta li:last-child::after {
    display: none;
}

/* ---- remaining-tickets chip (Figma 42:2396 'Frame 8338': lime pill,
   radius 800, padding 19/28/22, gap 16, 29px text #0E1819, ends with the
   'Union' arrow glyph (42:2398) rotated -135deg = pointing DOWN).

   The pill recipe is shared with the single-workshop header (.workshop); each
   context adds its own placement below — card overlay here, inline badge
   there. Deliberately NOT the site-wide .seats-limit base: the program table
   (.ptable) and the registration page still ride the legacy wave sticker. ---- */

.b-workshops .ws-tkt-info.seats-limit,
.workshop .ws-tkt-info.seats-limit {
    width: auto;
    height: auto;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: #DBF263;
    color: #0E1819;
    font-family: leonprod, arial, "Helvetica Neue", sans-serif;
    font-size: 29px;
    line-height: 1;
    /* Figma 19/28/22 assumes cap-height trim; the 29px line box already
       carries ~8px of leading, so block padding drops to 15/18 → 62px tall */
    padding: 15px 28px 18px;
    border-radius: 800px;
    -webkit-mask-image: none;
    mask-image: none;
}

/* placement: overlay, straddling the card's top edge */
.b-workshops .ws-tkt-info.seats-limit {
    position: absolute;
    top: -31px; /* half the 62px pill overlaps the card's top edge */
    left: 50%;  /* centered to the card (user request) */
    right: auto;
    transform: translateX(-50%);
    z-index: 20; /* above the ws-pattern (3) and section grain (4) — user request */
}

/* leonprod Hebrew sits low in its em box (cf. hero .cta-main .main lift) */
.b-workshops .ws-tkt-info.seats-limit span,
.workshop .ws-tkt-info.seats-limit span {
    position: relative;
    top: -3px;
}

/* down-pointing arrow closing the badge (leftmost in RTL flow) */
.b-workshops .ws-tkt-info.seats-limit::after,
.workshop .ws-tkt-info.seats-limit::after {
    content: '';
    flex: none;
    width: 20px;
    height: 23px;
    pointer-events: none;
    background: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%22-3.2 -3.2 21.8 21.8%22%3E%3Cpath transform=%22rotate(-135 7.7 7.7)%22 d=%22M14.1572 2.5459L4.34668 2.5459L15.3955 13.5957L13.5957 15.3965L2.5459 4.34668L2.5459 14.1572L0 14.1572L0 0L14.1572 0L14.1572 2.5459Z%22 fill=%22%230E1819%22/%3E%3C/svg%3E') no-repeat center / contain;
}

/* ---- soldout overlay: no block-specific rules. The site-wide base above
        (.ws-tkt-info.soldout-info / .soldout-ticket) is the whole design; the
        card only has to be the positioning context, which .bws already is. ---- */

/* ---- english workshop: mirror the card ---- */

.b-workshops .bws.english {
    direction: ltr;
}

.b-workshops .bws.english .ws-title,
.b-workshops .bws.english .ws-info,
.b-workshops .bws.english .snames .entity-name {
    text-align: left;
}

.b-workshops .bws.english .sc-meta li::after {
    left: auto;
    right: -26px;
}

.b-workshops .bws.english .ws-tkt-info.seats-limit {
    right: auto;
    left: 40px;
    transform: none;
}

/* ============================================================================
   2026 speaker card — workshop head (single-ev_event.php)
   Ports the HP hover panel (css/home26.css:709-848, Figma 42:2391) onto the
   workshop head speaker tile, minus the reveal: the park-and-rise is a gallery
   discovery affordance for a strip of 5, but there are only 1-2 speakers here
   and the name is primary content, so the card stays permanently up.

   The design is restated rather than shared: home26.css is HP-only, and its
   selectors are .b-sp-gallery.spks26-scoped, so they would not match here.

   Units: the HP sizes everything in vw against a 20vw (= 392px @1920) tile.
   This tile is a fixed px width that changes at three breakpoints (315 / 240 /
   180 — all.css:5726, responsive.css:66, responsive.css:1601), so vw carries no
   meaning against it. The tile is made a query container instead and the same
   design ratios are expressed in cqw, where 100cqw = the tile (and therefore
   the card) width: f = 100/392 per design px.

   Shared by the workshop header (.ws-speakers) and the speakers archive
   (.speaker-list .spk-grid) — both print the same markup via
   uxiTheme::printSpeaker(..., $gradientPanel = true). Both tiles are 1:2.3, so
   the cqw ratios land identically; the archive tile just tracks the grid column
   (4/3/2/1 across breakpoints) instead of a fixed 315px.

   On the archive the card is always visible — it is not the homepage
   .b-sp-gallery hover reveal (.home .spk.item .spk-info is display:none until
   .hoverized, all.css:2171). The archive's own hover effect (the video overlay,
   z-index 2) plays behind the card.

   The workshop side is desktop only — .speaker-wrap is display:none <= 768
   (responsive.css:3182), where .mobile-speaker-wrap takes over. The archive has
   no mobile fallback markup, so the card stays on at every width.

   These selectors carry one more class than the legacy .speaker-list .spk.item
   rules above (all.css:2167, 5148, 5578, 5600) so they win on specificity; the
   .eng variants of those (5587, 5609+) never match — printSpeaker() puts .eng on
   the article wrapper, not on .spk-name/.spk-role — and the card design has no
   notion of the flip anyway.
   ============================================================================ */

.workshop .ws-head-holder .ws-speakers .spk.item,
.speaker-list .spk-grid .spk.item {
    container-type: inline-size;
}

/* the archive keeps the full-colour photo the workshop header has, instead of
   the 2025 grayscale-until-hover treatment (all.css:5533) */
.speaker-list .spk-grid .spk-photo {
    filter: none;
}

/* the card itself */
.workshop .ws-head-holder .ws-speakers .spk.item .spk-info,
.speaker-list .spk-grid .spk.item .spk-info {
    /* all.css is content-box; the HP card gets border-box from the .spks26 *
       reset (home26.css:452), which this block is outside of. Without it
       width:100% + the cqw padding overflow the tile and min-height stacks
       on top of the padding. */
    box-sizing: border-box;
    display: block;                          /* was flex column (all.css:2141) */
    position: absolute;
    right: 0;
    bottom: 0;
    left: auto;
    width: 100%;
    height: auto;
    min-height: 42.6cqw;                     /* 167px */
    padding: 9.69cqw 6.12cqw 8cqw;           /* 38 top / 24 sides / 31.4 bottom */
    border-radius: 31.63cqw 0 0 0;           /* rectangleCornerRadii [124,0,0,0] */
    overflow: hidden;
    /* fallback wash while the canvas boots / no JS (pastel like the design) */
    background: linear-gradient(160deg, #C9E9FF 0%, #DFF7C9 55%, #EFFBD8 100%);
    z-index: 3;
    font-family: 'leonprod', sans-serif;
    text-align: right;
}

/* animated gradient fill — Animate 10 500x500 box at card-local (0,-129),
   clipped by the card (overflow:hidden + radius). Canvas internal aspect is the
   component frame (700x375); the Figma instance stretches it to 500x500, so we
   stretch the same way. */
.workshop .ws-head-holder .ws-speakers .spk-info .gcanvas,
.speaker-list .spk-grid .spk-info .gcanvas {
    position: absolute;
    left: 0;
    top: -32.91cqw;                          /* -129px */
    width: 127.55cqw;                        /* 500px */
    height: 127.55cqw;
    max-width: none;
    display: block;
    z-index: 0;
    pointer-events: none;
}

/* text above the canvas */
.workshop .ws-head-holder .ws-speakers .spk.item .spk-info-wrap,
.speaker-list .spk-grid .spk.item .spk-info-wrap {
    position: relative;
    z-index: 2;
    display: block;
    width: auto;
    margin: 0;
}

/* name — Leon 400 40/100 #0E1819, right-aligned. Drops the 2025 peach tag, its
   -4deg rotation and the -15px bleed (all.css:2182, 5573, 5578); left:auto
   neutralises the .eng flip (all.css:5582) the card design has no notion of. */
.workshop .ws-head-holder .ws-speakers .spk.item .spk-name,
.speaker-list .spk-grid .spk.item .spk-name {
    font-family: 'leonprod', sans-serif;
    font-weight: 400;
    font-size: 10.2cqw;                      /* 40px */
    line-height: 1;
    color: #0E1819;
    text-align: right;
    display: block;
    width: auto;
    max-width: 100%;
    margin: 0;
    padding: 0;
    background: none;
    transform: none;
    right: auto;
    left: auto;
}

/* role — Leon 400 22/26.4; un-hidden here (all.css:5600 hides it on this page) */
.workshop .ws-head-holder .ws-speakers .spk.item .spk-role,
.speaker-list .spk-grid .spk.item .spk-role {
    display: block;
    font-family: 'leonprod', sans-serif;
    font-weight: 400;
    font-size: 5.61cqw;                      /* 22px */
    line-height: 1.2;
    color: #0E1819;
    text-align: right;
    max-width: 100%;
    margin: 5.1cqw 0 0;                      /* 20px name->role gap */
    padding: 0;
    background: none;
    transform: none;
    right: auto;
    left: auto;
}

.workshop .ws-head-holder .ws-speakers .spk.item .spk-info a,
.speaker-list .spk-grid .spk.item .spk-info a {
    color: #0E1819;
    text-decoration: none;
}

/* cap-height trimming (both design text nodes are cap-trimmed; makes the
   38/20/38 rhythm land on the 167px card exactly) */
@supports (text-box: trim-both cap alphabetic) {
    .workshop .ws-head-holder .ws-speakers .spk.item .spk-name,
    .workshop .ws-head-holder .ws-speakers .spk.item .spk-role,
    .speaker-list .spk-grid .spk.item .spk-name,
    .speaker-list .spk-grid .spk.item .spk-role {
        text-box: trim-both cap alphabetic;
    }
}

/* ---- [event_program] shortcode -------------------------------------------
   The shortcode renders the schedule inside page content, where the generic
   .entry-content ul/li/a rules (list-style:disc, right-side indents, and the
   border-bottom "underline" on links) come later in this file than the
   schedule's own rules and therefore override them. Neutralise just those,
   scoped to the shortcode wrapper, leaving the schedule's own spacing intact. */
/* Two selectors: the .entry-content one is needed to outrank the content-area
   list rules (notably `.eng .entry-content ul { margin-left: 1em }`, which would
   otherwise indent the schedule's lists); the bare one covers use outside
   page content. Scoped to the shortcode, so other lists keep their margins. */
.entry-content .sched-shortcode ul,
.sched-shortcode ul {
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 0;
    padding: 0; /* kill the UA list indent (padding-inline-start) */
}
.sched-shortcode ul li {
    list-style: none;
    padding-right: 0;
    margin-right: 0;
}
.sched-shortcode a {
    border-bottom: none;
}
/* The shortcode sits in a narrower content column than the program page. Scale
   the meta line down a little so "date // time // venue" stays on one line —
   wrapping would leave a dangling '//' separator at the end of the first line.
   (The gap itself is left alone: the '//' is positioned relative to it.) */
.sched-shortcode .sc-meta li {
    font-size: 1.2em;
}

/* English event program (LTR), via the .program-en wrapper sc_event_program()
   adds when english=1. Row-level LTR is already handled by the theme's existing
   .sc-row.eng rules (the renderer adds that class), so this covers the wrapper
   and the non-row parts only. */
.program-en {
    direction: ltr;
    text-align: left;
}
.program-en .sc-meta,
.program-en .sc-track-head,
.program-en .track-mod {
    direction: ltr;
    text-align: left;
}
/* mirror the RTL-tuned '//' separator offset for LTR */
.program-en .sc-meta li::after {
    left: auto;
    right: -0.9em;
}

/* ==================================================================
   SECTION: content blockquotes — the "what" (home section-2) treatment
   ------------------------------------------------------------------
   Gives pull-quotes on content pages (e.g. "why attend") the same
   background system as the home page .b-what block, replacing the flat
   --kpeach panel they used before.

   Why the numbers differ from home26.css: that file authors the gradient
   in px against the 1920x854 Figma canvas, AND it is HP-only (see the
   enqueue in functions.php), so none of it reaches a content page. The
   ellipse is re-expressed here as percentages of the quote box so the
   same shape survives at any width:
       2029/1920 = 106%  |  1125/854 = 132%  |  y 40/854 = 5%
   Colour stops are copied verbatim from .b-what.

   Grain and line-art are literally the section's own assets:
   --figma-noise / --noise-opacity are :root vars in this file, and
   pat-what.svg already carries stroke-opacity .1 on its paths, so the
   10% stroke look needs no extra opacity knob here.

   One deliberate deviation: the section paints the pattern topmost, over
   its 70px title. A quote box is a fraction of that height, so the same
   z-order would drag strokes across the copy — here the art sits above
   the gradient but beneath the text.
   ================================================================== */

.entry-content blockquote {
    position: relative;
    isolation: isolate;   /* keep the decorative layers in a local stacking context */
    overflow: hidden;     /* clip the line-art bleed to the box */
    border: none;
    max-width: 75%;
    margin: 2em 0;
    padding: 1.75em 2em;
    color: #0E1819;
    background: radial-gradient(106% 132% at 36.25% 5%,
        #FFFFFF 2.4%, #DFFCC7 14.4%, #FFFFFF 28.3%, #E8C0FF 82.6%, #FFFFFF 100%) #FFFFFF;
}

/* copy rides above both decorative layers */
.entry-content blockquote > * {
    position: relative;
    z-index: 1;
}

/* film grain — same recipe and same single opacity knob as .b-what::before */
.entry-content blockquote::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: var(--figma-noise);
    background-repeat: repeat;
    opacity: var(--noise-opacity);
}

/* line-art curves.
   Sized to ~190% of the box height so a FRAGMENT of the artwork shows at close
   to its native stroke rhythm. Fitting the whole 1069x815 art into a quote box
   (`cover`) shrinks the curves into dense squiggles that read as noise rather
   than as the section's long sweeping arcs.
   Anchored so the arcs fall on the ragged-edge side of the RTL copy: the
   section can afford to run them under its heading, a quote box cannot. */
.entry-content blockquote::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: url(../images/hp26/patterns/pat-what.svg);
    background-repeat: no-repeat;
    background-position: 82% 42%;
    background-size: auto 190%;
}

/* ============================================================================
   cookie consent bar (footer.php #cookie-bar, js/uxilive_fe.js initCookieBar).
   The 2026 palette on a footer-coloured slab: ink ground, lime hairline + link,
   and the canonical lime pill for the accept button (a <button>, so the pill
   rules further up list `.cta-but.cta-main button` alongside the anchor).
   Sits below .hloader (10000) so a loading overlay still covers it.
   ============================================================================ */
.cookie-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9000;
    background: var(--ink);
    border-top: 3px solid var(--lime);
    color: #fff;
    font-size: 17px;
    line-height: 1.5;
    /* off-screen until initCookieBar decides it should show; the extra 20px
       keeps the border-top out of view while sliding */
    transform: translateY(calc(100% + 20px));
    transition: transform 0.35s ease;
}

.cookie-bar.visible {
    transform: translateY(0);
}

.cookie-bar-int {
    display: flex;
    align-items: center;
    gap: 30px;
    max-width: var(--maxsection);
    margin: 0 auto;
    padding: 18px 40px;
}

.cookie-bar-text {
    flex: 1 1 auto;
    margin: 0;
}

/* white label on a white rule; only the rule picks up the lime on hover */
.cookie-bar-text a {
    color: #fff;
    text-decoration: none;
    padding-bottom: 2px;
    border-bottom: 1px solid #fff;
    transition: border-bottom-color 0.3s ease;
}

.cookie-bar-text a:hover {
    border-bottom-color: var(--lime);
}

.cookie-bar .cta {
    flex: 0 0 auto;
    margin-top: 0;
}

/* the pill is em-based off its context — the bar is far smaller type than a
   homepage section, so scale it back to ~this bar's own font-size */
.cookie-bar .cta-but.cta-main {
    font-size: 1em;
}

.cookie-bar .cta-but.cta-main button {
    cursor: pointer;
    /* RTL: grow rightwards on hover so the pill can't push past the bar edge */
    transform-origin: left center;
}

@media only screen and (max-width: 900px) {
    .cookie-bar {
        font-size: 15px;
    }

    .cookie-bar-int {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
        padding: 16px 20px;
    }

    .cookie-bar .cta-but.cta-main {
        display: block;
    }

    .cookie-bar .cta-but.cta-main button {
        width: 100%;
        transform-origin: center center;
    }
}
