:root {
    --primary-color: #2ECC71;
    --primary-dark: #27AE60;
    --secondary-color: #0f3f33;
    --accent-color: #3498DB;
    --danger-color: #E74C3C;
    --warning-color: #F39C12;
    --text-dark: #2C3E50;
    --text-light: #7F8C8D;
    --bg-light: #F8F9FA;
    --bg-gradient: linear-gradient(135deg, #56d797 0%, #41549c 100%);
    --glass-bg: rgba(255, 255, 255, 0.25);
    --glass-border: rgba(255, 255, 255, 0.18);
    --brand-emerald: #2fb36d;
    --brand-green: #1f7a4a;
    --brand-deep: #0b3a2a;
    --brand-sky: #2ea28a;
    --text: #15171a;
    --muted: #5a6167;
    --bg: #ffffff;
    --card: rgba(255, 255, 255, .14);
    --stroke: rgba(0, 0, 0, .08);
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family: 'Inter', sans-serif;
    background: var(--bg-light);
    color: var(--text-dark);
    overflow-x: hidden;
    transition: all 0.3s ease;
}

.img-fluid { max-width: 100%; height: auto; }

.case-logo img.img-fluid { max-height: 88px; }

img:hover { scale: 1.02; transition: scale .35s; }
img { transition: scale .35s; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
    .floating { animation: none !important; }
}

.glass {
    background: var(--glass-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15);
    border-radius: 20px;
}

.glass-benef {
    background: var(--card);
    border: 1px solid var(--stroke);
    border-radius: 22px;
    box-shadow: 0 18px 60px rgba(0, 0, 0, .22);
    backdrop-filter: blur(18px) saturate(140%);
}

.glass:hover { box-shadow: 0 8px 32px 0 rgba(31,38,135,.25); transform: translateY(-2px); }

.mn-csuc { place-items: center; justify-items: center; }

.navbar { transition: all 0.3s ease; padding: 1.2rem 0; z-index: 1000; }
.navbar.scrolled {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--glass-border);
    padding: 0.8rem 0;
}

.navbar-brand { font-weight: 700; font-size: 1.8rem; color: var(--primary-color) !important; display:flex; align-items:center; gap:.5rem; }

.nav-link {
    font-weight: 500; color: var(--text-dark) !important; margin: 0 1rem; transition: color 0.3s ease; position: relative;
    filter: drop-shadow(0 0 15px #fff);
}
.nav-link::after { content:''; position:absolute; bottom:-5px; left:0; width:0; height:2px; background:var(--primary-color); transition: width .3s ease; }
.nav-link:hover::after { width:100%; }
.nav-link:hover { color: var(--primary-color) !important; }

.theme-toggle { background: var(--glass-bg); border:1px solid var(--glass-border); border-radius:50px; padding:.5rem .7rem; cursor:pointer; transition: all .3s ease; }
.theme-toggle:hover { transform: scale(1.1); }

.hero {
    min-height: 100vh; position: relative; display:flex; align-items:center;
    background: var(--bg-gradient); overflow:hidden; padding-top:90px;
}
.hero::before {
    content:''; position:absolute; inset:0;
    background:url('data:image/svg+xml,%3Csvg width="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%239C92AC" fill-opacity="0.05"%3E%3Cpath d="M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E');
}

.hero-content { position: relative; z-index: 2; }
.hero h1 { font-size: clamp(2.1rem, 4.5vw, 3.2rem); font-weight: 800; color:#fff; margin-bottom:1.5rem; line-height:1.2; }
.hero p { font-size:1.25rem; color: rgba(255,255,255,.9); margin-bottom:2rem; }
.floating { animation: floating 3s ease-in-out infinite; }
@keyframes floating { 0%,100%{ transform: translateY(0)} 50%{ transform: translateY(-20px)} }

.btn-primary-custom {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    border: none; color:#fff; padding:1rem 2.5rem; font-weight:600; border-radius:50px; transition: all .3s ease;
    box-shadow: 0 4px 15px 0 rgba(46, 204, 113, .3);
}
.btn-primary-custom:hover { transform: translateY(-3px); box-shadow: 0 6px 20px 0 rgba(46,204,113,.4); color:#fff; }

.btn-outline-custom { background:transparent; border:2px solid #fff; color:#fff; padding:1rem 2.5rem; font-weight:600; border-radius:50px; transition: all .3s ease; }
.btn-outline-custom:hover { background:#fff; color:var(--primary-color); transform: translateY(-3px); }

.demo-interface { background:#fff; border-radius:15px; box-shadow:0 20px 60px rgba(0,0,0,.15); overflow:hidden; position:relative; }
.demo-interface .window-bar { background:#f5f5f5; padding:.75rem; display:flex; align-items:center; gap:.5rem; }
.demo-interface .window-dot { width:12px; height:12px; border-radius:50%; }
.demo-interface .window-dot.red{ background:#ff5f56 } .demo-interface .window-dot.yellow{ background:#ffbd2e } .demo-interface .window-dot.green{ background:#27c93f }
.demo-interface .demo-content { padding:0; background: linear-gradient(180deg, #f8f9fa 0%, #ffffff 100%); }

.feature-card{ padding:2rem; border-radius:20px; transition:.3s; height:100%; position:relative; overflow:hidden; }
.feature-card::before{ content:''; position:absolute; top:-50%; right:-50%; width:200%; height:200%; background: radial-gradient(circle, var(--primary-color) 0%, transparent 70%); opacity:0; transition:.3s; }
.feature-card:hover::before{ opacity:.05 } .feature-card:hover{ transform: translateY(-10px); }
.feature-icon{ width:70px; height:70px; border-radius:20px; display:flex; align-items:center; justify-content:center; font-size:1.8rem; margin-bottom:1.5rem; background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); color:#fff; }

.stats-card{ padding:2rem; border-radius:20px; text-align:center; }
.stats-number{ font-size:3.5rem; font-weight:800; background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.stats-number:before { content:'+'; }

.comparacao-table{ background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 10px 40px rgba(0,0,0,.1); }
.comparacao-table .before{ background:#fee; border-right:3px solid #f5f5f5; }
.comparacao-table .after{ background:#efe; }
[data-theme="dark"] .comparacao-table { background:var(--glass-bg); }
[data-theme="dark"] .comparacao-table .before{ background:rgba(231,76,60,.1) } [data-theme="dark"] .comparacao-table .after{ background:rgba(46,204,113,.1) }

.section-pad{ padding:84px 0; }

.timeline{ position:relative; padding:2rem 0; }
.timeline::before{ content:''; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--primary-color); transform: translateX(-50%); }
.timeline-item{ position:relative; margin-bottom:3rem; }
.timeline-item::before{ content:''; position:absolute; left:50%; top:50%; width:20px; height:20px; background:var(--primary-color); border:4px solid var(--bg-light); border-radius:50%; transform: translate(-50%,-50%); z-index:1; }
.timeline-content{ width:45%; padding:2rem; background:#fff; border-radius:15px; box-shadow:0 5px 20px rgba(0,0,0,.1); }
.timeline-item:nth-child(odd) .timeline-content{ margin-right:auto; } .timeline-item:nth-child(even) .timeline-content{ margin-left:auto; }
.timeline-content h4 i{ color: var(--primary-dark) !important; }

.testimonial-card{ padding:2rem; border-radius:20px; background:#fff; box-shadow:0 5px 20px rgba(0,0,0,.1); position:relative; }
.testimonial-card::before{ content:'"'; position:absolute; top:-20px; left:30px; font-size:100px; color:var(--primary-color); opacity:.2; font-family: Georgia, serif; }
.testimonial-author{ display:flex; align-items:center; gap:1rem; margin-top:1.5rem; }
.testimonial-avatar{ width:60px; height:60px; border-radius:50%; background:var(--primary-color); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:600; font-size:1.5rem; }

.case-logo{ width:180px; height:100px; display:flex; align-items:center; justify-content:center; padding:1.5rem; border-radius:15px; transition:.3s; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.1); }
[data-theme="dark"] .case-logo{ background: var(--glass-bg); backdrop-filter: blur(10px); }
.case-logo:hover{ transform: scale(1.1); box-shadow: 0 5px 20px rgba(0,0,0,.15); }

.accordion-button:not(.collapsed){ background-color: var(--primary-color); color:#fff; }
.accordion-button:focus{ box-shadow:none; border-color: var(--primary-color); }
.accordion-item{ border:1px solid rgba(0,0,0,.1); margin-bottom:1rem; border-radius:10px !important; overflow:hidden; }

.contato-form{ background:#fff; border-radius:20px; padding:3rem; box-shadow:0 10px 40px rgba(0,0,0,.1); }

.form-control, .form-select{ border-radius:10px; border:1px solid #ddd; padding:.75rem 1rem; transition:.3s; }
.form-control:focus, .form-select:focus{ border-color: var(--primary-color); box-shadow: 0 0 0 .2rem rgba(46,204,113,.25); }

.chat-widget{ position:fixed; bottom:30px; right:30px; z-index:1000; }
.chat-button{ width:60px; height:60px; border-radius:50%; background: linear-gradient(135deg,var(--primary-color),var(--primary-dark)); color:#fff; border:none; box-shadow:0 5px 20px rgba(46,204,113,.4); cursor:pointer; transition:.3s; position:relative; }
.chat-button:hover{ transform: scale(1.1); }
.chat-button .notification-dot{ position:absolute; top:5px; right:5px; width:12px; height:12px; background:var(--danger-color); border-radius:50%; animation: pulse-dot 2s infinite; }
@keyframes pulse-dot{ 0%{transform:scale(1)} 50%{transform:scale(1.2)} 100%{transform:scale(1)} }

.chat-window{ position:absolute; bottom:80px; right:0; width:350px; height:500px; background:#fff; border-radius:20px; box-shadow:0 10px 40px rgba(0,0,0,.2); display:none; flex-direction:column; overflow:hidden; }
.chat-window.active{ display:flex; }
.chat-header{ background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); color:#fff; padding:1rem; display:flex; justify-content:space-between; align-items:center; }
.chat-body{ flex:1; padding:1rem; overflow-y:auto; }
.chat-footer{ padding:1rem; border-top:1px solid #eee; }

.video-container{ position:relative; padding-bottom:56.25%; border-radius:20px; overflow:hidden; box-shadow:0 10px 40px rgba(0,0,0,.2); }
.video-container iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.resource-card{ padding:2rem; border-radius:15px; background:#fff; box-shadow:0 5px 20px rgba(0,0,0,.1); transition:.3s; text-align:center; }
.resource-card:hover{ transform: translateY(-5px); box-shadow:0 10px 30px rgba(0,0,0,.15); }
.resource-icon{ font-size:3rem; color:var(--primary-color); margin-bottom:1rem; }

footer{ background: var(--secondary-color); color:#fff; padding:4rem 0 2rem; margin-top:5rem; }

.back-to-top{ position:fixed; bottom:30px; left:30px; width:50px; height:50px; background: var(--primary-color); color:#fff; border:none; border-radius:50%; display:none; align-items:center; justify-content:center; cursor:pointer; transition:.3s; z-index:999; }
.back-to-top.show{ display:flex; }
.back-to-top:hover{ background: var(--primary-dark); transform: translateY(-5px); }

.loader{ position:fixed; inset:0; background:#fff; display:flex; justify-content:center; align-items:center; z-index:9999; transition: opacity .5s ease; }
.loader.hidden{ opacity:0; pointer-events:none; }
.loader-circle{ width:50px; height:50px; border:5px solid #f3f3f3; border-top:5px solid var(--primary-color); border-radius:50%; animation: spin 1s linear infinite; }
@keyframes spin{ 0%{ transform: rotate(0)} 100%{ transform: rotate(360deg)} }

@media (max-width: 768px){
    .hero h1{ font-size:2rem; }
    .stats-number{ font-size:2rem; }
    .timeline::before, .timeline-item::before{ left:30px; }
    .timeline-content{ width: calc(100% - 60px); margin-left:60px !important; }
    .comparacao-table .before, .comparacao-table .after{ padding:1rem; }
    .chat-window{ width:90vw; right:5vw; }
}

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip: rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; top:-40px; left:0; background:var(--primary-color); color:#fff; padding:8px; text-decoration:none; z-index:100; }
.skip-link:focus{ top:0; }
*:focus{ outline:3px solid var(--primary-color); outline-offset:2px; }

html{ scroll-behavior:smooth; }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background: var(--bg-light); }
::-webkit-scrollbar-thumb{ background: var(--primary-color); border-radius:10px; }
::-webkit-scrollbar-thumb:hover{ background: var(--primary-dark); }