/* Thenexi UI components v1 — provided by Thenexi; edit your own styles in assets/styles.css instead. */
.tx-slider { position: relative; overflow: hidden; border-radius: var(--tx-radius, 14px); }
.tx-slider .tx-track { display: flex; transition: transform .5s ease; will-change: transform; touch-action: pan-y; }
.tx-slider .tx-slide { flex: 0 0 calc(100% / var(--tx-per, 1)); min-width: 0; box-sizing: border-box; padding: 0 calc(var(--tx-gap, 0px) / 2); }
.tx-slider .tx-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tx-slider[data-height] .tx-slide { height: var(--tx-h); }
.tx-slider .tx-prev, .tx-slider .tx-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 999px; background: rgba(255,255,255,.9); color: #111; box-shadow: 0 4px 14px rgba(0,0,0,.15); cursor: pointer; font-size: 20px; line-height: 44px; }
.tx-slider .tx-prev { left: 12px; } .tx-slider .tx-next { right: 12px; }
/* Card carousels: arrows sit outside the cards */
.tx-slider.tx-multi { padding: 0 54px; overflow: hidden; }
.tx-slider.tx-multi .tx-track { margin: 0 calc(var(--tx-gap, 0px) / -2); }
.tx-slider.tx-multi .tx-prev { left: 4px; } .tx-slider.tx-multi .tx-next { right: 4px; }
@media (max-width: 639px) { .tx-slider.tx-multi { padding: 0; } .tx-slider.tx-multi .tx-prev, .tx-slider.tx-multi .tx-next { display: none; } }
.tx-slider .tx-prev:focus-visible, .tx-slider .tx-next:focus-visible, .tx-dots button:focus-visible { outline: 3px solid var(--tx-accent, var(--primary, var(--accent, #4f46e5))); outline-offset: 2px; }
.tx-dots { display: flex; justify-content: center; gap: 8px; margin-top: 14px; }
.tx-dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: rgba(0,0,0,.2); cursor: pointer; transition: width .25s, background .25s; }
.tx-dots button[aria-current="true"] { width: 26px; background: var(--tx-accent, var(--primary, var(--accent, #4f46e5))); }
.tx-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.tx-gallery a { display: block; overflow: hidden; border-radius: var(--tx-radius, 14px); aspect-ratio: 4 / 3; }
.tx-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.tx-gallery a:hover img { transform: scale(1.05); }
.tx-lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; background: rgba(10,10,15,.92); padding: 24px; }
.tx-lightbox img { max-width: 100%; max-height: 86vh; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.tx-lightbox button { position: absolute; border: 0; background: rgba(255,255,255,.12); color: #fff; width: 48px; height: 48px; border-radius: 999px; font-size: 22px; cursor: pointer; }
.tx-lightbox .tx-close { top: 16px; right: 16px; } .tx-lightbox .tx-prev { left: 16px; top: 50%; } .tx-lightbox .tx-next { right: 16px; top: 50%; }
.tx-lightbox p { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; color: #ddd; font-size: 14px; margin: 0; }
details.tx-faq { border: 1px solid rgba(0,0,0,.1); border-radius: var(--tx-radius, 14px); padding: 0 20px; margin-bottom: 10px; background: #fff; }
details.tx-faq summary { cursor: pointer; list-style: none; padding: 18px 28px 18px 0; font-weight: 600; position: relative; }
details.tx-faq summary::-webkit-details-marker { display: none; }
details.tx-faq summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--tx-accent, var(--primary, var(--accent, #4f46e5))); transition: transform .2s; }
details.tx-faq[open] summary::after { transform: translateY(-50%) rotate(45deg); }
details.tx-faq > :not(summary) { margin-top: 0; padding-bottom: 18px; }
.tx-tabs [role="tablist"] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.tx-tabs [role="tab"] { border: 1px solid rgba(0,0,0,.12); background: transparent; border-radius: 999px; padding: 9px 18px; cursor: pointer; font: inherit; color: inherit; }
.tx-tabs [role="tab"][aria-selected="true"] { background: var(--tx-accent, var(--primary, var(--accent, #4f46e5))); border-color: var(--tx-accent, var(--primary, var(--accent, #4f46e5))); color: #fff; }
.tx-tabs .tx-tab[hidden] { display: none; }
.tx-pricing-switch { display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(0,0,0,.06); gap: 4px; }
.tx-pricing-switch button { border: 0; background: transparent; border-radius: 999px; padding: 8px 18px; cursor: pointer; font: inherit; color: inherit; }
.tx-pricing-switch button[aria-pressed="true"] { background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.1); font-weight: 600; }
.tx-countdown { display: inline-flex; gap: 10px; }
.tx-countdown span { min-width: 64px; text-align: center; padding: 10px 6px; border-radius: 12px; background: rgba(0,0,0,.06); font-weight: 700; font-size: 1.6em; line-height: 1.1; }
.tx-countdown small { display: block; font-size: 11px; font-weight: 500; opacity: .7; text-transform: uppercase; letter-spacing: .05em; }
.tx-compare { position: relative; overflow: hidden; border-radius: var(--tx-radius, 14px); user-select: none; }
.tx-compare img { display: block; width: 100%; }
.tx-compare img:last-of-type { position: absolute; inset: 0; height: 100%; object-fit: cover; clip-path: inset(0 0 0 var(--tx-pos, 50%)); }
.tx-compare input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.tx-compare::after { content: ""; position: absolute; top: 0; bottom: 0; left: var(--tx-pos, 50%); width: 3px; background: #fff; box-shadow: 0 0 8px rgba(0,0,0,.4); pointer-events: none; }
.tx-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.tx-marquee > * { display: flex; gap: 48px; width: max-content; align-items: center; animation: tx-marquee var(--tx-speed, 30s) linear infinite; }
.tx-marquee:hover > * { animation-play-state: paused; }
@keyframes tx-marquee { to { transform: translateX(-50%); } }
[data-tx-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
[data-tx-reveal].tx-in { opacity: 1; transform: none; }
.tx-top { position: fixed; right: 18px; bottom: 18px; z-index: 50; width: 46px; height: 46px; border: 0; border-radius: 999px; background: var(--tx-accent, var(--primary, var(--accent, #4f46e5))); color: #fff; font-size: 20px; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.2); opacity: 0; pointer-events: none; transition: opacity .3s; }
.tx-top.tx-show { opacity: 1; pointer-events: auto; }
.tx-sticky { position: sticky; top: 0; z-index: 40; transition: box-shadow .3s, background .3s; }
.tx-sticky.tx-scrolled { box-shadow: 0 6px 24px rgba(0,0,0,.08); }
[dir="rtl"] .tx-slider:not(.tx-multi) .tx-prev { left: auto; right: 12px; } [dir="rtl"] .tx-slider:not(.tx-multi) .tx-next { right: auto; left: 12px; }
@media (prefers-reduced-motion: reduce) { .tx-slider .tx-track, [data-tx-reveal] { transition: none; } .tx-marquee > * { animation: none; } [data-tx-reveal] { opacity: 1; transform: none; } }
