/* Start custom CSS *//* Ratio Fall 2026 – Event Tickets restyle (scoped to page 50300) */
.elementor-50300 .tribe-tickets__tickets-wrapper { width: 100%; max-width: 720px; margin: 8px auto 0; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-form { background: rgba(255, 255, 255, 0.03) !important; border: 1px solid rgba(120, 190, 196, 0.18) !important; border-radius: 24px !important; box-shadow: none !important; padding: 28px 32px 32px !important; text-align: left; color: #CFDCDC; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-title { font-family: Unbounded, sans-serif !important; font-size: 20px !important; font-weight: 400 !important; letter-spacing: -0.01em; color: #EEF4F2 !important; border: 0 !important; margin: 0 0 6px !important; padding: 0 !important; text-align: left !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item { border-color: #1A2F32 !important; padding: 22px 0 !important; background: transparent !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-content-title { font-family: Manrope, sans-serif !important; font-size: 17px !important; font-weight: 700 !important; color: #EEF4F2 !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-details-content { font-family: Manrope, sans-serif !important; font-size: 14px !important; line-height: 1.55 !important; color: #9FB4B5 !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-sale-price,
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-extra-price { font-family: Unbounded, sans-serif !important; font-size: 18px !important; font-weight: 500 !important; color: #F6A68C !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-extra-available { font-family: "JetBrains Mono", monospace !important; font-size: 11px !important; letter-spacing: 0.12em; text-transform: uppercase; color: #5F7A7C !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity { color: #EEF4F2 !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity button { width: 34px !important; height: 34px !important; line-height: 1 !important; border-radius: 50% !important; border: 1px solid rgba(246, 166, 140, 0.5) !important; background: transparent !important; color: #F6A68C !important; font-family: Unbounded, sans-serif !important; font-size: 18px !important; transition: background 0.15s ease, color 0.15s ease; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity button:hover { background: #F6A68C !important; color: #0B0D0E !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity-number-input { font-family: Manrope, sans-serif !important; font-weight: 700 !important; font-size: 20px !important; color: #EEF4F2 !important; background: transparent !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer,
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer * { font-family: Manrope, sans-serif; color: #CFDCDC !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer,
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer-divider { border-color: #1A2F32 !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer-total .tribe-amount,
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer-quantity-number { font-family: Unbounded, sans-serif !important; color: #F6A68C !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer-total-wrap { white-space: nowrap; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-buy { background: #F6A68C !important; color: #0B0D0E !important; border: 0 !important; border-radius: 999px !important; font-family: Unbounded, sans-serif !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0.02em; padding: 16px 30px !important; transition: background 0.2s ease; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-buy:hover { background: #FFC3AE !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-buy:disabled { opacity: 0.4; cursor: not-allowed; }
.elementor-50300 .tribe-common.event-tickets .tribe-tickets__notice { background: rgba(79, 210, 236, 0.06) !important; border-color: #4FD2EC !important; color: #CFDCDC !important; }
@media (max-width: 767px) {
  .elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-form { padding: 22px 18px 24px !important; border-radius: 18px !important; }
  .elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer { flex-wrap: wrap !important; justify-content: space-between !important; row-gap: 16px; }
  .elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer-quantity,
  .elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-footer-total { display: inline-flex !important; gap: 6px; align-items: baseline; }
  .elementor-50300 .tribe-common.event-tickets .tribe-tickets__tickets-buy { width: 100% !important; flex-basis: 100%; }
}

/* Sticky nav: sit below the WP admin bar for logged-in editors */
.admin-bar .elementor-50300 .elementor-element-1906126f { top: 32px !important; }
@media (max-width: 782px) { .admin-bar .elementor-50300 .elementor-element-1906126f { top: 46px !important; } }

/* Ratio Fall 2026 – hero: FORUM key visual + drifting objects (page 50300) */
.elementor-50300 .elementor-element-5db2182 { overflow: hidden; isolation: isolate; }
.elementor-50300 .elementor-element-584da21 { position: relative; z-index: 2; }
.elementor-50300 [data-interaction-id="1046b289"] {
	position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important;
	overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important;
}
.elementor-50300 [data-interaction-id="63ca9979"] {
	width: min(94vw, 1000px, calc((100svh - 270px) * 1.12)) !important;
	min-width: min(92vw, 560px);
	max-width: none !important;
	height: auto !important;
	filter: drop-shadow(0 30px 70px rgba(0, 0, 0, 0.6));
}
.elementor-50300 [data-interaction-id="f26bk00"],
.elementor-50300 [data-interaction-id="f26fr00"] {
	position: absolute !important; inset: 0; width: auto !important; min-height: 0 !important;
	padding: 0 !important; margin: 0 !important; overflow: hidden; pointer-events: none;
}
.elementor-50300 [data-interaction-id="f26bk00"] { z-index: 1; }
.elementor-50300 [data-interaction-id="f26fr00"] { z-index: 3; }
.elementor-50300 .f26-float,
.elementor-50300 [data-interaction-id^="f26a"] {
	position: absolute !important; display: block; height: auto !important; max-width: none !important; margin: 0 !important;
	width: var(--w);
	opacity: var(--o, 1);
	filter: blur(var(--b, 0px));
	transform: rotate(var(--r, 0deg));
	animation: f26drift var(--t, 90s) linear infinite alternate;
	will-change: transform;
	user-select: none;
}
/* constant speed; the first/last 0.25% of each leg (~0.1s) eases so the turn-around isn't abrupt */
@keyframes f26drift {
	0% { transform: translate3d(0, 0, 0) rotate(var(--r, 0deg)); animation-timing-function: ease-in; }
	0.25% { transform: translate3d(calc(var(--dx, 0px) * var(--k, 1) * 0.00146), calc(var(--dy, 0px) * var(--k, 1) * 0.00146), 0) rotate(calc(var(--r, 0deg) + var(--dr, 0deg) * 0.00146)); animation-timing-function: linear; }
	99.75% { transform: translate3d(calc(var(--dx, 0px) * var(--k, 1) * 0.99854), calc(var(--dy, 0px) * var(--k, 1) * 0.99854), 0) rotate(calc(var(--r, 0deg) + var(--dr, 0deg) * 0.99854)); animation-timing-function: ease-out; }
	100% { transform: translate3d(calc(var(--dx, 0px) * var(--k, 1) * 1), calc(var(--dy, 0px) * var(--k, 1) * 1), 0) rotate(calc(var(--r, 0deg) + var(--dr, 0deg) * 1)); }
}
@media (prefers-reduced-motion: reduce) {
	.elementor-50300 [data-interaction-id^="f26a"] { animation: none; }
}

/* far – behind the key visual, small and sharp */
.elementor-50300 [data-interaction-id="f26a01"] { --w: clamp(44px, 4.6vw, 70px); top: 11%; left: 33%; --r: -35deg; --o: .85; --dx: 40px; --dy: -30px; --dr: 30deg; --t: 40s; }
.elementor-50300 [data-interaction-id="f26a02"] { --w: clamp(60px, 6.4vw, 96px); top: 60%; left: 16%; --r: 16deg; --b: .4px; --o: .9; --dx: -80px; --dy: 40px; --dr: -40deg; --t: 44s; }
.elementor-50300 [data-interaction-id="f26a03"] { --w: clamp(54px, 5.6vw, 86px); top: 12%; left: 63%; --r: 12deg; --b: .5px; --o: .85; --dx: 70px; --dy: 45px; --dr: 24deg; --t: 38s; }
.elementor-50300 [data-interaction-id="f26a04"] { --w: clamp(76px, 8vw, 124px); top: 66%; left: 76%; --r: -14deg; --b: .8px; --o: .9; --dx: -30px; --dy: -20px; --dr: -20deg; --t: 34s; }
.elementor-50300 [data-interaction-id="f26a05"] { --w: clamp(46px, 4.8vw, 74px); top: 80%; left: 17%; --r: 58deg; --b: .6px; --o: .8; --dx: 110px; --dy: -40px; --dr: 60deg; --t: 46s; }
/* mid – in front, medium, slightly soft */
.elementor-50300 [data-interaction-id="f26a06"] { --w: clamp(150px, 16vw, 240px); top: 9%; left: 2%; --r: -12deg; --b: 1.6px; --dx: 150px; --dy: 110px; --dr: 14deg; --t: 50s; }
.elementor-50300 [data-interaction-id="f26a07"] { --w: clamp(130px, 14vw, 210px); top: 40%; left: 85%; --r: 18deg; --b: 2.2px; --dx: -80px; --dy: 140px; --dr: -20deg; --t: 44s; }
.elementor-50300 [data-interaction-id="f26a08"] { --w: clamp(84px, 8.6vw, 130px); top: 38%; left: 6%; --r: -8deg; --b: 1.4px; --dx: 120px; --dy: 60px; --dr: 25deg; --t: 42s; }
/* near – big, out of focus, partly off-screen */
.elementor-50300 [data-interaction-id="f26a09"] { --w: clamp(260px, 30vw, 470px); top: 64%; left: -10%; --r: -14deg; --b: 9px; --o: .95; --dx: 90px; --dy: -300px; --dr: 10deg; --t: 60s; }
.elementor-50300 [data-interaction-id="f26a10"] { --w: clamp(300px, 34vw, 540px); top: -9%; left: 73%; --r: 20deg; --b: 11px; --o: .9; --dx: 80px; --dy: 300px; --dr: -14deg; --t: 62s; }

@media (max-width: 767px) {
	.elementor-50300 [data-interaction-id^="f26a"] { --k: .45; }
	.elementor-50300 [data-interaction-id="63ca9979"] { width: calc(100vw - 8px) !important; min-width: 0; }
	.elementor-50300 [data-interaction-id="f26a01"] { top: 9%; left: 64%; }
	.elementor-50300 [data-interaction-id="f26a02"] { --w: 52px; top: 45%; left: 3%; }
	.elementor-50300 [data-interaction-id="f26a03"] { --w: 50px; top: 45%; left: 82%; }
	.elementor-50300 [data-interaction-id="f26a04"] { top: 88%; left: 72%; --dx: 100px; --dy: 60px; }
	.elementor-50300 [data-interaction-id="f26a05"] { top: 91%; left: 12%; }
	.elementor-50300 [data-interaction-id="f26a06"] { --w: 120px; top: 7%; left: -8%; --dx: 60px; --dy: 160px; }
	.elementor-50300 [data-interaction-id="f26a07"] { --w: 96px; top: 79%; left: 86%; --dx: 60px; --dy: 120px; }
	.elementor-50300 [data-interaction-id="f26a08"] { display: none !important; }
	.elementor-50300 [data-interaction-id="f26a09"] { --w: 230px; top: 74%; left: -30%; --b: 7px; --dx: 60px; --dy: 160px; }
	.elementor-50300 [data-interaction-id="f26a10"] { --w: 250px; top: 1%; left: 62%; --b: 8px; --dx: 200px; --dy: -40px; }
}

/* Ticket modal. backdrop-filter on the ticket card makes it the containing block for the modal's position:fixed, pushing the modal off-screen; drop it while a dialog is open. */
body.a11y-dialog__body-locked .elementor-element-73ad87b8 { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
/* The modal lives inside the ticket widget and inherits its dark-card colours, so theme it dark to match. */
.elementor-50300 .tribe-dialog__overlay { background: rgba(4, 7, 8, 0.82) !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper { background: #0E1416 !important; border: 1px solid rgba(120, 190, 196, 0.22) !important; border-radius: 24px !important; color: #CFDCDC !important; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6) !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__title { font-family: Unbounded, sans-serif !important; font-weight: 400 !important; color: #EEF4F2 !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__close-button { background-color: transparent !important; filter: invert(1); opacity: 0.7; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-tickets__tickets-form { background: transparent !important; border: 0 !important; padding: 0 !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-tickets__tickets-item-total,
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-tickets__tickets-item-details-summary-button,
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-tickets__attendee-tickets,
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-tickets__attendee-tickets-footer-divider { color: #CFDCDC !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-common-c-btn-link { color: #F6A68C !important; font-family: Manrope, sans-serif !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-tickets__attendee-tickets-footer-checkout-button { background: #F6A68C !important; color: #0B0D0E !important; border: 0 !important; border-radius: 999px !important; font-family: Unbounded, sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 14px 26px !important; }
.elementor-50300 .tribe-common.event-tickets .tribe-dialog__wrapper .tribe-tickets__attendee-tickets-footer-checkout-button:hover { background: #FFC3AE !important; }/* End custom CSS */