/* Flexiishoot Landing — landing.css */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&family=Roboto+Mono:wght@400;700&display=swap');

:root {
  --fxs-lime:    #C8F53C;
  --fxs-lime-dk: #a8d020;
  --fxs-ink:     #0D0D0D;
  --fxs-ink2:    #1A1A1A;
  --fxs-ink3:    #242424;
  --fxs-muted:   rgba(255,255,255,0.4);
  --fxs-border:  rgba(255,255,255,0.08);
  --fxs-mono:    'Roboto Mono', monospace;
  --fxs-sans:    'Roboto', sans-serif;
}

.fxs-wrap *, .fxs-wrap *::before, .fxs-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }
.fxs-wrap {
  font-family: var(--fxs-sans);
  background: var(--fxs-ink);
  color: #fff;
  position: relative;
  width: 100vw; max-width: 100vw;
  left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
  overflow-x: hidden;
}

/* DOTS */
.fxs-dots-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: var(--fxs-ink); }
.fxs-dot { position: absolute; border-radius: 50%; background: var(--fxs-lime); opacity: .06; animation: fxsFloat 9s ease-in-out infinite; }
@keyframes fxsFloat { 0%,100%{transform:translate(0,0)} 33%{transform:translate(25px,-50px)} 66%{transform:translate(-20px,-30px)} }
.fxs-d1{width:8px;height:8px;top:15%;left:8%;animation-delay:0s}
.fxs-d2{width:12px;height:12px;top:50%;left:18%;animation-delay:1.2s}
.fxs-d3{width:6px;height:6px;top:25%;left:82%;animation-delay:2.4s}
.fxs-d4{width:10px;height:10px;top:72%;left:12%;animation-delay:.8s}
.fxs-d5{width:7px;height:7px;top:60%;left:78%;animation-delay:3.2s}
.fxs-d6{width:14px;height:14px;top:12%;left:48%;animation-delay:1.6s}
.fxs-d7{width:5px;height:5px;top:82%;left:88%;animation-delay:.4s}
.fxs-d8{width:9px;height:9px;top:38%;left:68%;animation-delay:2.8s}
.fxs-d9{width:11px;height:11px;top:22%;left:32%;animation-delay:1.9s}
.fxs-d10{width:7px;height:7px;top:55%;left:42%;animation-delay:3.6s}

.fxs-content { position: relative; z-index: 10; }

/* UTILS */
.fxs-lime { color: var(--fxs-lime); }
.fxs-muted { color: var(--fxs-muted); }

/* SYSLOG */
.fxs-syslog { font-family: var(--fxs-mono); font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(200,245,60,.4); margin-bottom: .5rem; }
.fxs-syslog::before { content: '// '; }

/* EYEBROW */
.fxs-eyebrow { display: inline-flex; align-items: center; gap: .4rem; background: rgba(200,245,60,.08); border: 1px solid rgba(200,245,60,.2); color: var(--fxs-lime); font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: .3rem .8rem; border-radius: 3px; font-family: var(--fxs-mono); margin-bottom: 1.2rem; }
.fxs-eyebrow::before { content: '//'; opacity: .5; font-size: .6rem; margin-right: .2rem; }

/* SECTION TITLE */
.fxs-stitle { font-size: 2.4rem; font-weight: 900; letter-spacing: -.02em; line-height: 1.05; margin-bottom: 2rem; }

/* SECTION */
.fxs-section { max-width: 1100px; margin: 0 auto; padding: 3rem 2rem; }

/* HERO */
.fxs-hero { max-width: 1100px; margin: 0 auto; padding: 4rem 2rem 3rem; }
.fxs-hero-h1 { font-size: clamp(2.2rem,5vw,4rem); font-weight: 900; letter-spacing: -.03em; line-height: 1; margin-bottom: 1.2rem; background: none !important; -webkit-text-fill-color: unset !important; }
.fxs-hero-h1 span.fxs-lime { color: var(--fxs-lime); background: none !important; -webkit-text-fill-color: var(--fxs-lime) !important; }
.fxs-hero-sub { font-size: 1rem; color: var(--fxs-muted); max-width: 500px; line-height: 1.75; margin-bottom: 2rem; }
.fxs-hero-btns { display: flex; gap: .8rem; flex-wrap: wrap; }

/* STATS */
.fxs-stats { display: flex; gap: 2.5rem; flex-wrap: wrap; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--fxs-border); }
.fxs-stat-num { font-size: 2.2rem; font-weight: 900; color: var(--fxs-lime); letter-spacing: -.02em; }
.fxs-stat-lbl { font-size: .65rem; text-transform: uppercase; letter-spacing: .12em; color: var(--fxs-muted); margin-top: .2rem; font-family: var(--fxs-mono); }

/* BUTTONS */
.fxs-btn-primary { background: var(--fxs-lime); color: var(--fxs-ink); font-weight: 700; padding: .8rem 1.8rem; border-radius: 5px; text-decoration: none; font-size: .9rem; display: inline-block; transition: background .2s, transform .15s; border: none; cursor: pointer; font-family: var(--fxs-sans); }
.fxs-btn-primary:hover { background: var(--fxs-lime-dk); transform: translateY(-1px); }
.fxs-btn-outline { border: 1.5px solid rgba(200,245,60,.3); color: rgba(255,255,255,.7); font-weight: 600; padding: .8rem 1.8rem; border-radius: 5px; text-decoration: none; font-size: .9rem; display: inline-block; transition: border-color .2s, color .2s; cursor: pointer; background: transparent; font-family: var(--fxs-sans); }
.fxs-btn-outline:hover { border-color: var(--fxs-lime); color: var(--fxs-lime); }

/* FEATURES STRIP */
.fxs-strip { background: rgba(255,255,255,.02); border-top: 1px solid var(--fxs-border); border-bottom: 1px solid var(--fxs-border); padding: 1.8rem 2rem; }
.fxs-feat-grid { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; }
.fxs-feat-item { text-align: center; }
.fxs-feat-icon { width: 46px; height: 46px; border-radius: 5px; background: rgba(200,245,60,.08); border: 1px solid rgba(200,245,60,.2); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; margin: 0 auto .6rem; }
.fxs-feat-title { font-size: .82rem; font-weight: 700; margin-bottom: .2rem; }
.fxs-feat-desc { font-size: .72rem; color: var(--fxs-muted); }

/* HOW IT WORKS */
.fxs-steps-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; position: relative; }
.fxs-steps-grid::before { content:''; position:absolute; top:26px; left:8%; right:8%; height:1px; background:linear-gradient(to right,var(--fxs-lime),rgba(200,245,60,.1),var(--fxs-lime)); opacity:.2; }
.fxs-step { text-align: center; position: relative; z-index: 1; }
.fxs-step-num { width: 52px; height: 52px; border-radius: 5px; background: var(--fxs-ink3); border: 1.5px solid var(--fxs-lime); display: flex; align-items: center; justify-content: center; font-family: var(--fxs-mono); font-size: .9rem; color: var(--fxs-lime); font-weight: 700; margin: 0 auto .9rem; }
.fxs-step h4 { font-weight: 700; font-size: .85rem; margin-bottom: .3rem; }
.fxs-step p { font-size: .75rem; color: var(--fxs-muted); line-height: 1.5; }

/* TABS */
.fxs-tab-bar { display: flex; gap: .25rem; background: var(--fxs-ink2); border: 1px solid var(--fxs-border); border-radius: 5px; padding: .28rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.fxs-tab { padding: .45rem 1.2rem; border-radius: 3px; font-size: .8rem; font-weight: 700; cursor: pointer; color: rgba(255,255,255,.4); border: none; background: transparent; font-family: var(--fxs-sans); transition: all .2s; }
.fxs-tab.active { background: var(--fxs-lime); color: var(--fxs-ink); }

/* PACKAGE ROWS */
.fxs-pkg-row { display: flex; align-items: center; justify-content: space-between; background: var(--fxs-ink2); border: 1px solid var(--fxs-border); border-radius: 7px; padding: 1.1rem 1.5rem; margin-bottom: .55rem; text-decoration: none; color: #fff; transition: border-color .2s, background .2s; cursor: pointer; }
.fxs-pkg-row:hover { border-color: rgba(200,245,60,.3); background: var(--fxs-ink3); }
.fxs-pkg-row.featured { border-color: rgba(200,245,60,.45); background: rgba(200,245,60,.04); }
.fxs-pkg-left { display: flex; align-items: center; }
.fxs-pkg-name { font-weight: 900; font-size: .95rem; letter-spacing: -.01em; }
.fxs-pkg-desc { font-size: .76rem; color: var(--fxs-muted); margin-top: .1rem; }
.fxs-badge { font-size: .55rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; padding: .15rem .4rem; border-radius: 3px; font-family: var(--fxs-mono); margin-left: .4rem; }
.b-s { background: rgba(255,255,255,.08); color: rgba(255,255,255,.5); }
.b-p { background: rgba(200,245,60,.15); color: var(--fxs-lime); }
.b-v { background: rgba(200,245,60,.25); color: var(--fxs-lime); }
.b-f { background: rgba(150,150,255,.15); color: #aab; }
.fxs-pkg-price { text-align: right; flex-shrink: 0; }
.fxs-pkg-amount { font-size: 1.2rem; font-weight: 900; color: var(--fxs-lime); font-family: var(--fxs-mono); }
.fxs-pkg-block { font-size: .62rem; color: rgba(255,255,255,.25); font-family: var(--fxs-mono); }
.fxs-footnote { font-size: .65rem; color: rgba(255,255,255,.2); margin-top: .8rem; font-family: var(--fxs-mono); }

/* MEMBERSHIP CARDS */
.fxs-mem-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; }
.fxs-mem-card { background: var(--fxs-ink2); border: 1px solid var(--fxs-border); border-radius: 10px; padding: 1.6rem; display: flex; flex-direction: column; }
.fxs-mem-card.featured { border-color: rgba(200,245,60,.45); box-shadow: 0 0 30px rgba(200,245,60,.07); }
.fxs-mem-name { font-weight: 900; font-size: 1.1rem; margin-bottom: .2rem; }
.fxs-mem-price { font-size: 1.9rem; font-weight: 900; color: var(--fxs-lime); font-family: var(--fxs-mono); letter-spacing: -.02em; }
.fxs-mem-hours { font-size: .74rem; color: var(--fxs-muted); margin-bottom: 1rem; }
.fxs-mem-feats { list-style: none; flex: 1; margin-bottom: 1.2rem; }
.fxs-mem-feats li { font-size: .8rem; color: var(--fxs-muted); margin-bottom: .4rem; line-height: 1.5; }
.fxs-mem-btn { display: block; text-align: center; padding: .6rem; border-radius: 5px; font-size: .85rem; }

/* RETURN BOX */
.fxs-return-box { text-align: center; padding: 3rem; background: var(--fxs-ink2); border-radius: 8px; border: 1px solid var(--fxs-border); }
.fxs-return-box .fxs-muted { margin: .8rem 0 1.5rem; }

/* ADD-ONS */
.fxs-addon-section { position: relative; }
.fxs-addon-section::after { content:''; position:absolute; right:2rem; top:80px; bottom:0; width:60px; background:linear-gradient(to right,transparent,var(--fxs-ink)); pointer-events:none; z-index:2; }
.fxs-scroll-track { display: flex; gap: .9rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; padding-bottom: .8rem; scrollbar-width: none; -ms-overflow-style: none; }
.fxs-scroll-track::-webkit-scrollbar { display: none; }
.fxs-addon-card { flex: 0 0 190px; min-width: 0; scroll-snap-align: start; background: var(--fxs-ink2); border: 1px solid var(--fxs-border); border-radius: 8px; overflow: hidden; transition: border-color .2s, transform .2s; }
.fxs-addon-card:hover { border-color: rgba(200,245,60,.35); transform: translateY(-2px); }
.fxs-addon-thumb { width: 100%; aspect-ratio: 16/9; background: var(--fxs-ink3); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.1); font-family: var(--fxs-mono); font-size: .55rem; letter-spacing: .06em; }
.fxs-addon-thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.fxs-addon-body { padding: .7rem .85rem .85rem; }
.fxs-addon-body h4 { font-weight: 700; font-size: .8rem; margin-bottom: .12rem; }
.fxs-addon-body p { font-size: .7rem; color: var(--fxs-muted); line-height: 1.4; margin-bottom: .45rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fxs-addon-price-row { display: flex; align-items: baseline; gap: .3rem; margin-bottom: .4rem; }
.fxs-addon-price { font-size: .88rem; font-weight: 700; color: var(--fxs-lime); font-family: var(--fxs-mono); }
.fxs-addon-unit { font-size: .62rem; color: rgba(255,255,255,.25); }
.fxs-addon-book { display: block; width: 100%; text-align: center; background: transparent; border: 1px solid rgba(200,245,60,.3); color: var(--fxs-lime); font-weight: 700; font-size: .68rem; padding: .3rem; border-radius: 3px; text-decoration: none; transition: background .2s, color .2s; }
.fxs-addon-book:hover { background: var(--fxs-lime); color: var(--fxs-ink); }

/* FAQ */
.fxs-faq-section .fxs-stitle { margin-bottom: 1.5rem; }
.fxs-faq-list { max-width: 700px; }
.fxs-faq-item { background: var(--fxs-ink2); border: 1px solid var(--fxs-border); border-radius: 8px; overflow: hidden; margin-bottom: .5rem; }
.fxs-faq-q { width: 100%; text-align: left; padding: .9rem 1.2rem; background: none; border: none; color: #fff; font-family: var(--fxs-sans); font-size: .9rem; font-weight: 700; cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.fxs-faq-q:hover { color: var(--fxs-lime); }
.fxs-faq-arr { transition: transform .3s; color: var(--fxs-lime); flex-shrink: 0; margin-left: 1rem; }
.fxs-faq-item.open .fxs-faq-arr { transform: rotate(180deg); }
.fxs-faq-a { padding: 0 1.2rem .9rem; font-size: .82rem; color: var(--fxs-muted); line-height: 1.65; display: none; }

/* FIND US */
.fxs-find-box { background: var(--fxs-ink2); border: 1px solid var(--fxs-border); border-radius: 10px; padding: 2rem; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.fxs-find-info h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: 1.2rem; }
.fxs-find-row { display: flex; gap: .8rem; align-items: flex-start; margin-bottom: 1rem; }
.fxs-find-icon { font-size: 1.1rem; color: var(--fxs-lime); margin-top: .1rem; }
.fxs-find-label { font-weight: 600; font-size: .85rem; margin-bottom: .1rem; }
.fxs-find-info a { font-size: .82rem; text-decoration: none; transition: opacity .2s; }
.fxs-find-info a:hover { opacity: .8; }
.fxs-find-map { border-radius: 8px; overflow: hidden; height: 300px; background: var(--fxs-ink3); }
.fxs-find-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* FOOTER */
.fxs-footer { background: #080808; border-top: 1px solid rgba(200,245,60,.07); padding: 2.5rem 2rem; }
.fxs-footer-inner { max-width: 1100px; margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 1.5rem; }
.fxs-footer-logo { font-size: 1.1rem; font-weight: 900; margin-bottom: .3rem; }
.fxs-footer-tagline { font-size: .74rem; color: rgba(255,255,255,.25); }
.fxs-footer-label { font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.25); margin-bottom: .5rem; font-family: var(--fxs-mono); }
.fxs-footer-syslog { max-width: 1100px; margin: 1.5rem auto 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.04); font-family: var(--fxs-mono); font-size: .6rem; color: rgba(255,255,255,.15); }

/* MOBILE MENU — always dark */
.elementor-nav-menu--dropdown, .elementor-nav-menu__container.elementor-nav-menu--dropdown { z-index: 99999 !important; background-color: #111 !important; }
.elementor-nav-menu--dropdown li a, .elementor-nav-menu--dropdown .elementor-item { color: #fff !important; }
.elementor-nav-menu--dropdown .elementor-item:hover { color: var(--fxs-lime) !important; }
.elementor-menu-toggle, .e-n-menu-toggle { z-index: 99999 !important; }
.fxs-dots-bg { z-index: 0 !important; }

/* RESPONSIVE */
@media(max-width:900px) {
  .fxs-feat-grid { grid-template-columns: repeat(2,1fr); }
  .fxs-steps-grid { grid-template-columns: repeat(2,1fr); }
  .fxs-steps-grid::before { display: none; }
  .fxs-mem-grid { grid-template-columns: 1fr; }
  .fxs-find-box { grid-template-columns: 1fr; }
  .fxs-find-map { height: 220px; }
}
@media(max-width:540px) {
  .fxs-hero-h1 { font-size: 2.4rem; }
  .fxs-stitle { font-size: 1.8rem; }
  .fxs-section { padding: 2.5rem 1.2rem; }
  .fxs-addon-card { flex: 0 0 62vw; }
  .fxs-tab { font-size: .72rem; padding: .4rem .8rem; }
}

/* ── FIX: Remove any theme/editor highlight artifacts on hero ── */
.fxs-wrap ::selection { background: rgba(200,245,60,0.3); color: #fff; }
.fxs-hero-h1 mark,
.fxs-hero-h1 span[style*="background"] { background: none !important; }
/* Override any Elementor or theme color on headings inside wrap */
.fxs-wrap h1, .fxs-wrap h1 * {
  background-color: transparent !important;
  -webkit-text-fill-color: unset;
}
.fxs-wrap h1 .fxs-lime { color: var(--fxs-lime) !important; -webkit-text-fill-color: var(--fxs-lime) !important; }

/* ── FIX: FAQ question text always white — override theme ── */
.fxs-faq-q,
.fxs-faq-q *,
.fxs-wrap .fxs-faq-q {
  color: #ffffff !important;
}
.fxs-faq-q:hover,
.fxs-faq-q:hover * {
  color: var(--fxs-lime) !important;
}
.fxs-faq-item.open .fxs-faq-q {
  color: var(--fxs-lime) !important;
}

/* Also fix any other section titles the theme may be darkening */
.fxs-wrap .fxs-stitle,
.fxs-wrap h2,
.fxs-wrap h3,
.fxs-wrap h4 {
  color: #ffffff !important;
}
.fxs-syslog { color: rgba(200,245,60,0.4) !important; }

/* ── Force hero line 2 white — override theme heading color ── */
.fxs-wrap .fxs-hero-h1 span:not(.fxs-lime) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
