/*
Theme Name: Trevix Media
Theme URI: https://trevixmedia.com
Author: Trevix Media
Description: Lightweight Elementor Pro theme for Trevix Media. Provides design tokens, menus, Theme Builder locations and the small set of effects Elementor cannot reproduce natively (cursor, orb parallax, pricing toggle, portfolio filter, gradient text).
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: trevix
*/
:root{--bg:#f7f7f5;--ink:#0a0b0e;--muted:#6d737d;--purple:#6e49ff;--purple2:#b19cff;--line:#dedfe3;--max:1280px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5,h6,p{margin:0}
img{max-width:100%;height:auto}

/* Elementor normalisation: children size to content like the original markup */
body .e-con.e-child{--width:auto}
.elementor-widget-text-editor p{margin:0}
.elementor-widget-heading .elementor-heading-title{margin:0}
.e-con.wrap,.e-con.container{width:min(var(--max),calc(100% - 48px));margin-inline:auto}
@media(max-width:600px){.e-con.wrap,.e-con.container{width:calc(100% - 30px)}}

/* Gradient headline text */
.grad,.gradient{background:linear-gradient(105deg,#0a0b0e,#6844ff 55%,#a98eff);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.dark .grad,.cta .grad,.dark .gradient,.cta .gradient{background:linear-gradient(105deg,#fff,#b19cff 60%,#8e6cff);-webkit-background-clip:text;background-clip:text}

/* Buttons */
.elementor-button{transition:.3s;cursor:pointer;text-decoration:none}
.tx-btn-left .elementor-button-content-wrapper{justify-content:flex-start}
.pill:hover,.btn:hover{transform:translateY(-3px)}
.pill .elementor-button:hover{box-shadow:0 14px 30px #0002}

/* Keep the header above hero glows and every page section so its links stay clickable */
.elementor-location-header{position:relative;z-index:9999}
.nav a,.nav .elementor-button,.nav .elementor-item{position:relative;z-index:1;pointer-events:auto}

/* Header (Theme Builder "Trevix Header" or the PHP fallback) */
.nav{position:fixed!important;z-index:9999!important;pointer-events:auto;left:50%;top:15px;transform:translateX(-50%);width:min(1280px,calc(100% - 30px))!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:.4s}
.nav.scrolled{box-shadow:0 18px 55px #0000000e;background:#fffffff2!important}
.admin-bar .nav{top:47px}
.nav .logo,.nav .logo .elementor-heading-title{letter-spacing:-.07em}
.nav .elementor-nav-menu--dropdown{border-radius:18px;border:1px solid var(--line);margin-top:14px!important;box-shadow:0 18px 55px #0000000e}
@media(max-width:900px){.nav{flex-wrap:wrap}}
@media(max-width:600px){.nav{width:calc(100% - 20px)!important;padding-left:16px!important}}

/* Footer */
.site-footer .logo .elementor-heading-title{letter-spacing:-.07em}
.tx-footer-menu .elementor-item{transition:.25s}
@media(max-width:900px){.site-footer .foot{display:block}.site-footer .footlinks{margin-top:35px;gap:55px}}

/* PHP fallback header/footer (used only if no Theme Builder template matches) */
.tx-fallback-nav{display:flex;align-items:center;justify-content:space-between;height:68px;border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:0 10px 0 23px;background:rgba(250,250,248,.72)}
.tx-fallback-nav .logo{font:700 25px "Space Grotesk";letter-spacing:-.07em}.tx-fallback-nav .logo i{font-style:normal;color:var(--purple)}
.tx-fallback-nav ul{display:flex;gap:27px;list-style:none;margin:0;padding:0;font-size:13px;font-weight:700;color:#4f555e}
.tx-fallback-nav .pill{background:var(--ink);color:#fff;border-radius:999px;padding:13px 18px;font-weight:700;font-size:13px}
.tx-fallback-footer{background:#090a0d;color:#fff;padding:70px 0 25px;margin-top:80px}
.tx-fallback-footer ul{list-style:none;margin:0;padding:0;display:flex;gap:22px;flex-wrap:wrap}.tx-fallback-footer a{color:#9da2ab;font-size:13px}.tx-fallback-footer a:hover{color:#fff}
.tx-fallback-footer .copy{margin-top:40px;padding-top:20px;border-top:1px solid #ffffff18;color:#777d87;font-size:11px}

/* FAQ: Elementor Accordion styled to match the original */
.tx-faq .elementor-accordion{border-top:1px solid var(--line)}
.tx-faq-dark .elementor-accordion{border-top-color:#292c31}
.tx-faq .elementor-accordion .elementor-accordion-item{border-width:0 0 1px;border-style:solid}
.tx-faq .elementor-accordion .elementor-tab-title{padding:23px 0;display:flex;align-items:center;justify-content:space-between}
.tx-faq .elementor-accordion .elementor-tab-title .elementor-accordion-icon{width:32px;height:32px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:11px;opacity:.9;float:none;order:2}
.tx-faq .elementor-accordion .elementor-tab-title a{order:1}
.tx-faq .elementor-accordion .elementor-tab-content{border-top:0;padding:0 45px 22px 0;max-width:760px}
.tx-form .elementor-field-group .elementor-field{transition:.25s}
.tx-form .elementor-field-group .elementor-field:focus{border-color:var(--purple);box-shadow:0 0 0 4px #6e49ff18;outline:0}

/* Portfolio filter + pricing toggle helpers (behaviour in assets/js/trevix.js) */
.filter,.switch .elementor-button{cursor:pointer}

/* Custom cursor (style chosen per page in functions.php) */
.cursor{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-50%);display:none;transition:width .2s,height .2s,background .2s}
body[data-cursor="dot"] .cursor{display:block;width:8px;height:8px;border-radius:50%;background:var(--purple);mix-blend-mode:multiply}
body[data-cursor="dot"] .cursor.big{width:18px;height:18px}
body[data-cursor="ring"] .cursor{display:block;width:14px;height:14px;border:1px solid var(--purple);border-radius:50%}
body[data-cursor="ring"] .cursor.big{width:34px;height:34px;background:#6e49ff18}
@media(max-width:600px),(hover:none){.cursor{display:none!important}}

/* Containers that were inline-flex/inline-block in the original shrink to their content */
.e-con.tx-fit,.e-con.eyebrow{width:fit-content;max-width:100%;align-self:flex-start}
