/* Anti-CLS: replica o comportamento do Bootstrap antes do CSS carregar */
.collapse:not(.show) { display: none; }
.collapsing { height: 0; overflow: hidden; transition: height .35s ease; }

@media (min-width: 992px) {
  .navbar-expand-lg .navbar-collapse { display: flex !important; flex-basis: auto; }
}
.navbar { min-height: 76px; }
@media (max-width: 768px){ .navbar{ min-height: 60px; } }


        :root {
            --primary-color: #5B37B7;
            --primary-light: #7E57C2;
            --secondary-color: #FF6B8B;
            --accent-color: #36D1DC;
            --neutral-dark: #2D3748;
            --neutral-light: #F7FAFC;
            --neutral-gray: #718096;
            --gradient-primary: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
            --gradient-accent: linear-gradient(135deg, var(--secondary-color) 0%, #FF9A8B 100%);
            --gradient-blue: linear-gradient(135deg, var(--accent-color) 0%, #5B86E5 100%);
            --gradient-dark: linear-gradient(135deg, var(--neutral-dark) 0%, #4A5568 100%);
        }
        
        * { margin: 0; padding: 0; box-sizing: border-box; }
        
        html, body {
            overflow-x: hidden;
            width: 100%;
        }

        body {
            font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
            font-size-adjust: 0.52;
            line-height: 1.6;
            color: var(--neutral-dark);
            background-color: #ffffff;
        }
        
        h1, h2, h3, h4, h5, h6 {
            font-family: Poppins, Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
            font-size-adjust: 0.50;
            font-weight: 700;
        }
        
        /* Header & Navigation */
        .navbar {
            background: rgba(255, 255, 255, 0.98);
            backdrop-filter: blur(10px);
            box-shadow: 0 2px 30px rgba(91, 55, 183, 0.08);
            padding: 15px 0;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 1000;
            width: 100%;
        }
        
        .navbar.scrolled {
            padding: 10px 0;
            box-shadow: 0 5px 25px rgba(91, 55, 183, 0.12);
        }
        
        .navbar-brand img {
            max-height: 50px;
            width: auto;
            transition: all 0.3s;
        }
        
        .nav-link {
            font-weight: 500;
            color: var(--neutral-dark) !important;
            margin: 0 10px;
            transition: all 0.3s;
            position: relative;
            padding: 8px 12px !important;
        }
        
        .nav-link::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 12px;
            width: 0;
            height: 3px;
            background: var(--gradient-primary);
            border-radius: 3px;
            transition: width 0.3s ease;
        }
        
        .nav-link:hover::after,
        .nav-link.active::after {
            width: calc(100% - 24px);
        }
        
        .nav-link:hover, .nav-link.active {
            color: var(--primary-color) !important;
        }
        
        .btn-primary {
            background: var(--gradient-primary);
            border: none;
            padding: 14px 32px;
            font-weight: 600;
            border-radius: 12px;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            overflow: hidden;
            z-index: 1;
        }
        
        .btn-primary::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: var(--gradient-accent);
            transition: left 0.4s ease;
            z-index: -1;
        }
        
        .btn-primary:hover::before { left: 0; }
        
        .btn-primary:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 30px rgba(91, 55, 183, 0.25);
        }
        
        .btn-outline-primary {
            border: 2px solid var(--primary-color);
            color: var(--primary-color);
            padding: 12px 28px;
            font-weight: 600;
            border-radius: 12px;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            background: transparent;
        }
        
        .btn-outline-primary:hover {
            background: var(--gradient-primary);
            color: white;
            transform: translateY(-3px);
            box-shadow: 0 10px 25px rgba(91, 55, 183, 0.2);
            border-color: transparent;
        }
        
        /* Hero Section */
        .hero {
            background: var(--gradient-dark);
            padding: 140px 0 100px;
            color: white;
            position: relative;
            overflow: hidden;
            margin-top: 76px;
        }
        
       .hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* APENAS 1 gradiente em vez de 3 */
    background: radial-gradient(circle at 20% 80%, rgba(255, 107, 139, 0.08) 0%, transparent 60%);
}
        
        .hero-content { position: relative; z-index: 2; }
        
        .hero h1 {
            font-size: 3.5rem;
            font-weight: 800;
            margin-bottom: 25px;
            line-height: 1.2;
        }
        
        .hero p {
            font-size: 1.25rem;
            max-width: 600px;
            margin: 0 auto 35px;
            color: rgba(255, 255, 255, 0.9);
        }
        
        .typewriter {
            background: var(--gradient-blue);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            font-weight: 800;
             display:inline-block;
  min-width: 10ch; /* reserva espaço */
  white-space: nowrap;
        }
        
        @media (max-width: 768px) {
    * { -webkit-tap-highlight-color: transparent; }
    
    .hero { 
        padding: 80px 0 40px !important; 
        margin-top: 60px !important; 
        background: var(--neutral-dark) !important;
    }
    .hero::before { display: none !important; }
    .hero h1 { font-size: 1.8rem !important; line-height: 1.2 !important; }
    .hero p { font-size: 1rem !important; margin-bottom: 20px !important; }
    .section-padding { padding: 60px 0 !important; }
    
    /* Mantenha o resto que já estava */
    .section-title h2 { font-size: 2.2rem; }
}
        
        @media (max-width: 576px) {
            .hero h1 { font-size: 2rem; }
            .hero p { font-size: 1rem; }
        }
        
        /* Sections */
        .section-padding { padding: 100px 0; }
        
        .section-title { text-align: center; margin-bottom: 70px; }
        
        .section-title h2 {
            font-size: 2.75rem;
            margin-bottom: 20px;
            position: relative;
            display: inline-block;
        }
        
        .section-title h2::after {
            content: '';
            position: absolute;
            width: 80px;
            height: 5px;
            background: var(--gradient-primary);
            bottom: -15px;
            left: 50%;
            transform: translateX(-50%);
            border-radius: 5px;
        }
        
        .section-title p {
            color: var(--neutral-gray);
            max-width: 700px;
            margin: 30px auto 0;
            font-size: 1.125rem;
        }
        
        /* Services */
        .service-card {
            background: white;
            border-radius: 16px;
            padding: 35px;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
            height: 100%;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            border: 1px solid rgba(0, 0, 0, 0.05);
            text-align: center;
            position: relative;
            overflow: hidden;
        }
        #services .service-card{
  max-width: 420px;
  margin: 0 auto;
}
        .service-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 5px;
            background: var(--gradient-primary);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.4s ease;
        }
        
        .service-card:hover::before { transform: scaleX(1); }
        
        .service-card:hover {
            transform: translateY(-12px);
            box-shadow: 0 20px 50px rgba(91, 55, 183, 0.12);
            border-color: rgba(91, 55, 183, 0.1);
        }
        
        .service-icon {
            width: 90px;
            height: 90px;
            margin: 0 auto 30px;
            background: var(--gradient-primary);
            border-radius: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 36px;
            transition: all 0.4s ease;
        }
        
        .service-card:hover .service-icon {
            transform: scale(1.1) rotate(5deg);
            background: var(--gradient-accent);
        }
        
        .service-card h4 { margin-bottom: 20px; color: var(--neutral-dark); font-size: 1.5rem; }
        .service-card p { color: var(--neutral-gray); margin-bottom: 25px; line-height: 1.7; }
        
        /* Portfolio */
        .portfolio-section { background: var(--neutral-light); }
        
        .portfolio-filter {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 12px;
            margin-bottom: 50px;
        }
        
        .filter-btn {
            background: white;
            border: 2px solid #E2E8F0;
            padding: 10px 24px;
            border-radius: 30px;
            font-weight: 500;
            transition: all 0.3s;
            cursor: pointer;
            color: var(--neutral-gray);
        }
        
        .filter-btn.active, .filter-btn:hover {
            background: var(--gradient-primary);
            color: white;
            border-color: var(--primary-color);
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(91, 55, 183, 0.2);
        }
        
        .portfolio-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
            gap: 35px;
        }
        
        .portfolio-item {
            border-radius: 18px;
            overflow: hidden;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            background: white;
        }
        
        .portfolio-item:hover {
            transform: translateY(-12px);
            box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15);
        }
        
        .portfolio-img { height: 250px; overflow: hidden; }
        
        .portfolio-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.6s ease;
        }
        
        .portfolio-item:hover .portfolio-img img { transform: scale(1.08); }
        
        .portfolio-info { padding: 25px; }
        
        .portfolio-info h4 { margin-bottom: 12px; color: var(--neutral-dark); font-size: 1.3rem; }
        
        .portfolio-info p {
            color: var(--neutral-gray);
            font-size: 0.95rem;
            margin-bottom: 18px;
            line-height: 1.6;
        }
        
        .portfolio-tag {
            display: inline-block;
            padding: 6px 15px;
            background: rgba(91, 55, 183, 0.1);
            color: var(--primary-color);
            border-radius: 20px;
            font-size: 0.85rem;
            font-weight: 500;
        }
        
        /* Pricing */
        .pricing-card {
            background: white;
            border-radius: 18px;
            padding: 45px 35px;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
            text-align: center;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            overflow: hidden;
            border: 1px solid rgba(0, 0, 0, 0.05);
            height: 100%;
            display: flex;
            flex-direction: column;
        }
        
        .pricing-card.featured {
            border: 2px solid var(--primary-color);
            transform: scale(1.02);
        }
        
        .pricing-card.featured::before {
            content: 'Mais Popular';
            position: absolute;
            top: 20px;
            right: -35px;
            background: var(--gradient-accent);
            color: white;
            padding: 6px 40px;
            font-size: 0.8rem;
            font-weight: 600;
            transform: rotate(45deg);
        }
        
        .pricing-card:hover {
            transform: translateY(-12px);
            box-shadow: 0 25px 60px rgba(0, 0, 0, 0.12);
        }
        
        .pricing-card.featured:hover { transform: scale(1.02) translateY(-12px); }
        
        .pricing-header { margin-bottom: 35px; padding-bottom: 25px; border-bottom: 1px solid #EDF2F7; }
        .pricing-title { font-size: 1.6rem; font-weight: 700; margin-bottom: 15px; color: var(--neutral-dark); }
        .pricing-price { font-size: 3.2rem; font-weight: 800; color: var(--primary-color); margin-bottom: 5px; line-height: 1; }
        .pricing-period { color: var(--neutral-gray); font-size: 1rem; }
        
        .pricing-features {
            list-style: none;
            margin-bottom: 40px;
            text-align: left;
            flex-grow: 1;
            padding-left: 0;
        }
        
        .pricing-features li {
            padding: 10px 0;
            display: flex;
            align-items: center;
            color: var(--neutral-gray);
        }
        
        .pricing-features li i { color: #48BB78; margin-right: 12px; font-size: 1.1rem; }
        
        /* Contact */
        .contact-section {
            background: var(--gradient-dark);
            color: white;
            position: relative;
            overflow: hidden;
        }
        
        .contact-section::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: 
                radial-gradient(circle at 10% 90%, rgba(255, 107, 139, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 90% 10%, rgba(54, 209, 220, 0.1) 0%, transparent 50%);
        }
        
        .contact-content { position: relative; z-index: 2; }
        
        .contact-form {
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            border-radius: 20px;
            padding: 45px;
            box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15);
            border: 1px solid rgba(255, 255, 255, 0.2);
        }
        
        .contact-form h3 { color: var(--neutral-dark); margin-bottom: 30px; font-size: 1.8rem; }
        
        .contact-form .form-control {
            padding: 15px 20px;
            border-radius: 12px;
            border: 1px solid #E2E8F0;
            margin-bottom: 20px;
            transition: all 0.3s;
            font-size: 1rem;
            background: white;
        }
        
        .contact-form .form-control:focus {
            border-color: var(--primary-color);
            box-shadow: 0 0 0 3px rgba(91, 55, 183, 0.1);
            outline: none;
        }
        
        .contact-form textarea.form-control { min-height: 150px; resize: vertical; }
        
        .contact-info { padding-right: 40px; }
        .contact-info h2 { font-size: 2.5rem; margin-bottom: 25px; }
        
        .contact-info p {
            color: rgba(255, 255, 255, 0.9);
            margin-bottom: 40px;
            font-size: 1.1rem;
        }
        
        .contact-item {
            display: flex;
            align-items: flex-start;
            margin-bottom: 25px;
            color: rgba(255, 255, 255, 0.9);
        }
        
        .contact-item i {
            font-size: 1.3rem;
            margin-right: 15px;
            color: var(--accent-color);
            margin-top: 5px;
        }
        
        /* Testimonials */
        .testimonial-card {
            background: white;
            border-radius: 18px;
            padding: 35px;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
            height: 100%;
            border: 1px solid rgba(0, 0, 0, 0.05);
            transition: all 0.3s ease;
        }
        
        .testimonial-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
        }
        
        .testimonial-text {
            font-style: italic;
            margin-bottom: 25px;
            color: var(--neutral-gray);
            line-height: 1.8;
            font-size: 1.05rem;
        }
        
        .testimonial-author { display: flex; align-items: center; }
        
        .testimonial-author img {
            width: 55px;
            height: 55px;
            border-radius: 50%;
            object-fit: cover;
            margin-right: 18px;
            border: 3px solid var(--primary-light);
        }
        
        .author-info h5 { margin-bottom: 5px; color: var(--neutral-dark); }
        .author-info p { color: var(--neutral-gray); font-size: 0.9rem; margin-bottom: 0; }
        
        /* About */
        .about-content { padding-right: 40px; }
        
        .stats-container {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 25px;
            margin-top: 40px;
        }
        
        .stat-item {
            background: white;
            padding: 25px;
            border-radius: 15px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
            border: 1px solid rgba(0, 0, 0, 0.05);
        }
        
        .stat-number {
            font-size: 2.5rem;
            font-weight: 800;
            color: var(--primary-color);
            margin-bottom: 5px;
            line-height: 1;
        }
        
        .stat-label { color: var(--neutral-gray); font-size: 0.95rem; }
        
        /* Footer */
        .footer {
            background: var(--neutral-dark);
            color: #CBD5E0;
            padding: 80px 0 0;
        }
        
        .footer h5 {
            color: white;
            margin-bottom: 25px;
            font-size: 1.2rem;
            position: relative;
            padding-bottom: 12px;
        }
        
        .footer h5::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 40px;
            height: 3px;
            background: var(--gradient-primary);
            border-radius: 3px;
        }
        
        .footer-links { list-style: none; padding: 0; }
        .footer-links li { margin-bottom: 12px; }
        
        .footer-links a {
            color: #CBD5E0;
            text-decoration: none;
            transition: all 0.3s;
            display: inline-block;
        }
        
        .footer-links a:hover { color: white; padding-left: 8px; }
        
        .social-icons { display: flex; gap: 15px; margin-top: 25px; }
        
        .social-icons a {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 44px;
            height: 44px;
            background: rgba(255, 255, 255, 0.1);
            color: white;
            border-radius: 50%;
            transition: all 0.3s;
            font-size: 1.1rem;
        }
        
        .social-icons a:hover {
            background: var(--gradient-primary);
            transform: translateY(-3px);
        }
        
        .copyright {
            border-top: 1px solid #4A5568;
            padding: 25px 0;
            margin-top: 70px;
            text-align: center;
            color: #A0AEC0;
        }
        
        /* WhatsApp Button */
        .whatsapp-float {
            position: fixed;
            bottom: 30px;
            right: 30px;
            width: 65px;
            height: 65px;
            background: linear-gradient(135deg, #25D366 0%, #1EBEA5 100%);
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 32px;
            box-shadow: 0 8px 25px rgba(37, 211, 102, 0.4);
            z-index: 1000;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            text-decoration: none;
        }
        
        .whatsapp-float:hover {
            transform: scale(1.1) translateY(-5px);
            box-shadow: 0 15px 35px rgba(37, 211, 102, 0.5);
        }
        
        .whatsapp-float::after {
            content: 'Fale Conosco';
            position: absolute;
            right: 80px;
            white-space: nowrap;
            background: white;
            color: var(--neutral-dark);
            padding: 10px 20px;
            border-radius: 30px;
            font-size: 14px;
            font-weight: 600;
            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
            opacity: 0;
            transform: translateX(20px);
            transition: all 0.3s;
            pointer-events: none;
        }
        
        .whatsapp-float:hover::after { opacity: 1; transform: translateX(0); }
        
        /* Back to Top */
        .back-to-top {
            position: fixed;
            bottom: 30px;
            left: 30px;
            width: 55px;
            height: 55px;
            background: var(--gradient-primary);
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 22px;
            box-shadow: 0 8px 25px rgba(91, 55, 183, 0.3);
            z-index: 999;
            opacity: 0;
            visibility: hidden;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            cursor: pointer;
            border: none;
        }
        
        .back-to-top.active { opacity: 1; visibility: visible; }
        
        .back-to-top:hover {
            transform: translateY(-5px);
            box-shadow: 0 12px 30px rgba(91, 55, 183, 0.4);
        }
        
        /* Responsive Improvements */
        @media (max-width: 1199px) {
            .pricing-card.featured::before { right: -40px; }
        }
        
        @media (max-width: 991px) {
            .hero h1 { font-size: 3rem; }
            .section-title h2 { font-size: 2.5rem; }
            .contact-info { padding-right: 0; margin-bottom: 50px; }
            .about-content { padding-right: 0; margin-bottom: 50px; }
            .pricing-card.featured { transform: scale(1); }
            .pricing-card.featured:hover { transform: translateY(-12px); }
            .pricing-card.featured::before { top: 15px; right: -38px; font-size: 0.75rem; }
        }
        
        @media (max-width: 768px) {
            .section-padding { padding: 80px 0; }
            .hero h1 { font-size: 2.5rem; }
            .section-title h2 { font-size: 2.2rem; }
            .portfolio-grid { grid-template-columns: 1fr; gap: 30px; }
            .contact-form { padding: 35px 25px; }
            .stats-container { grid-template-columns: 1fr; }
            .navbar .btn-primary { margin-top: 15px; width: 100%; text-align: center; }
        }
        
        @media (max-width: 576px) {
            .hero { padding: 100px 0 60px; }
            .hero h1 { font-size: 2rem; }
            .section-title h2 { font-size: 1.8rem; }
            .service-card { padding: 30px 25px; }
            .pricing-card { padding: 35px 25px; }
            .portfolio-filter { gap: 8px; }
            .filter-btn { padding: 8px 18px; font-size: 0.9rem; }
            .back-to-top { left: 20px; bottom: 20px; width: 50px; height: 50px; }
            .whatsapp-float { right: 20px; bottom: 20px; width: 60px; height: 60px; font-size: 28px; }
            .whatsapp-float::after { display: none; }
        }
        
        /* Mobile Navigation Fix */
        .navbar-toggler {
            border: none;
            padding: 8px 10px;
            outline: none;
        }
        
        .navbar-toggler:focus { box-shadow: none; outline: none; }

        .navbar-toggler-icon{
            width: 1.35em;
            height: 1.35em;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(91,55,183,0.95)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
        }

        .navbar-collapse { overflow-x: hidden; }
        
        /* Form Validation */
        .was-validated .form-control:invalid { border-color: #FC8181; }
        .was-validated .form-control:valid { border-color: #48BB78; }
        
        .invalid-feedback {
            color: #FC8181;
            font-size: 0.875rem;
            margin-top: -3px;
            margin-bottom: 15px;
        }
        
        /* Loading Spinner */
        .spinner-border { width: 1.5rem; height: 1.5rem; }
        
        /* Process Steps */
        .process-steps {
            background: var(--neutral-light);
            border-radius: 20px;
            padding: 40px;
            margin-top: 50px;
            border: 1px solid rgba(0, 0, 0, 0.05);
        }
        
        .process-step {
            text-align: center;
            padding: 20px;
        }
        
        .step-number {
            width: 50px;
            height: 50px;
            background: var(--gradient-primary);
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            font-size: 1.5rem;
            margin: 0 auto 20px;
        }
        
        section[id] { scroll-margin-top: 90px; }
        


        /* Validação de formulários */
        .form-control.is-valid {
            border-color: #28a745;
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
        }

        .form-control.is-invalid {
            border-color: #dc3545;
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
        }


 /* Proporção das thumbs do portfólio (vale para desktop e mobile) */
.portfolio-img { aspect-ratio: 16 / 9; }
.portfolio-img img { width: 100%; height: 100%; object-fit: cover; }

/* Avatar do depoimento sempre quadrado */
.testimonial-author img { aspect-ratio: 1 / 1; }

/* Otimização extra só no mobile */
@media (max-width: 768px) {
  .portfolio-img img,
  .testimonial-author img,
  .about-content + div img {
    content-visibility: auto;
  }
}

    
    /* REMOVE EFEITOS HOVER EM MOBILE */
    .service-card:hover,
    .portfolio-item:hover,
    .pricing-card:hover,
    .testimonial-card:hover,
    .btn-primary:hover,
    .btn-outline-primary:hover,
    .whatsapp-float:hover,
    .back-to-top:hover,
    .social-icons a:hover {
        transform: none !important;
        box-shadow: none !important;
    }
    
    /* REMOVE ANIMAÇÕES PESADAS */
    .service-card::before,
    .service-card:hover .service-icon,
    .portfolio-item:hover .portfolio-img img {
        transform: none !important;
        animation: none !important;
    }
    
    /* MODAIS MAIS LEVES */
  @media (max-width: 768px) {
  .modal-dialog {
    margin: .5rem auto !important; /* mantém centralizado */
  }
}
    /* REDUZ PADDING DOS CARDS */
    .service-card,
    .pricing-card,
    .testimonial-card,
    .contact-form {
        padding: 20px 15px !important;
    }
    
    .service-icon {
        width: 60px !important;
        height: 60px !important;
        font-size: 24px !important;
        margin-bottom: 15px !important;
    }

        /* Estilo para campos obrigatórios */
        .form-label[style*="font-weight:700"]::after {
            content: " *";
            color: #dc3545;
        }
        /* Estilo opcional para o link de cliente */
.nav-link[href="/cliente"] {
    color: var(--primary-color) !important;
    font-weight: 600;
}

.nav-link[href="/cliente"] i {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.pricing-old-price{
  color:#A0AEC0;
  text-decoration: line-through;
  font-weight:600;
  margin-bottom:8px;
}
.hero-lead{
  margin: 0 auto 16px;
  max-width: 920px;
  line-height: 1.55;
}
.portfolio-item { transition: opacity .2s ease, transform .2s ease; }
.portfolio-item.is-hiding { opacity: .15; transform: scale(.98); }
.portfolio-item[hidden] { display: none !important; }
/* ============================================
   CORREÇÕES DE RESPONSIVIDADE - OTIMIZADO SEM CLS
   ============================================ */

/* Apenas o essencial, sem forçar reflow */
img {
    max-width: 100%;
    height: auto;
    display: block; /* Evita espaços extras */
}

/* CORREÇÃO SUAVE: Apenas o necessário para mobile */
@media (max-width: 767.98px) {
    
    /* Reset suave - sem !important abusivo */
    .row [class*="col-"] {
        width: 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    /* Espaçamento consistente */
    .row [class*="col-"] {
        margin-bottom: 20px;
    }
    
    /* Último item sem margem */
    .row [class*="col-"]:last-child {
        margin-bottom: 0;
    }
    
    /* Ajuste para containers com gap */
    .row.g-3 [class*="col-"],
    .row.g-4 [class*="col-"] {
        margin-bottom: 20px;
    }
}

/* CORREÇÃO ESPECÍFICA PARA O ELEMENTO COM CLS */
section.py-4[style*="background:#ffffff"] .lead.hero-lead {
    min-height: 80px; /* Reserva espaço para o texto */
    margin-bottom: 20px;
}

/* Ajustes para tablets */
@media (min-width: 768px) and (max-width: 991.98px) {
    .row.g-3.justify-content-center .col-md-4,
    .row.mt-5.text-center.g-3 .col-md-4 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

/* Ajustes mobile fino */
@media (max-width: 576px) {
    .hero .mt-4 {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    
    .hero .btn-lg {
        width: 100%;
        margin: 0 !important;
    }
    
    .typewriter {
        min-width: auto;
        white-space: normal;
        display: inline-block;
    }
}

/* Garantia anti-overflow */
body {
    overflow-x: hidden;
    width: 100%;
}