/*
Theme Name: onOrbit Marketing
Theme URI: https://onorbitmarketing.com
Author: onOrbit Marketing
Author URI: https://onorbitmarketing.com
Description: Tema personalizado para onOrbit Marketing - Consultoria Digital focada em resultados mensuráveis e crescimento previsível.
Version: 10.7.114
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: onorbit
Tags: custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, woocommerce
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 8.0
*/

/* ========================================
   Inter (self-hosted), elimina render-blocking
   do Google Fonts e dependência de DNS externo.
   font-display: swap mantém texto visível enquanto
   a fonte carrega (boa nota no PageSpeed).
======================================== */
@font-face {
    font-family: 'Inter';
    src: url('fonts/inter-400.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('fonts/inter-500.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('fonts/inter-600.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('fonts/inter-700.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('fonts/inter-800.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* ========================================
   CSS Variables (Design System)
======================================== */
:root {
    /* Colors */
    --background: 0 0% 100%;
    --foreground: 222 47% 11%;
    --card: 0 0% 100%;
    --card-foreground: 222 47% 11%;
    --popover: 0 0% 100%;
    --popover-foreground: 222 47% 11%;
    --primary: 217 91% 60%;
    /* v10.7.22 - fundo de botao primario com contraste AA (>=4.5:1) contra
       texto branco. --primary (60%) da apenas 3.63:1 e falha; 50% da 5.05:1.
       Mantemos --primary para acentos/realces claros sobre fundo escuro. */
    --primary-btn: 217 91% 50%;
    --primary-btn-hover: 217 91% 45%;
    --primary-foreground: 0 0% 100%;
    --secondary: 210 40% 96%;
    --secondary-foreground: 222 47% 11%;
    --muted: 210 40% 96%;
    --muted-foreground: 215 16% 47%;
    --accent: 142 71% 45%;
    --accent-foreground: 0 0% 100%;
    --destructive: 0 84% 60%;
    --destructive-foreground: 0 0% 100%;
    --border: 214 32% 91%;
    --input: 214 32% 91%;
    --ring: 217 91% 60%;
    --radius: 0.75rem;
    
    /* Brand Colors */
    --navy: 222 47% 11%;
    --navy-light: 217 33% 17%;
    --blue: 217 91% 60%;
    --blue-light: 217 91% 70%;
    --green: 142 71% 45%;
    --orange: 25 95% 53%;
    --purple: 263 70% 50%;
    
    /* Hero Gradient */
    --hero-gradient: linear-gradient(135deg, hsl(222 47% 11%) 0%, hsl(217 33% 17%) 100%);
    
    /* Shadows */
    --shadow-sm: 0 1px 2px 0 hsl(222 47% 11% / 0.05);
    --shadow-md: 0 4px 6px -1px hsl(222 47% 11% / 0.1);
    --shadow-lg: 0 10px 15px -3px hsl(222 47% 11% / 0.1);
    --shadow-xl: 0 20px 25px -5px hsl(222 47% 11% / 0.1);
    --shadow-icon: 0 8px 30px -4px hsl(217 91% 60% / 0.3);
}

/* ========================================
   Reset & Base Styles
======================================== */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

/* Offset de âncoras para header fixo */
[id] {
    scroll-margin-top: 80px;
}

body {
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding-top: 5rem; /* Compensar header fixo mobile (80px) */
}

@media (min-width: 768px) {
    body {
        padding-top: 6rem; /* Compensar header fixo desktop (96px) */
    }
}

/* Dashboard não precisa de padding extra - já tem */
body.page-template-page-dashboard {
    padding-top: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

button {
    cursor: pointer;
    font-family: inherit;
}

ul, ol {
    list-style: none;
}

/* ========================================
   Container
======================================== */
.container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem;
}

@media (min-width: 640px) {
    .container {
        padding: 0 2rem;
    }
}

/* ========================================
   Typography
======================================== */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    line-height: 1.2;
    color: hsl(var(--foreground));
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 2rem;
}

h3 {
    font-size: 1.5rem;
}

@media (min-width: 768px) {
    h1 {
        font-size: 3.5rem;
    }
    h2 {
        font-size: 2.5rem;
    }
}

@media (min-width: 1024px) {
    h1 {
        font-size: 4rem;
    }
}

.section-label {
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--primary));
}

.section-title {
    font-size: 1.875rem;
    font-weight: 700;
    color: hsl(var(--foreground));
    line-height: 1.2;
}

@media (min-width: 768px) {
    .section-title {
        font-size: 2.25rem;
    }
}

/* ========================================
   Buttons
======================================== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 9999px;
    border: 2px solid transparent;
    transition: all 0.3s ease;
    text-decoration: none;
    cursor: pointer;
}

.btn-primary {
    background-color: hsl(var(--primary-btn));
    color: hsl(var(--primary-foreground));
    border-color: hsl(var(--primary-btn));
}

.btn-primary:hover {
    background-color: hsl(var(--primary-btn-hover));
}

.btn-outline {
    background-color: transparent;
    color: hsl(var(--foreground));
    border-color: currentColor;
}

.btn-outline:hover {
    background-color: hsl(var(--foreground));
    color: hsl(var(--background));
}

.btn-outline-white {
    background-color: transparent;
    color: #ffffff;
    border-color: #ffffff;
}

.btn-outline-white:hover {
    background-color: #ffffff;
    color: hsl(var(--navy));
}

.btn-lg {
    padding: 1rem 2rem;
    font-size: 1rem;
}

.btn-full {
    width: 100%;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
}

/* Ensure button content is always visible and centered */
.btn-primary,
.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

/* ========================================
   Header
======================================== */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    background-color: hsl(var(--background) / 0.95);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid hsl(var(--border));
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 5rem;
}

@media (min-width: 768px) {
    .header-inner {
        height: 6rem;
    }
}

/* Logo */
.site-logo {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.logo-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: hsl(var(--primary));
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-icon-inner {
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid hsl(var(--primary-foreground));
    border-radius: 50%;
}

.logo-text {
    font-size: 1.5rem;
    font-weight: 700;
    color: hsl(var(--foreground));
}

.logo-text span {
    color: hsl(var(--primary));
}

/* Navigation */
.main-nav {
    display: none;
    align-items: center;
    gap: 2rem;
}

@media (min-width: 768px) {
    .main-nav {
        display: flex;
    }
}

.nav-link {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    transition: color 0.2s ease;
}

.nav-link:hover {
    color: hsl(var(--foreground));
}

/* Header Actions */
.header-actions {
    display: none;
    align-items: center;
    gap: 1rem;
}

@media (min-width: 768px) {
    .header-actions {
        display: flex;
    }
}

.header-icon-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
    background: none;
    border: none;
    transition: color 0.2s ease;
}

.header-icon-btn:hover {
    color: hsl(var(--foreground));
}

.cart-count {
    position: absolute;
    top: -0.5rem;
    right: -0.5rem;
    width: 1.25rem;
    height: 1.25rem;
    background-color: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: flex;
    padding: 0.5rem;
    background: none;
    border: none;
    color: hsl(var(--foreground));
}

@media (min-width: 768px) {
    .mobile-menu-toggle {
        display: none;
    }
}

/* Mobile Menu */
.mobile-menu {
    display: none;
    padding: 1rem 0;
    border-top: 1px solid hsl(var(--border));
}

.mobile-menu.active {
    display: block;
}

@media (min-width: 768px) {
    .mobile-menu {
        display: none !important;
    }
}

.mobile-nav {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.mobile-nav .nav-link {
    padding: 0.5rem 0;
}

/* ========================================
   Hero Section
======================================== */
.hero-section {
    background: var(--hero-gradient);
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 5rem;
    position: relative;
    overflow: hidden;
}

.hero-content {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;
    padding: 4rem 0;
}

@media (min-width: 1024px) {
    .hero-content {
        grid-template-columns: 1fr 1fr;
        padding: 6rem 0;
    }
}

.hero-text {
    color: #ffffff;
    position: relative;
    z-index: 10;
}

.hero-text h1 {
    color: #ffffff;
    margin-bottom: 1.5rem;
    line-height: 1.1;
}

.hero-text p {
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.8);
    max-width: 36rem;
    margin-bottom: 2rem;
}

@media (min-width: 768px) {
    .hero-text p {
        font-size: 1.25rem;
    }
}

.hero-text p strong {
    color: #ffffff;
    font-weight: 600;
}

.hero-buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 640px) {
    .hero-buttons {
        flex-direction: row;
    }
}

/* Hero Orbit Animation */
.hero-orbit {
    position: relative;
    height: 400px;
    display: none;
    align-items: center;
    justify-content: center;
}

@media (min-width: 1024px) {
    .hero-orbit {
        display: flex;
        height: 500px;
    }
}

.orbit-center {
    width: 10rem;
    height: 10rem;
    border-radius: 50%;
    background-color: hsl(var(--primary));
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.orbit-center svg {
    width: 5rem;
    height: 5rem;
    color: #ffffff;
}

.orbit-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.orbit-ring-1 {
    width: 20rem;
    height: 20rem;
}

.orbit-ring-2 {
    width: 25rem;
    height: 25rem;
    border-color: rgba(255, 255, 255, 0.05);
}

/* Floating Icons */
.icon-float {
    position: absolute;
    border-radius: 1rem;
    box-shadow: var(--shadow-icon);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: float 6s ease-in-out infinite;
}

.icon-float svg {
    width: 1.5rem;
    height: 1.5rem;
}

@keyframes float {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-20px) rotate(3deg);
    }
}

/* Hero Bottom Curve */
.hero-curve {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 5rem;
    background-color: hsl(var(--background));
    clip-path: ellipse(75% 100% at 50% 100%);
}

/* ========================================
   Features Bar
======================================== */
.features-bar {
    padding: 2rem 0;
    background-color: hsl(var(--secondary) / 0.3);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .features-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.feature-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.feature-icon svg {
    width: 1.5rem;
    height: 1.5rem;
    color: #ffffff;
}

.feature-icon.bg-primary { background-color: hsl(var(--primary)); }
.feature-icon.bg-green { background-color: hsl(var(--green)); }
.feature-icon.bg-orange { background-color: hsl(var(--orange)); }
.feature-icon.bg-purple { background-color: hsl(var(--purple)); }
.feature-icon.bg-blue   { background-color: hsl(var(--blue)); }

.feature-text h3 {
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.feature-text p {
    font-size: 0.75rem;
    color: hsl(var(--muted-foreground));
}

/* ========================================
   Services Section
======================================== */
.services-section {
    padding: 5rem 0;
    background-color: hsl(var(--secondary) / 0.3);
}

.services-header {
    text-align: center;
    margin-bottom: 3rem;
}

.services-header .section-label {
    margin-bottom: 0.75rem;
}

.services-header .section-title {
    max-width: 42rem;
    margin: 0 auto;
}

.services-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .services-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Service Card */
.service-card {
    background-color: hsl(var(--card));
    border-radius: 0.75rem;
    padding: 1.5rem;
    border: 1px solid hsl(var(--border));
    transition: all 0.3s ease;
    display: block;
    text-decoration: none;
}

.service-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
    border-color: hsl(var(--primary) / 0.3);
}

.service-card .feature-icon {
    margin-bottom: 1rem;
}

.service-card h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.service-card .card-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--primary));
    transition: gap 0.3s ease;
}

.service-card:hover .card-link {
    gap: 0.75rem;
}

/* ========================================
   About Section
======================================== */
.about-section {
    padding: 5rem 0;
}

.about-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .about-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.about-image {
    position: relative;
}

.about-image img {
    border-radius: 1.5rem;
    width: 100%;
}

.about-image-overlay {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    right: auto;
    background-color: hsl(var(--card));
    border-radius: 0.75rem;
    padding: 0.75rem 1rem;
    box-shadow: var(--shadow-lg);
}

.about-content .section-label {
    margin-bottom: 1rem;
}

.about-content .section-title {
    margin-bottom: 1.5rem;
}

.about-content p {
    color: hsl(var(--muted-foreground));
    margin-bottom: 1.5rem;
}

.about-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 2rem;
}

.about-list-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.about-list-item svg {
    width: 1.25rem;
    height: 1.25rem;
    color: hsl(var(--primary));
    flex-shrink: 0;
}

/* ========================================
   Process Section
======================================== */
.process-section {
    padding: 5rem 0;
    background-color: hsl(var(--secondary) / 0.3);
}

.process-header {
    text-align: center;
    margin-bottom: 3rem;
}

.process-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .process-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .process-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.process-step {
    position: relative;
    padding-left: 3rem;
}

.process-number {
    position: absolute;
    left: 0;
    top: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background-color: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    font-size: 0.875rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.process-step h3 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
}

.process-step p {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

/* ========================================
   Testimonials Section
======================================== */
.testimonials-section {
    padding: 5rem 0;
}

.testimonials-header {
    text-align: center;
    margin-bottom: 3rem;
}

.testimonials-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .testimonials-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .testimonials-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.testimonial-card {
    background-color: hsl(var(--card));
    border-radius: 1rem;
    padding: 1.5rem;
    border: 1px solid hsl(var(--border));
}

.testimonial-stars {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1rem;
}

.testimonial-stars svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: hsl(var(--orange));
    color: hsl(var(--orange));
}

.testimonial-text {
    color: hsl(var(--muted-foreground));
    margin-bottom: 1rem;
    font-style: italic;
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.testimonial-avatar {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: hsl(var(--secondary));
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: hsl(var(--primary));
}

.testimonial-info h4 {
    font-size: 0.875rem;
    font-weight: 600;
}

.testimonial-info p {
    font-size: 0.75rem;
    color: hsl(var(--muted-foreground));
}

/* ========================================
   Problems Section
======================================== */
.problems-section {
    padding: 5rem 0;
    background-color: hsl(var(--secondary) / 0.3);
}

.problems-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .problems-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.problems-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ========================================
   CTA Section
======================================== */
.cta-section {
    padding: 5rem 0;
}

.cta-box {
    background: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--primary) / 0.8) 100%);
    border-radius: 1.5rem;
    padding: 3rem 2rem;
    text-align: center;
}

@media (min-width: 768px) {
    .cta-box {
        padding: 4rem 3rem;
    }
}

.cta-box h2 {
    color: hsl(var(--primary-foreground));
    margin-bottom: 1rem;
}

.cta-box p {
    color: hsl(var(--primary-foreground) / 0.8);
    max-width: 42rem;
    margin: 0 auto 2rem;
}

.cta-box .btn {
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
}

.cta-box .btn:hover {
    background-color: hsl(var(--background) / 0.9);
}

/* ========================================
   Footer
======================================== */
.site-footer {
    background-color: hsl(var(--navy));
    color: #ffffff;
    padding: 4rem 0 0;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .footer-grid {
        grid-template-columns: 2fr 1fr 1fr 1fr;
        gap: 3rem;
    }
}

.footer-brand .site-logo {
    margin-bottom: 1.5rem;
}

.footer-brand .logo-text {
    color: #ffffff;
}

.footer-brand > p {
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 1.5rem;
    max-width: 20rem;
}

.footer-contact {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.footer-contact a,
.footer-contact span {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    transition: color 0.2s ease;
}

.footer-contact a:hover {
    color: #ffffff;
}

.footer-contact svg {
    width: 1.25rem;
    height: 1.25rem;
    color: hsl(var(--primary));
}

.footer-column h4,
.footer-column .footer-heading {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    margin-top: 0;
    margin-bottom: 1rem;
    color: #ffffff;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* v10.7.22 - o menu do rodape passa a ter <ul> (acessibilidade: <li> tem de
   estar dentro de <ul>/<ol>). A <ul> assume o layout em coluna e os <li>
   perdem marcadores/margens, para o aspeto ficar igual ao anterior. */
.footer-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.footer-menu-list li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    transition: color 0.2s ease;
}

.footer-links a:hover {
    color: #ffffff;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin-top: 3rem;
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

@media (min-width: 768px) {
    .footer-bottom {
        flex-direction: row;
        justify-content: space-between;
    }
}

.footer-bottom p {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.875rem;
}

.social-links {
    display: flex;
    gap: 1rem;
}

.social-link {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease;
}

.social-link:hover {
    background-color: hsl(var(--primary));
}

.social-link svg {
    width: 1.25rem;
    height: 1.25rem;
}

/* ========================================
   Page Templates
======================================== */
.page-hero {
    background: var(--hero-gradient);
    padding: 8rem 0 5rem;
    text-align: center;
}

.page-hero .section-label {
    color: hsl(var(--primary));
    margin-bottom: 1rem;
}

.page-hero h1 {
    color: #ffffff;
    margin-bottom: 1.5rem;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}

.page-hero p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.125rem;
    max-width: 42rem;
    margin: 0 auto;
}

/* Service Page Hero */
.service-hero {
    padding: 8rem 0 5rem;
    background: linear-gradient(135deg, hsl(var(--primary) / 0.1) 0%, hsl(var(--background)) 50%, hsl(var(--secondary) / 0.1) 100%);
}

.service-hero-content {
    max-width: 56rem;
    margin: 0 auto;
    text-align: center;
}

.service-hero-icon {
    width: 4rem;
    height: 4rem;
    background-color: hsl(var(--primary) / 0.1);
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
}

.service-hero-icon svg {
    width: 2rem;
    height: 2rem;
    color: hsl(var(--primary));
}

.service-hero h1 {
    margin-bottom: 1.5rem;
}

.service-hero h1 span {
    color: hsl(var(--primary));
}

.service-hero p {
    color: hsl(var(--muted-foreground));
    font-size: 1.125rem;
    max-width: 42rem;
    margin: 0 auto 2rem;
}

/* Stats Grid */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    padding: 4rem 0;
}

@media (min-width: 1024px) {
    .stats-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.stat-card {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    padding: 1.5rem;
    text-align: center;
}

.stat-value {
    font-size: 1.875rem;
    font-weight: 700;
    color: hsl(var(--primary));
    margin-bottom: 0.5rem;
}

@media (min-width: 768px) {
    .stat-value {
        font-size: 2.25rem;
    }
}

.stat-label {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

/* ========================================
   Contact Page
======================================== */
.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    padding: 3rem 0;
}

@media (min-width: 1024px) {
    .contact-info-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.contact-info-card {
    background-color: hsl(var(--card));
    border-radius: 1rem;
    padding: 1.5rem;
    border: 1px solid hsl(var(--border));
    text-align: center;
    transition: all 0.3s ease;
}

.contact-info-card:hover {
    box-shadow: var(--shadow-lg);
    border-color: hsl(var(--primary) / 0.3);
}

.contact-info-card .icon-wrapper {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background-color: hsl(var(--primary) / 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
}

.contact-info-card svg {
    width: 1.5rem;
    height: 1.5rem;
    color: hsl(var(--primary));
}

.contact-info-card h3 {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.contact-info-card p {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

/* Contact Form Section */
.contact-form-section {
    padding: 4rem 0;
    background-color: hsl(var(--secondary) / 0.2);
}

.contact-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .contact-form-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* ========================================
   Forms
======================================== */
.form-group {
    margin-bottom: 1.25rem;
}

.form-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--foreground));
    margin-bottom: 0.5rem;
}

.form-input,
.form-textarea,
.form-select {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    background-color: hsl(var(--background));
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    color: hsl(var(--foreground));
    transition: all 0.2s ease;
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
    outline: none;
    border-color: hsl(var(--primary));
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

.form-input::placeholder,
.form-textarea::placeholder {
    color: hsl(var(--muted-foreground));
}

.form-textarea {
    resize: vertical;
    min-height: 120px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 640px) {
    .form-row {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ========================================
   Cards
======================================== */
.card {
    background-color: hsl(var(--card));
    border-radius: 1rem;
    border: 1px solid hsl(var(--border));
    padding: 1.5rem;
}

.card-header {
    margin-bottom: 1rem;
}

.card-title {
    font-size: 1.125rem;
    font-weight: 600;
}

.card-description {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

/* ========================================
   Cart Page
======================================== */
.cart-section {
    padding: 4rem 0;
}

.cart-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
}

.cart-header .icon-wrapper {
    width: 3rem;
    height: 3rem;
    background-color: hsl(var(--primary) / 0.1);
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cart-header svg {
    width: 1.5rem;
    height: 1.5rem;
    color: hsl(var(--primary));
}

.cart-empty {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    padding: 3rem;
    text-align: center;
}

.cart-empty svg {
    width: 4rem;
    height: 4rem;
    color: hsl(var(--muted-foreground));
    margin: 0 auto 1rem;
}

.cart-empty h2 {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

.cart-empty p {
    color: hsl(var(--muted-foreground));
    margin-bottom: 1.5rem;
}

.cart-items {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.cart-item {
    padding: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid hsl(var(--border));
}

.cart-item:last-child {
    border-bottom: none;
}

.cart-item-info h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.cart-item-info p {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

.cart-item-badge {
    display: inline-block;
    font-size: 0.75rem;
    background-color: hsl(var(--primary) / 0.1);
    color: hsl(var(--primary));
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    margin-top: 0.5rem;
}

.cart-item-price {
    font-size: 1.25rem;
    font-weight: 700;
}

.cart-item-actions {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.cart-remove-btn {
    background: none;
    border: none;
    color: hsl(var(--destructive));
    padding: 0.5rem;
    transition: opacity 0.2s ease;
}

.cart-remove-btn:hover {
    opacity: 0.8;
}

.cart-summary {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    padding: 1.5rem;
}

.cart-summary-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.cart-summary-row.total {
    font-size: 1.25rem;
    font-weight: 700;
    padding-top: 1rem;
    border-top: 1px solid hsl(var(--border));
}

.cart-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.5rem;
}

@media (min-width: 640px) {
    .cart-actions {
        flex-direction: row;
    }
    
    .cart-actions .btn:last-child {
        flex: 1;
    }
}

/* ========================================
   Modal / Dialog Styles
======================================== */
.modal-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.modal-content {
    background-color: hsl(var(--background));
    border-radius: 1rem;
    max-width: 42rem;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    transform: translateY(20px);
    transition: transform 0.3s ease;
}

.modal-overlay.active .modal-content {
    transform: translateY(0);
}

.modal-header {
    padding: 1.5rem;
    border-bottom: 1px solid hsl(var(--border));
}

.modal-title {
    font-size: 1.5rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 0.5rem;
}

.modal-description {
    color: hsl(var(--muted-foreground));
    text-align: center;
}

.modal-body {
    padding: 1.5rem;
}

.modal-footer {
    padding: 1.5rem;
    border-top: 1px solid hsl(var(--border));
    display: flex;
    gap: 1rem;
}

.modal-footer .btn {
    flex: 1;
}

.modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    padding: 0.5rem;
    color: hsl(var(--muted-foreground));
    transition: color 0.2s ease;
}

.modal-close:hover {
    color: hsl(var(--foreground));
}

/* ========================================
   WooCommerce Overrides
======================================== */
.woocommerce .products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}

.woocommerce .product {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

.woocommerce .product:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

.woocommerce .product h2 {
    font-size: 1rem;
    margin-bottom: 0.5rem;
}

.woocommerce .price {
    font-size: 1.25rem;
    font-weight: 700;
    color: hsl(var(--primary));
}

.woocommerce .button,
.woocommerce button.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 9999px;
    background-color: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    border: none;
    transition: all 0.3s ease;
}

.woocommerce .button:hover,
.woocommerce button.button:hover {
    background-color: hsl(var(--primary) / 0.9);
}

/* ========================================
   WooCommerce - Páginas de Compra (Cart & Checkout)
======================================== */

/* ── Wrapper ── */
.onorbit-woo-main {
    padding-top: 3rem;
    padding-bottom: 5rem;
    min-height: 70vh;
}

.onorbit-woo-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.onorbit-woo-container > .woocommerce,
.onorbit-woo-container .woocommerce {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

/* Título da página */
.onorbit-woo-page-title {
    font-size: 2rem;
    font-weight: 800;
    color: hsl(var(--foreground));
    margin: 0 0 2.5rem;
    letter-spacing: -0.02em;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid hsl(var(--border));
}

/* ════════════════════════════════════════
   CARRINHO
════════════════════════════════════════ */

/* Grid: tabela esquerda, totais direita */
.woocommerce-cart .woocommerce {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem;
}

.woocommerce-cart form.woocommerce-cart-form {
    width: 100%;
    min-width: 0;
}

.woocommerce-cart .cart-collaterals {
    width: 100% !important;
    float: none !important;
    display: flex;
    justify-content: flex-end;
}

.woocommerce-cart .cart_totals {
    width: 400px;
    max-width: 100%;
}

/* Tabela do carrinho */
.woocommerce-cart table.shop_table {
    width: 100% !important;
    border-collapse: collapse;
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1px 6px hsl(0 0% 0% / 0.05);
    font-size: 0.9375rem;
    table-layout: fixed;
}

/* Larguras das colunas: remove | thumbnail | nome + descrição | preço | qtd | subtotal */
.woocommerce-cart table.shop_table col.product-remove    { width: 44px; }
.woocommerce-cart table.shop_table col.product-thumbnail { width: 72px; }
.woocommerce-cart table.shop_table col.product-name      { width: auto; }
.woocommerce-cart table.shop_table col.product-price     { width: 100px; }
.woocommerce-cart table.shop_table col.product-quantity  { width: 90px; }
.woocommerce-cart table.shop_table col.product-subtotal  { width: 100px; }

/* Reordenar colunas visualmente: remove passa para depois do subtotal */
.woocommerce-cart table.shop_table thead tr,
.woocommerce-cart table.shop_table tbody tr {
    display: table-row;
}

.woocommerce-cart table.shop_table th.product-remove,
.woocommerce-cart table.shop_table td.product-remove {
    display: none; /* esconder posição original */
}

/* Injectar o X como última coluna via pseudo-elemento não é possível em <a> externos */
/* Usamos: mostrar product-remove no fim via CSS reorder com display:flex na row */
.woocommerce-cart table.shop_table tbody tr {
    display: flex;
    align-items: center;
}

.woocommerce-cart table.shop_table tbody tr td {
    display: flex;
    align-items: center;
}

.woocommerce-cart table.shop_table tbody tr td.product-remove {
    display: flex;
    order: 10;
    width: 44px;
    min-width: 44px;
    justify-content: center;
}

/* Row de actions (cupão / atualizar) — reverter flex para não quebrar o colspan */
.woocommerce-cart table.shop_table tbody tr:has(> td.actions) {
    display: table-row;
}
.woocommerce-cart table.shop_table tbody tr:has(> td.actions) td.actions {
    display: table-cell;
}

.woocommerce-cart table.shop_table tbody tr td.product-thumbnail { order: 1; width: 72px; min-width: 72px; flex-shrink: 0; }
.woocommerce-cart table.shop_table tbody tr td.product-name      { order: 2; flex: 1; min-width: 0; }
.woocommerce-cart table.shop_table tbody tr td.product-price     { order: 3; width: 100px; min-width: 100px; justify-content: flex-end; }
.woocommerce-cart table.shop_table tbody tr td.product-quantity  { order: 4; width: 90px; min-width: 90px; justify-content: center; }
.woocommerce-cart table.shop_table tbody tr td.product-subtotal  { order: 5; width: 100px; min-width: 100px; justify-content: flex-end; }

/* Header também em flex */
.woocommerce-cart table.shop_table thead tr th.product-remove    { display: flex; order: 10; width: 44px; min-width: 44px; }
.woocommerce-cart table.shop_table thead tr th.product-thumbnail { order: 1; width: 72px; min-width: 72px; flex-shrink: 0; }
.woocommerce-cart table.shop_table thead tr th.product-name      { order: 2; flex: 1; min-width: 0; }
.woocommerce-cart table.shop_table thead tr th.product-price     { order: 3; width: 100px; min-width: 100px; }
.woocommerce-cart table.shop_table thead tr th.product-quantity  { order: 4; width: 90px; min-width: 90px; }
.woocommerce-cart table.shop_table thead tr th.product-subtotal  { order: 5; width: 100px; min-width: 100px; }

.woocommerce-cart table.shop_table th {
    background: hsl(var(--muted));
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--muted-foreground));
    padding: 0.875rem 1rem;
    border-bottom: 1px solid hsl(var(--border));
    text-align: left;
    white-space: nowrap;
}

.woocommerce-cart table.shop_table td {
    padding: 1rem;
    border-bottom: 1px solid hsl(var(--border) / 0.4);
    vertical-align: middle;
    color: hsl(var(--foreground));
}

.woocommerce-cart table.shop_table tr:last-child td {
    border-bottom: none;
}

.woocommerce-cart table.shop_table td.product-remove {
    width: 44px;
    text-align: center;
    padding-right: 0;
}

.woocommerce-cart table.shop_table td.product-thumbnail {
    width: 72px;
    padding-right: 0;
}

.woocommerce-cart table.shop_table td.product-thumbnail img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 0.5rem;
    border: 1px solid hsl(var(--border));
    display: block;
}

/* Nome + descrição do produto */
.woocommerce-cart table.shop_table td.product-name {
    padding-left: 0.75rem;
}

.woocommerce-cart table.shop_table td.product-name a {
    font-weight: 600;
    color: hsl(var(--foreground));
    text-decoration: none;
    font-size: 0.9375rem;
    display: block;
    margin-bottom: 0.25rem;
}

.woocommerce-cart table.shop_table td.product-name a:hover {
    color: hsl(var(--primary));
}

/* Descrição curta abaixo do nome */
.woocommerce-cart table.shop_table td.product-name .variation,
.woocommerce-cart table.shop_table td.product-name dl {
    font-size: 0.8rem;
    color: hsl(var(--muted-foreground));
    margin: 0;
}

.woocommerce-cart table.shop_table td.product-price,
.woocommerce-cart table.shop_table td.product-subtotal {
    font-weight: 600;
    color: hsl(var(--primary));
    white-space: nowrap;
    font-size: 0.9375rem;
}

/* Botão remover */
.woocommerce-cart a.remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: hsl(0 0% 93%);
    color: hsl(0 0% 45%) !important;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s;
    line-height: 1;
}

.woocommerce-cart a.remove:hover {
    background: hsl(0 0% 75%);
    color: hsl(0 0% 20%) !important;
}

/* Quantidade */
.woocommerce-cart input.qty {
    width: 56px;
    padding: 0.45rem 0.5rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    background: hsl(var(--background));
    color: hsl(var(--foreground));
    font-size: 0.9rem;
    text-align: center;
    font-family: inherit;
}

.woocommerce-cart input.qty:focus {
    outline: none;
    border-color: hsl(var(--primary));
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

/* Ações (cupão + atualizar) */
.woocommerce-cart .actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: hsl(var(--muted) / 0.4);
    border-top: 1px solid hsl(var(--border));
    flex-wrap: wrap;
}

.woocommerce-cart .coupon {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.woocommerce-cart .coupon #coupon_code {
    padding: 0.6rem 0.875rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    background: hsl(var(--background));
    color: hsl(var(--foreground));
    font-size: 0.875rem;
    width: 150px;
    font-family: inherit;
}

.woocommerce-cart .coupon #coupon_code::placeholder { color: hsl(var(--muted-foreground)); }

.woocommerce-cart .coupon #coupon_code:focus {
    outline: none;
    border-color: hsl(var(--primary));
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

.woocommerce-cart .actions .button,
.woocommerce-cart .coupon .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.125rem;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 9999px;
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground)) !important;
    border: none;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.2s;
    text-decoration: none;
}

.woocommerce-cart button[name="update_cart"] {
    background: transparent !important;
    color: hsl(var(--muted-foreground)) !important;
    border: 1px solid hsl(var(--border)) !important;
    margin-right: auto;
}

/* Card totais */
.woocommerce-cart .cart_totals {
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 2px 12px hsl(0 0% 0% / 0.06);
    width: 400px;
    max-width: 100%;
}

.woocommerce-cart .cart_totals h2 {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--muted-foreground));
    margin: 0;
    padding: 1rem 1.5rem;
    background: hsl(var(--muted));
    border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-cart .cart_totals table {
    width: 100%;
    border-collapse: collapse;
}

.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
    padding: 0.875rem 1.5rem;
    font-size: 0.875rem;
    border-bottom: 1px solid hsl(var(--border) / 0.5);
    vertical-align: middle;
}

.woocommerce-cart .cart_totals table th {
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    text-align: left;
    width: 45%;
}

.woocommerce-cart .cart_totals table td {
    text-align: right;
    color: hsl(var(--foreground));
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
    font-weight: 700;
    font-size: 1.0625rem;
    border-bottom: none;
    padding-top: 1.125rem;
    padding-bottom: 0;
}

.woocommerce-cart .cart_totals .order-total td { color: hsl(var(--primary)); }

.woocommerce-cart .wc-proceed-to-checkout {
    padding: 1.25rem 1.5rem;
    border-top: 1px solid hsl(var(--border));
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.9rem 1.5rem;
    font-size: 0.9375rem;
    font-weight: 700;
    border-radius: 9999px;
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground)) !important;
    text-decoration: none;
    transition: all 0.3s;
    letter-spacing: 0.01em;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: hsl(var(--primary) / 0.88);
    box-shadow: 0 6px 20px hsl(var(--primary) / 0.28);
    transform: translateY(-1px);
}

/* Responsive carrinho */
@media (max-width: 600px) {
    .woocommerce-cart .cart-collaterals {
        justify-content: stretch;
    }
    .woocommerce-cart .cart_totals {
        width: 100%;
    }
}

/* ════════════════════════════════════════
   CHECKOUT
════════════════════════════════════════ */

/* Reset floats WC padrão */
.woocommerce-checkout .col2-set::after,
.woocommerce-checkout .col2-set::before { display: none !important; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    clear: both;
}

/* Grid principal */
.woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: 1fr 340px;
    column-gap: 2.5rem;
    row-gap: 1.5rem;
    align-items: start;
}

/* 1. Cupão - linha 1, largura total */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-NoticeGroup,
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message {
    grid-column: 1 / -1;
    grid-row: 1;
}

/* Cupão - design clean e simples */
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    background: transparent;
    border: none;
    border-bottom: 1px solid hsl(var(--border));
    border-radius: 0;
    padding: 0 0 1rem;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
    list-style: none;
    margin-bottom: 0;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle a {
    color: hsl(var(--primary));
    font-weight: 500;
    text-decoration: none;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle a:hover {
    text-decoration: underline;
}

/* Formulário cupão expandido */
.woocommerce-checkout .checkout_coupon {
    background: hsl(var(--muted) / 0.4);
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    padding: 1.25rem 1.5rem;
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    grid-column: 1 / -1;
    flex-wrap: wrap;
}

.woocommerce-checkout .checkout_coupon p {
    margin: 0;
    flex: 1;
    min-width: 200px;
}

.woocommerce-checkout .checkout_coupon .input-text {
    width: 100%;
    padding: 0.7rem 0.875rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    background: hsl(var(--background));
    color: hsl(var(--foreground));
    font-size: 0.875rem;
    font-family: inherit;
}

.woocommerce-checkout .checkout_coupon .button {
    padding: 0.7rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 9999px;
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground)) !important;
    border: none;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}

/* 2. Formulário billing - esq */
.woocommerce-checkout #customer_details {
    grid-column: 1;
    grid-row: 2;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* 3. Pagamento - esq, linha 3 */
.woocommerce-checkout #payment {
    grid-column: 1;
    grid-row: 3;
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1px 6px hsl(0 0% 0% / 0.04);
}

/* 4. Resumo - dir, linhas 2-3 */
.woocommerce-checkout #order_review_heading {
    grid-column: 2;
    grid-row: 2;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--muted-foreground));
    margin: 0;
    padding: 1rem 1.5rem;
    background: hsl(var(--muted));
    border: 1px solid hsl(var(--border));
    border-bottom: none;
    border-radius: 1rem 1rem 0 0;
}

.woocommerce-checkout #order_review {
    grid-column: 2;
    grid-row: 2 / 4;
    position: sticky;
    top: 7rem;
    align-self: start;
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-top: none;
    border-radius: 0 0 1rem 1rem;
    overflow: hidden;
    box-shadow: 0 2px 12px hsl(0 0% 0% / 0.06);
}

/* Cards billing/shipping */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1px 6px hsl(0 0% 0% / 0.04);
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--muted-foreground));
    margin: 0;
    padding: 1rem 1.5rem;
    background: hsl(var(--muted));
    border-bottom: 1px solid hsl(var(--border));
}

/* Grid 2 colunas dos campos */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1.25rem;
    padding: 1.5rem;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    padding: 1.5rem;
    display: block;
    width: 100%;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row {
    width: 100%;
    text-align: left;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row label {
    text-align: left;
    display: block;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper textarea {
    width: 100% !important;
    box-sizing: border-box;
    text-align: left;
}

.woocommerce-checkout .form-row-wide { grid-column: 1 / -1; }

/* Labels e inputs */
.woocommerce-checkout .form-row { margin-bottom: 0; }

.woocommerce-checkout .form-row label {
    display: block;
    font-size: 0.8rem;
    font-weight: 500;
    color: hsl(var(--foreground) / 0.65);
    margin-bottom: 0.3rem;
}

.woocommerce-checkout .form-row .required { color: hsl(0 70% 55%); }

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
    width: 100%;
    padding: 0.7rem 0.875rem;
    font-size: 0.9rem;
    background: hsl(var(--background));
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    color: hsl(var(--foreground));
    font-family: inherit;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
    outline: none;
    border-color: hsl(var(--primary));
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

/* Notas da encomenda */
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row label {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--foreground) / 0.75);
    margin-bottom: 0.5rem;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper textarea {
    min-height: 90px;
    resize: vertical;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

/* Checkbox morada diferente */
#ship-to-different-address {
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 1rem;
    padding: 1rem 1.5rem !important;
    box-shadow: 0 1px 6px hsl(0 0% 0% / 0.04);
}

#ship-to-different-address label {
    display: flex !important;
    align-items: center;
    gap: 0.625rem;
    cursor: pointer;
    font-weight: 500;
    font-size: 0.9rem;
    color: hsl(var(--foreground));
    margin: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    background: none !important;
    padding: 0 !important;
    border: none !important;
}

/* Métodos de pagamento */
.woocommerce-checkout #payment ul.payment_methods {
    list-style: none;
    padding: 1.25rem 1.5rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-checkout #payment ul.payment_methods li {
    background: hsl(var(--background));
    border: 1px solid hsl(var(--border));
    border-radius: 0.625rem;
    padding: 0.875rem 1rem;
    transition: border-color 0.2s;
}

.woocommerce-checkout #payment ul.payment_methods li label {
    font-weight: 500;
    font-size: 0.9rem;
    cursor: pointer;
    color: hsl(var(--foreground));
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-transform: none !important;
    letter-spacing: 0 !important;
    background: none !important;
    padding: 0 !important;
    border: none !important;
}

.woocommerce-checkout #payment .payment_box {
    background: hsl(var(--muted) / 0.6);
    border-radius: 0.5rem;
    padding: 0.75rem 1rem;
    margin-top: 0.625rem;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

/* Política de privacidade + termos */
.woocommerce-checkout #payment .place-order {
    padding: 1.25rem 1.5rem;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text {
    font-size: 0.8125rem;
    color: hsl(var(--muted-foreground));
    line-height: 1.65;
    margin-bottom: 1rem;
    padding: 0.875rem 1rem;
    background: hsl(var(--muted) / 0.4);
    border-radius: 0.5rem;
    border-left: 3px solid hsl(var(--border));
    text-align: left;
    width: 100%;
    box-sizing: border-box;
}

/* Checkbox Termos e condições */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    margin-bottom: 1.25rem;
    width: 100%;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.875rem 1rem;
    background: hsl(var(--muted) / 0.3);
    border-radius: 0.5rem;
    border: 1px solid hsl(var(--border));
    width: 100%;
    box-sizing: border-box;
    text-align: left;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: hsl(var(--primary));
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label {
    font-size: 0.875rem;
    color: hsl(var(--foreground) / 0.8);
    line-height: 1.5;
    cursor: pointer;
    margin: 0 !important;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label a {
    color: hsl(var(--primary));
    font-weight: 500;
    text-decoration: none;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label a:hover {
    text-decoration: underline;
}

/* Botão confirmar */
.woocommerce-checkout #payment #place_order {
    display: block;
    width: 100%;
    padding: 1rem 1.5rem;
    font-size: 1rem;
    font-weight: 700;
    border-radius: 9999px;
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    border: none;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.3s;
    letter-spacing: 0.01em;
}

.woocommerce-checkout #payment #place_order:hover {
    background: hsl(var(--primary) / 0.88);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px hsl(var(--primary) / 0.28);
}

/* Resumo tabela */
.woocommerce-checkout #order_review table.shop_table {
    width: 100%;
    border-collapse: collapse;
}

.woocommerce-checkout #order_review table.shop_table thead th {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: hsl(var(--muted-foreground));
    padding: 0.75rem 1.5rem;
    border-bottom: 1px solid hsl(var(--border));
    text-align: left;
    background: hsl(var(--muted) / 0.4);
}

.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th {
    padding: 0.8rem 1.5rem;
    border-bottom: 1px solid hsl(var(--border) / 0.4);
    font-size: 0.875rem;
    color: hsl(var(--foreground));
    vertical-align: middle;
}

.woocommerce-checkout #order_review table.shop_table .order-total td,
.woocommerce-checkout #order_review table.shop_table .order-total th {
    font-weight: 700;
    font-size: 1rem;
    border-bottom: none;
    padding: 1rem 1.5rem;
}

.woocommerce-checkout #order_review table.shop_table .order-total td {
    color: hsl(var(--primary));
}

/* Mensagens */
.woocommerce-checkout .woocommerce-error {
    background: hsl(0 84% 97%);
    border-left: 3px solid hsl(0 84% 50%);
    border-radius: 0.5rem;
    padding: 0.75rem 1.125rem;
    font-size: 0.875rem;
    color: hsl(0 60% 35%);
    list-style: none;
    margin-bottom: 1rem;
    grid-column: 1 / -1;
}

/* Responsive */
@media (max-width: 960px) {
    .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
    .woocommerce-checkout #order_review_heading { grid-column: 1; grid-row: auto; border-radius: 1rem 1rem 0 0; }
    .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; border-radius: 0 0 1rem 1rem; border-top: none; }
    .woocommerce-checkout #payment { grid-column: 1; grid-row: auto; }
    .woocommerce-checkout #customer_details { grid-row: auto; }
}

@media (max-width: 600px) {
    .onorbit-woo-container { padding: 0 1rem; }
    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
}


/* Carrinho: ocultar cálculo de envio (serviço digital) */
.woocommerce-cart .cart_totals .shipping,
.woocommerce-cart .cart_totals .woocommerce-shipping-calculator,
.woocommerce-cart .cart_totals .shipping-calculator-button,
.woocommerce-cart .cart_totals td.shipping p,
.woocommerce-cart .cart_totals td.shipping ul,
.woocommerce-cart .cart_totals td.shipping .woocommerce-shipping-destination {
    display: none !important;
}

.woocommerce-cart .cart_totals tr.shipping {
    display: none !important;
}


/* Checkout: cada form-row ocupa a sua célula de grid corretamente */
.woocommerce-checkout .form-row-first {
    grid-column: 1;
}

.woocommerce-checkout .form-row-last {
    grid-column: 2;
}

.woocommerce-checkout .form-row-wide {
    grid-column: 1 / -1 !important;
}

/* Garantir que label e input ficam na mesma célula */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row input,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row select,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row input,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row select {
    width: 100% !important;
    box-sizing: border-box;
    min-width: 0;
}


/* Checkout: política privacidade + termos alinhados à esquerda no #payment */
.woocommerce-checkout #payment .place-order {
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    width: 100% !important;
    box-sizing: border-box;
    text-align: left !important;
    float: none !important;
    clear: both;
}

/* Notas da encomenda: label alinhada ao input */
.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--muted-foreground));
    margin: 0;
    padding: 1rem 1.5rem;
    background: hsl(var(--muted));
    border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    padding: 1.25rem 1.5rem !important;
    display: block !important;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row {
    display: flex;
    flex-direction: column;
    width: 100% !important;
    margin: 0 !important;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row label {
    display: block;
    text-align: left !important;
    font-size: 0.8rem;
    font-weight: 500;
    color: hsl(var(--foreground) / 0.65);
    margin-bottom: 0.4rem;
    padding: 0;
}

.woocommerce-checkout .woocommerce-additional-fields__field-wrapper textarea {
    width: 100% !important;
    box-sizing: border-box;
    min-height: 90px;
    resize: vertical;
    text-align: left;
    padding: 0.7rem 0.875rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    background: hsl(var(--background));
    color: hsl(var(--foreground));
    font-family: inherit;
    font-size: 0.875rem;
}

/* ========================================
   WPForms Overrides
======================================== */
.wpforms-container .wpforms-form {
    max-width: 100%;
}

.wpforms-container .wpforms-field {
    margin-bottom: 1.25rem;
}

.wpforms-container .wpforms-field-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--foreground));
    margin-bottom: 0.5rem;
}

.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="url"],
.wpforms-container textarea,
.wpforms-container select {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    background-color: hsl(var(--background));
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    color: hsl(var(--foreground));
    transition: all 0.2s ease;
}

.wpforms-container input:focus,
.wpforms-container textarea:focus,
.wpforms-container select:focus {
    outline: none;
    border-color: hsl(var(--primary));
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

.wpforms-container .wpforms-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 9999px;
    background-color: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    border: none;
    width: 100%;
    transition: all 0.3s ease;
}

.wpforms-container .wpforms-submit:hover {
    background-color: hsl(var(--primary) / 0.9);
}

/* ========================================
   Utility Classes
======================================== */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }

.mt-0 { margin-top: 0; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }

.pt-20 { padding-top: 5rem; }

.hidden { display: none; }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Gradient Text */
.gradient-text {
    background: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--accent)) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Animation Utilities */
.animate-fade-in {
    animation: fadeIn 0.6s ease-out forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive Visibility */
@media (max-width: 767px) {
    .hide-mobile { display: none !important; }
}

@media (min-width: 768px) {
    .hide-desktop { display: none !important; }
}

/* ================================
   DASHBOARD STYLES
   ================================ */

/* ========================================
   Dashboard Layout
======================================== */
/* ========================================
   Dashboard Layout - FULL WIDTH SIMPLE
======================================== */
.dashboard-layout {
    display: flex;
    min-height: calc(100vh - 80px);
    background-color: #f8f9fb;
    width: 100vw;
    max-width: 100vw;
    margin: 0;
    padding: 0;
    position: relative;
}

/* Force full viewport width on dashboard */
body.page-template-page-dashboard {
    overflow-x: hidden;
}

body.page-template-page-dashboard .site-main,
body.page-template-page-dashboard main {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 80px 0 0 0 !important;
}

@media (max-width: 1024px) {
    .dashboard-layout {
        flex-direction: column;
    }
}

/* ========================================
   Dashboard Sidebar - Lovable Style (Dark) - FLEX LAYOUT
======================================== */
.dashboard-sidebar {
    background-color: #1a1f2e;
    border-right: none;
    padding: 2rem 1.5rem;
    flex-shrink: 0;
    width: 280px;
    height: calc(100vh - 80px);
    position: sticky;
    top: 80px;
    overflow-y: auto;
    z-index: 100;
    transition: transform 0.3s ease;
}

@media (max-width: 1024px) {
    .dashboard-sidebar {
        position: fixed !important;
        left: 0 !important;
        top: 80px !important;
        height: calc(100vh - 80px) !important;
        width: 280px !important;
        max-height: calc(100vh - 80px) !important;
        padding: 1.5rem 1rem !important;
        transform: translateX(-100%) !important;
        box-shadow: 2px 0 20px rgba(0, 0, 0, 0.3) !important;
        z-index: 999 !important; /* Z-index muito alto */
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        background-color: #1a1f2e !important; /* Garantir background */
    }
    
    .dashboard-sidebar.mobile-open {
        transform: translateX(0) !important;
        visibility: visible !important;
        display: block !important;
    }
    
    /* Garantir que todos os elementos da sidebar sejam visíveis */
    .dashboard-sidebar .dashboard-user,
    .dashboard-sidebar .dashboard-nav,
    .dashboard-sidebar .dashboard-nav-item {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* Garantir que o nav é uma coluna */
    .dashboard-sidebar .dashboard-nav {
        flex-direction: column !important;
    }
    
    /* Reduzir tamanho do user card em mobile */
    .dashboard-sidebar .dashboard-user {
        padding: 0.875rem !important;
        margin-bottom: 1.5rem !important;
    }
    
    /* Ajustar nav items em mobile */
    .dashboard-sidebar .dashboard-nav-item {
        padding: 0.75rem 0.875rem !important;
        font-size: 0.875rem !important;
    }
}

/* Backdrop para sidebar mobile */
.dashboard-sidebar-backdrop {
    display: none;
    position: fixed;
    top: 80px;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 998; /* Abaixo da sidebar mas acima do conteúdo */
    opacity: 0;
    transition: opacity 0.3s ease;
}

@media (max-width: 1024px) {
    .dashboard-sidebar-backdrop.active {
        display: block !important;
        opacity: 1 !important;
    }
}

/* Scrollbar styling for sidebar */
.dashboard-sidebar::-webkit-scrollbar {
    width: 6px;
}

.dashboard-sidebar::-webkit-scrollbar-track {
    background: transparent;
}

.dashboard-sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
}

.dashboard-sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* ========================================
   Dashboard User Card - Dark Theme
======================================== */
.dashboard-user {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 1.125rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 0.875rem;
    margin-bottom: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.dashboard-avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.15);
    object-fit: cover;
}

.dashboard-user-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
    min-width: 0;
}

.dashboard-user-name {
    font-weight: 600;
    font-size: 1rem;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dashboard-user-email {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.5);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ========================================
   Dashboard Navigation - Lovable Style
======================================== */
.dashboard-nav {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.dashboard-nav-item {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.875rem 1rem;
    border-radius: 0.625rem;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: 0.9375rem;
    font-weight: 500;
    transition: all 0.2s ease;
    position: relative;
}

.dashboard-nav-item:hover {
    background-color: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.dashboard-nav-item.active {
    background-color: hsl(var(--primary));
    color: #ffffff;
    box-shadow: 0 4px 12px hsl(var(--primary) / 0.3);
}

.dashboard-nav-item i {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    opacity: 0.9;
}

.dashboard-nav-item.active i {
    opacity: 1;
}

/* ========================================
   Dashboard Content - Lovable Style - FLEX GROW
======================================== */
.dashboard-content {
    padding: 2.5rem 3rem 2.5rem 1.5rem !important; /* Reduzido padding esquerdo para 1.5rem */
    min-height: calc(100vh - 80px) !important;
    flex: 1 !important;
    max-width: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 1024px) {
    .dashboard-content {
        padding: 2rem 1.5rem !important;
    }
}

/* Hide footer on dashboard pages */
body.page-template-page-dashboard #site-footer,
body.page-template-page-dashboard footer {
    display: none !important;
}

/* Ensure full width for ALL dashboard children */
.dashboard-content *,
.dashboard-content > *,
.dashboard-header,
.dashboard-header > *,
.dashboard-content .analysis-status-grid,
.dashboard-content .dashboard-grid,
.dashboard-content .analysis-list,
.dashboard-content .invoice-table-container,
.dashboard-content .reports-grid,
.dashboard-content .dashboard-section,
.dashboard-content .analysis-progress-section,
.dashboard-content .empty-state {
    max-width: 100% !important;
}

/* ========================================
   Dashboard Header - Lovable Style
======================================== */
.dashboard-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2.5rem;
    padding-bottom: 0;
    border-bottom: none;
}

@media (max-width: 768px) {
    .dashboard-header {
        flex-direction: column;
        gap: 1.25rem;
    }
}

.dashboard-header h1 {
    font-size: 2.125rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #1a1f2e;
    letter-spacing: -0.02em;
}

.dashboard-subtitle {
    color: #64748b;
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
}

/* Sidebar HR separator */
.dashboard-sidebar hr {
    border: none;
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
    margin: 1rem 0;
}

.dashboard-actions {
    display: flex;
    gap: 0.75rem;
}

@media (max-width: 768px) {
    .dashboard-actions {
        width: 100%;
    }
    
    .dashboard-actions .btn {
        flex: 1;
    }
}

/* Mobile Menu Toggle */
.dashboard-mobile-toggle {
    display: none;
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 1000; /* Acima de tudo */
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: hsl(var(--primary));
    color: white;
    border: none;
    box-shadow: 0 4px 20px hsl(var(--primary) / 0.4);
    transition: all 0.3s ease;
    cursor: pointer;
}

.dashboard-mobile-toggle:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 24px hsl(var(--primary) / 0.5);
}

.dashboard-mobile-toggle i {
    width: 24px !important;
    height: 24px !important;
    color: white !important;
    stroke-width: 2.5 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.dashboard-mobile-toggle svg {
    width: 24px !important;
    height: 24px !important;
    stroke: white !important;
    fill: none !important;
    display: block !important;
}

@media (max-width: 1024px) {
    .dashboard-mobile-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
    }
    
    .dashboard-mobile-toggle i,
    .dashboard-mobile-toggle svg {
        display: block !important;
        visibility: visible !important;
    }
}

/* ========================================
   Dashboard Grid & Cards
======================================== */
.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

@media (max-width: 640px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

.dashboard-card {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

.dashboard-card:hover {
    border-color: hsl(var(--primary) / 0.2);
    box-shadow: 0 4px 20px hsl(var(--foreground) / 0.05);
}

.dashboard-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.dashboard-card-header i {
    width: 2rem;
    height: 2rem;
    opacity: 0.6;
}

.dashboard-card-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.dashboard-card-value {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: hsl(var(--foreground));
    line-height: 1;
}

.dashboard-card-change {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
}

.dashboard-card-change i {
    width: 1rem;
    height: 1rem;
}

.dashboard-card-change.positive {
    color: hsl(var(--green));
}

.dashboard-card-change.negative {
    color: hsl(0 84% 60%);
}

/* ========================================
   Dashboard Sections
======================================== */
.dashboard-section {
    margin-top: 2rem;
}

/* ========================================
   Dashboard Table
======================================== */
.dashboard-table {
    width: 100%;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    border-collapse: collapse;
    overflow: hidden;
}

.dashboard-table th,
.dashboard-table td {
    padding: 1rem 1.5rem;
    text-align: left;
    border-bottom: 1px solid hsl(var(--border));
}

.dashboard-table th {
    background-color: hsl(var(--secondary) / 0.5);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: hsl(var(--muted-foreground));
}

.dashboard-table tbody tr {
    transition: background-color 0.2s ease;
}

.dashboard-table tbody tr:hover {
    background-color: hsl(var(--secondary) / 0.3);
}

.dashboard-table tr:last-child td {
    border-bottom: none;
}

/* Responsive table */
@media (max-width: 768px) {
    .dashboard-table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .dashboard-table th,
    .dashboard-table td {
        padding: 0.75rem 1rem;
        font-size: 0.875rem;
    }
}

/* ========================================
   Status Badges
======================================== */
.status-badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.375rem 0.75rem;
    border-radius: 9999px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.status-badge.status-completed,
.status-badge.status-processing {
    background-color: hsl(var(--green) / 0.15);
    color: hsl(var(--green));
}

.status-badge.status-pending,
.status-badge.status-on-hold {
    background-color: hsl(var(--orange) / 0.15);
    color: hsl(var(--orange));
}

.status-badge.status-cancelled,
.status-badge.status-failed {
    background-color: hsl(0 84% 60% / 0.15);
    color: hsl(0 84% 60%);
}

/* ========================================
   Empty State
======================================== */
.empty-state {
    text-align: center;
    padding: 4rem 2rem;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
}

.empty-state i {
    color: hsl(var(--muted-foreground));
    margin-bottom: 1rem;
}

.empty-state h3 {
    margin-bottom: 0.5rem;
}

.empty-state p {
    color: hsl(var(--muted-foreground));
    margin-bottom: 1.5rem;
}

/* ========================================
   Analysis Status Grid (Lovable Style)
======================================== */
.analysis-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

@media (max-width: 640px) {
    .analysis-status-grid {
        grid-template-columns: 1fr;
    }
}

.analysis-status-card {
    position: relative;
    padding: 1.5rem;
    border-radius: 0.75rem;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.analysis-status-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.analysis-status-card.analysis-status-completed {
    background: linear-gradient(135deg, hsl(217, 91%, 95%) 0%, hsl(217, 91%, 98%) 100%);
    border: 1px solid hsl(217, 91%, 85%);
}

.analysis-status-card.analysis-status-progress {
    background: linear-gradient(135deg, hsl(45, 100%, 95%) 0%, hsl(45, 100%, 98%) 100%);
    border: 1px solid hsl(45, 100%, 85%);
}

.analysis-status-card.analysis-status-pending {
    background: linear-gradient(135deg, hsl(0, 0%, 95%) 0%, hsl(0, 0%, 98%) 100%);
    border: 1px solid hsl(0, 0%, 85%);
}

.analysis-status-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    margin-bottom: 0.5rem;
}

.analysis-status-value {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.analysis-status-completed .analysis-status-value {
    color: hsl(217, 91%, 50%);
}

.analysis-status-progress .analysis-status-value {
    color: hsl(45, 100%, 50%);
}

.analysis-status-pending .analysis-status-value {
    color: hsl(0, 0%, 40%);
}

.analysis-status-icon {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.2;
}

.analysis-status-completed .analysis-status-icon {
    background-color: hsl(217, 91%, 60%);
}

.analysis-status-progress .analysis-status-icon {
    background-color: hsl(45, 100%, 60%);
}

.analysis-status-pending .analysis-status-icon {
    background-color: hsl(0, 0%, 60%);
}

.analysis-status-icon i {
    width: 1.5rem;
    height: 1.5rem;
    color: white;
}

/* ========================================
   Progress Bar (Lovable Style)
======================================== */
.analysis-progress-section {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.analysis-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.analysis-progress-header h3 {
    font-size: 1.125rem;
    font-weight: 600;
    margin: 0;
}

.analysis-progress-text {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

.analysis-progress-bar {
    width: 100%;
    height: 12px;
    background-color: hsl(var(--secondary) / 0.3);
    border-radius: 9999px;
    overflow: hidden;
    margin-bottom: 0.5rem;
}

.analysis-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, hsl(217, 91%, 60%), hsl(217, 91%, 70%));
    border-radius: 9999px;
    transition: width 0.5s ease;
}

.analysis-progress-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--foreground));
}

/* ========================================
   Analysis List (Lovable Style)
======================================== */
.analysis-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.analysis-item {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    padding: 1.5rem;
    transition: all 0.2s ease;
}

.analysis-item:hover {
    border-color: hsl(var(--primary) / 0.3);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.analysis-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

@media (max-width: 640px) {
    .analysis-item-header {
        flex-direction: column;
        align-items: stretch;
    }
}

.analysis-item-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.analysis-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
}

.analysis-badge i {
    width: 0.875rem;
    height: 0.875rem;
}

.analysis-badge-completed {
    background-color: hsl(142, 76%, 95%);
    color: hsl(142, 76%, 36%);
}

.analysis-item-description {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: hsl(var(--muted-foreground));
    margin: 0 0 1rem 0;
}

.analysis-item-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.75rem;
    border-top: 1px solid hsl(var(--border));
}

.analysis-item-date {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

/* Small button styling */
.btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    gap: 0.375rem;
}

.btn-sm i {
    width: 1rem;
    height: 1rem;
}

@media (max-width: 640px) {
    .btn-sm {
        width: 100%;
        justify-content: center;
    }
}

/* ========================================
   Invoice Summary Grid (Lovable Style)
======================================== */
.invoice-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

@media (max-width: 640px) {
    .invoice-summary-grid {
        grid-template-columns: 1fr;
    }
}

.invoice-summary-card {
    padding: 1.5rem;
    border-radius: 0.75rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.invoice-summary-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.invoice-summary-card.invoice-summary-total {
    background: linear-gradient(135deg, hsl(217, 91%, 95%) 0%, hsl(217, 91%, 98%) 100%);
    border: 1px solid hsl(217, 91%, 85%);
}

.invoice-summary-card.invoice-summary-paid {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
}

.invoice-summary-card.invoice-summary-pending {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
}

.invoice-summary-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    margin-bottom: 0.5rem;
}

.invoice-summary-value {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
}

.invoice-summary-total .invoice-summary-value {
    color: hsl(217, 91%, 50%);
}

.invoice-summary-paid .invoice-summary-value,
.invoice-summary-pending .invoice-summary-value {
    color: hsl(var(--foreground));
}

/* ========================================
   Invoice Table (Lovable Style)
======================================== */
.invoice-table-container {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    overflow: hidden;
}

.invoice-table {
    width: 100%;
    border-collapse: collapse;
}

.invoice-table thead {
    background-color: hsl(var(--muted) / 0.3);
}

.invoice-table th {
    padding: 1rem 1.5rem;
    text-align: left;
    font-size: 0.8125rem;
    font-weight: 600;
    color: hsl(var(--muted-foreground));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid hsl(var(--border));
}

.invoice-table tbody tr {
    border-bottom: 1px solid hsl(var(--border));
    transition: background-color 0.2s ease;
}

.invoice-table tbody tr:hover {
    background-color: hsl(var(--secondary) / 0.3);
}

.invoice-table tbody tr:last-child {
    border-bottom: none;
}

.invoice-table td {
    padding: 1rem 1.5rem;
    font-size: 0.9375rem;
}

.invoice-table .invoice-id {
    font-weight: 600;
    color: hsl(var(--foreground));
}

.invoice-table .invoice-description {
    color: hsl(var(--muted-foreground));
}

.invoice-table .invoice-amount {
    font-weight: 600;
    color: hsl(var(--foreground));
}

.invoice-status-badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.375rem 0.75rem;
    border-radius: 9999px;
}

.invoice-status-badge.invoice-status-paid {
    background-color: hsl(142, 76%, 95%);
    color: hsl(142, 76%, 36%);
}

.invoice-status-badge.invoice-status-pending {
    background-color: hsl(45, 100%, 95%);
    color: hsl(45, 100%, 40%);
}

.invoice-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--primary));
    background-color: transparent;
    border: 1px solid hsl(var(--border));
    border-radius: 0.375rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.invoice-action-btn:hover {
    background-color: hsl(var(--secondary) / 0.5);
    border-color: hsl(var(--primary) / 0.3);
}

.invoice-action-btn i {
    width: 1rem;
    height: 1rem;
}

/* Responsive Table */
@media (max-width: 1024px) {
    .invoice-table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .invoice-table th,
    .invoice-table td {
        padding: 0.75rem 1rem;
        font-size: 0.875rem;
        white-space: nowrap;
    }
}

@media (max-width: 640px) {
    .invoice-summary-value {
        font-size: 2rem;
    }
}

/* ========================================
   Planning Section (Lovable Style)
======================================== */
.planning-section {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.planning-section-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.planning-section-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 0.5rem;
    background-color: hsl(var(--secondary) / 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.planning-section-icon i {
    width: 1.5rem;
    height: 1.5rem;
    color: hsl(var(--foreground));
}

.planning-section-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0;
}

.planning-section-subtitle {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
    margin: 0;
}

/* ========================================
   Planning Meetings
======================================== */
.planning-meetings-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.planning-meeting-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    background-color: hsl(var(--secondary) / 0.2);
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    transition: all 0.2s ease;
}

.planning-meeting-card:hover {
    background-color: hsl(var(--secondary) / 0.3);
    border-color: hsl(var(--primary) / 0.3);
}

.planning-meeting-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
    background-color: hsl(var(--primary) / 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.planning-meeting-icon i {
    width: 1.25rem;
    height: 1.25rem;
    color: hsl(var(--primary));
}

.planning-meeting-content {
    flex: 1;
    min-width: 0;
}

.planning-meeting-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.5rem 0;
}

.planning-meeting-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

.planning-meeting-meta span {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.planning-meeting-meta i {
    width: 1rem;
    height: 1rem;
}

/* Meeting Details */
.planning-meeting-details {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid hsl(var(--border));
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.meeting-details-section {
    margin-bottom: 1rem;
}

.meeting-details-section:last-child {
    margin-bottom: 0;
}

.meeting-details-section h5 {
    font-size: 0.875rem;
    font-weight: 600;
    color: hsl(var(--foreground));
    margin: 0 0 0.5rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.meeting-details-section h5 i {
    width: 1rem;
    height: 1rem;
    color: hsl(var(--primary));
}

.meeting-topics {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
    line-height: 1.6;
}

.meeting-topics p {
    margin: 0.25rem 0;
}

.meeting-toggle-btn {
    white-space: nowrap;
}

.meeting-toggle-btn i {
    transition: transform 0.3s ease;
}

@media (max-width: 640px) {
    .planning-meeting-card {
        flex-direction: column;
        align-items: stretch;
    }
    
    .planning-meeting-card .btn {
        width: 100%;
        justify-content: center;
    }
    
    .meeting-toggle-btn {
        width: 100%;
    }
}

.planning-past-meetings {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid hsl(var(--border));
}

.planning-past-meetings-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 1rem;
    background-color: transparent;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    cursor: pointer;
    transition: all 0.2s ease;
}

.planning-past-meetings-toggle:hover {
    background-color: hsl(var(--secondary) / 0.3);
    color: hsl(var(--foreground));
}

.planning-past-meetings-toggle i {
    width: 1rem;
    height: 1rem;
}

.planning-empty {
    padding: 2rem;
    text-align: center;
    color: hsl(var(--muted-foreground));
    font-size: 0.9375rem;
}

/* ========================================
   Planning Campaigns
======================================== */
.planning-campaigns-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.planning-campaign-card {
    padding: 1.5rem;
    background-color: hsl(var(--secondary) / 0.15);
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    transition: all 0.2s ease;
}

.planning-campaign-card:hover {
    border-color: hsl(var(--primary) / 0.2);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.planning-campaign-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.planning-campaign-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin: 0;
}

.planning-campaign-badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.375rem 0.75rem;
    border-radius: 9999px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.planning-campaign-badge-active {
    background-color: hsl(142, 76%, 95%);
    color: hsl(142, 76%, 36%);
}

.planning-campaign-badge-planned {
    background-color: hsl(217, 91%, 95%);
    color: hsl(217, 91%, 50%);
}

.planning-campaign-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

@media (max-width: 640px) {
    .planning-campaign-details {
        grid-template-columns: repeat(2, 1fr);
    }
}

.planning-campaign-detail {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.planning-campaign-detail-label {
    font-size: 0.75rem;
    color: hsl(var(--muted-foreground));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.planning-campaign-detail-value {
    font-size: 0.9375rem;
    font-weight: 600;
    color: hsl(var(--foreground));
}

.planning-campaign-progress {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid hsl(var(--border));
}

.planning-campaign-progress-bar {
    width: 100%;
    height: 8px;
    background-color: hsl(var(--secondary) / 0.3);
    border-radius: 9999px;
    overflow: hidden;
    margin-bottom: 0.5rem;
}

.planning-campaign-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, hsl(217, 91%, 60%), hsl(217, 91%, 70%));
    border-radius: 9999px;
    transition: width 0.5s ease;
}

.planning-campaign-progress-label {
    font-size: 0.8125rem;
    color: hsl(var(--muted-foreground));
}

/* ========================================
   Reports Filters (Lovable Style)
======================================== */
.reports-filters {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.reports-filter-btn {
    padding: 0.625rem 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 9999px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-decoration: none;
}

.reports-filter-btn:hover {
    color: hsl(var(--foreground));
    background-color: hsl(var(--secondary) / 0.5);
    border-color: hsl(var(--border));
}

.reports-filter-btn.active {
    color: white;
    background-color: hsl(var(--primary));
    border-color: hsl(var(--primary));
}

@media (max-width: 640px) {
    .reports-filters {
        gap: 0.5rem;
    }
    
    .reports-filter-btn {
        padding: 0.5rem 1rem;
        font-size: 0.8125rem;
    }
}

/* ========================================
   Reports Grid (Lovable Style)
======================================== */
.reports-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
    gap: 1.5rem;
}

@media (max-width: 768px) {
    .reports-grid {
        grid-template-columns: 1fr;
    }
}

.report-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    transition: all 0.2s ease;
}

.report-card:hover {
    border-color: hsl(var(--primary) / 0.3);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.report-card-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 0.5rem;
    background-color: hsl(var(--primary) / 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.report-card-icon i {
    width: 2rem;
    height: 2rem;
    color: hsl(var(--primary));
}

.report-card-content {
    flex: 1;
    min-width: 0;
}

.report-card-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.375rem 0;
    color: hsl(var(--foreground));
}

.report-card-meta {
    display: flex;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

@media (max-width: 640px) {
    .report-card {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    
    .report-card-icon {
        margin: 0 auto;
    }
    
    .report-card-content {
        text-align: center;
    }
    
    .report-card-meta {
        justify-content: center;
    }
    
    .report-card .btn {
        width: 100%;
        justify-content: center;
    }
}

/* Booking Steps */
.booking-steps {
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.booking-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    opacity: 0.5;
}

.booking-step.active {
    opacity: 1;
}

.booking-step .step-number {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: hsl(var(--secondary));
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

.booking-step.active .step-number {
    background-color: hsl(var(--primary));
    color: #fff;
}

.booking-step span {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

.booking-step.active span {
    color: hsl(var(--foreground));
    font-weight: 500;
}

/* Responsive Dashboard */
@media (max-width: 1024px) {
    .dashboard-layout {
        grid-template-columns: 1fr;
    }
    
    .dashboard-sidebar {
        position: relative;
        top: 0;
        height: auto;
        border-right: none;
        border-bottom: 1px solid hsl(var(--border));
    }
    
    .dashboard-nav {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    
    .dashboard-nav-item {
        padding: 0.5rem 1rem;
    }
    
    .dashboard-content {
        padding: 1.5rem;
    }
}

@media (max-width: 640px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }
    
    .booking-steps {
        gap: 1rem;
    }
    
    .booking-step span {
        display: none;
    }
}

/* ========================================
   WPForms Global Styling
======================================== */

/* CRITICAL: Remove ALL fieldset borders - maximum specificity */
fieldset,
.wpforms-container fieldset,
.wpforms-form fieldset,
div.wpforms-container-full fieldset,
div.wpforms-container fieldset,
.wpforms-field fieldset,
.wpforms-field-radio fieldset,
.wpforms-field-checkbox fieldset,
.wpforms-field-date-time fieldset,
body .wpforms-container fieldset,
body .wpforms-form fieldset {
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    padding: 0 !important;
    margin: 0 0 1rem 0 !important;
    min-width: 0;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Legend styling - remove ALL default browser styling */
legend,
.wpforms-container legend,
.wpforms-form legend,
div.wpforms-container-full legend,
body .wpforms-container legend,
body .wpforms-form legend {
    padding: 0 !important;
    margin: 0 0 0.75rem 0 !important;
    font-weight: 500 !important;
    font-size: 0.9375rem !important;
    color: hsl(var(--foreground)) !important;
    float: none !important;
    width: auto !important;
    border: 0 !important;
    background: transparent !important;
    display: block !important;
}

/* Labels */
.wpforms-container .wpforms-field-label,
.wpforms-form .wpforms-field-label,
.wpforms-container label,
.wpforms-form label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    font-size: 0.9375rem;
    color: hsl(var(--foreground)) !important;
    display: block;
}

/* Required asterisk */
.wpforms-container .wpforms-required-label,
.wpforms-form .wpforms-required-label {
    color: hsl(var(--destructive)) !important;
}

/* Text inputs */
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="url"],
.wpforms-container input[type="number"],
.wpforms-container input[type="date"],
.wpforms-container input[type="time"],
.wpforms-container textarea,
.wpforms-container select,
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form input[type="url"],
.wpforms-form input[type="number"],
.wpforms-form input[type="date"],
.wpforms-form input[type="time"],
.wpforms-form textarea,
.wpforms-form select {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid hsl(var(--border)) !important;
    border-radius: 0.5rem;
    font-size: 1rem;
    transition: all 0.2s;
    background: hsl(var(--background)) !important;
    color: hsl(var(--foreground)) !important;
}

.wpforms-container input:focus,
.wpforms-container textarea:focus,
.wpforms-container select:focus,
.wpforms-form input:focus,
.wpforms-form textarea:focus,
.wpforms-form select:focus {
    outline: none;
    border-color: hsl(var(--primary)) !important;
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

/* Checkbox and Radio groups */
.wpforms-container .wpforms-field-checkbox ul,
.wpforms-container .wpforms-field-radio ul,
.wpforms-form .wpforms-field-checkbox ul,
.wpforms-form .wpforms-field-radio ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.wpforms-container .wpforms-field-checkbox li,
.wpforms-container .wpforms-field-radio li,
.wpforms-form .wpforms-field-checkbox li,
.wpforms-form .wpforms-field-radio li {
    margin: 0 !important;
    padding: 0 !important;
}

.wpforms-container .wpforms-field-checkbox li label,
.wpforms-container .wpforms-field-radio li label,
.wpforms-form .wpforms-field-checkbox li label,
.wpforms-form .wpforms-field-radio li label {
    display: flex !important;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    font-weight: 400 !important;
    color: hsl(var(--foreground)) !important;
    font-size: 0.9375rem;
}

.wpforms-container input[type="checkbox"],
.wpforms-container input[type="radio"],
.wpforms-form input[type="checkbox"],
.wpforms-form input[type="radio"] {
    width: 1.125rem !important;
    height: 1.125rem !important;
    accent-color: hsl(var(--primary));
    margin: 0 !important;
    flex-shrink: 0;
}

/* Date/Time picker fields */
.wpforms-container .wpforms-field-date-time fieldset,
.wpforms-form .wpforms-field-date-time fieldset {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.wpforms-container .wpforms-field-date-time .wpforms-field-row,
.wpforms-form .wpforms-field-date-time .wpforms-field-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.wpforms-container .wpforms-field-date-time .wpforms-field-row-block,
.wpforms-form .wpforms-field-date-time .wpforms-field-row-block {
    flex: 1;
    min-width: 150px;
}

/* Sublabels and descriptions */
.wpforms-container .wpforms-field-sublabel,
.wpforms-container .wpforms-field-description,
.wpforms-form .wpforms-field-sublabel,
.wpforms-form .wpforms-field-description {
    font-size: 0.8125rem;
    color: hsl(var(--muted-foreground)) !important;
    margin-top: 0.25rem;
}

/* Submit button */
.wpforms-container .wpforms-submit-container,
.wpforms-form .wpforms-submit-container {
    margin-top: 1.5rem;
    padding: 0 !important;
}

.wpforms-container .wpforms-submit,
.wpforms-form .wpforms-submit {
    width: 100%;
    padding: 0.875rem 1.5rem;
    background: hsl(var(--primary)) !important;
    color: white !important;
    border: none !important;
    border-radius: 0.5rem;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.wpforms-container .wpforms-submit:hover,
.wpforms-form .wpforms-submit:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

/* Field spacing */
.wpforms-container .wpforms-field,
.wpforms-form .wpforms-field {
    margin-bottom: 1.25rem;
}

/* Error states */
.wpforms-container .wpforms-error,
.wpforms-form .wpforms-error {
    border-color: hsl(var(--destructive)) !important;
}

.wpforms-container .wpforms-error-container,
.wpforms-form .wpforms-error-container {
    color: hsl(var(--destructive));
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

/* Confirmation message */
.wpforms-container .wpforms-confirmation-container-full,
.wpforms-form .wpforms-confirmation-container-full {
    background: hsl(var(--accent) / 0.1);
    border: 1px solid hsl(var(--accent));
    border-radius: 0.5rem;
    padding: 1.5rem;
    color: hsl(var(--foreground));
}

/* ==========================================================================
   Client Area Modal
   ========================================================================== */

.client-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.client-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
}

.client-modal-content {
    position: relative;
    background: white;
    border-radius: 1rem;
    padding: 2.5rem;
    max-width: 480px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: modalFadeIn 0.3s ease-out;
}

@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.client-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-radius: 0.5rem;
    transition: all 0.2s;
    color: hsl(var(--muted-foreground));
}

.client-modal-close:hover {
    background: hsl(var(--accent));
    color: hsl(var(--foreground));
}

.client-modal-header {
    text-align: center;
    margin-bottom: 2rem;
}

.client-modal-header h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: hsl(var(--foreground));
    margin-bottom: 0.5rem;
}

.client-modal-header p {
    color: hsl(var(--muted-foreground));
    font-size: 0.938rem;
}

.client-modal-tabs {
    display: flex;
    gap: 0.5rem;
    padding: 0.25rem;
    background: hsl(var(--accent));
    border-radius: 0.625rem;
    margin-bottom: 1.5rem;
}

.client-tab-btn {
    flex: 1;
    padding: 0.625rem 1.25rem;
    border: none;
    background: none;
    border-radius: 0.5rem;
    font-size: 0.938rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    cursor: pointer;
    transition: all 0.2s;
}

.client-tab-btn.active {
    background: white;
    color: hsl(var(--foreground));
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.client-tab-content {
    display: none;
}

.client-tab-content.active {
    display: block;
    animation: tabFadeIn 0.3s ease-out;
}

@keyframes tabFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.client-form .form-group {
    margin-bottom: 1.25rem;
}

.client-form label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--foreground));
    margin-bottom: 0.5rem;
}

.client-form input[type="text"],
.client-form input[type="email"],
.client-form input[type="password"] {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    font-size: 0.938rem;
    transition: all 0.2s;
}

.client-form input:focus {
    outline: none;
    border-color: hsl(var(--primary));
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

.client-form small {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.813rem;
    color: hsl(var(--muted-foreground));
}

.client-form .form-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}

.checkbox-label input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    cursor: pointer;
}

.forgot-password {
    font-size: 0.875rem;
    color: hsl(var(--primary));
    text-decoration: none;
    transition: opacity 0.2s;
}

.forgot-password:hover {
    opacity: 0.8;
}

.btn-full {
    width: 100%;
}

.btn-loading {
    display: none !important;
}

.btn-loading i {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.form-message {
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
}

.form-message.success {
    background: hsl(120, 60%, 95%);
    color: hsl(120, 60%, 30%);
    border: 1px solid hsl(120, 60%, 85%);
}

.form-message.error {
    background: hsl(0, 60%, 95%);
    color: hsl(0, 60%, 40%);
    border: 1px solid hsl(0, 60%, 85%);
}

/* Responsive */
@media (max-width: 640px) {
    .client-modal-content {
        padding: 1.5rem;
        border-radius: 0.75rem;
    }

    .client-modal-header h2 {
        font-size: 1.5rem;
    }

    .form-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
}

/* ==========================================================================
   Dashboard Layout Fixes - v5.4
   ========================================================================== */

/* Melhor espaçamento do header da dashboard */
.dashboard-header {
    margin-bottom: 2.5rem !important;
}

/* Cards de análises melhor alinhados */
.analysis-overview {
    gap: 1.5rem !important;
    margin-bottom: 2.5rem !important;
}

/* Cartões de status com altura consistente */
.status-card {
    min-height: 140px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
}

/* Lista de análises com melhor espaçamento */
.analysis-list {
    gap: 1rem !important;
}

/* Sidebar do dashboard com melhor padding */
.dashboard-sidebar {
    padding: 1.5rem !important;
}

/* User info com melhor alinhamento */
.dashboard-user {
    padding: 1.5rem !important;
    margin-bottom: 1.5rem !important;
}

/* Nav items com melhor hover */
.dashboard-nav-item {
    transition: all 0.2s ease !important;
}

.dashboard-nav-item:hover {
    transform: translateX(2px) !important;
}

/* Botão "Contactar Suporte" com melhor visual */
.btn-outline {
    border-width: 2px !important;
}

/* Responsivo melhorado para dashboard */
@media (max-width: 1024px) {
    .dashboard-layout {
        padding: 1rem !important;
    }
    
    .dashboard-content {
        padding: 1.5rem !important;
    }
    
    .analysis-overview {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    .dashboard-header h1 {
        font-size: 1.75rem !important;
    }
    
    .status-card {
        min-height: 120px !important;
    }
    
    .dashboard-user-info {
        font-size: 0.875rem !important;
    }
}

/* Fix para modal em mobile */
@media (max-width: 640px) {
    .client-modal-content {
        margin: 1rem !important;
        max-height: calc(100vh - 2rem) !important;
    }
}

/* ==========================================================================
   Dashboard Navigation Fix - v5.5.2
   ========================================================================== */

/* Garantir que cliques funcionam nos links da dashboard */
.dashboard-nav-item {
    pointer-events: all !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    padding: 0.75rem 1rem !important;
    transition: all 0.2s !important;
}

/* Elementos internos não devem bloquear cliques */
.dashboard-nav-item * {
    pointer-events: none !important;
}

/* Hover state visível */
.dashboard-nav-item:hover {
    background: hsl(var(--accent)) !important;
}

/* Active state mais visível */
.dashboard-nav-item.active {
    background: hsl(var(--primary)) !important;
    color: white !important;
}

.dashboard-nav-item.active * {
    color: white !important;
}

/* =============================================
   PERFORMANCE — content-visibility & contain
   Reduz trabalho de rendering em secções
   fora do viewport (melhora INP e TBT)
   ============================================= */
.services-section,
.features-section,
.testimonials-section,
.problems-section,
.process-section {
    content-visibility: auto;
    contain-intrinsic-size: 0 600px;
}

/* GPU compositing para cards com hover */
.card,
.service-card,
.service-path-card {
    will-change: transform;
    transform: translateZ(0);
}

/* Previne layout shift em imagens sem dimensões explícitas */
img {
    max-width: 100%;
    height: auto;
}

/* Font display swap fallback via font-face local */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: local('Inter');
}

/* =============================================
   FOOTER: Social Icons - cores por rede
   ============================================= */

.social-link--linkedin:hover  { background-color: #0077B5; }
.social-link--google:hover    { background-color: #4285F4; }
.social-link--whatsapp:hover  { background-color: #25D366; }

.social-link svg {
    fill: #ffffff;
    width: 1.1rem;
    height: 1.1rem;
}


/* =============================================
   TAREFA 1.6 — Heading utility classes
   Substituem os inline styles em todas as
   páginas de serviço. Versão: 10.1.0
   ============================================= */

/* H1 principal nas páginas de serviço */
.service-page-h1 {
    font-size: 3rem;
    line-height: 1.1;
    margin-bottom: 1.5rem;
}

/* H1 nas páginas de programa/presença */
.program-page-h1 {
    max-width: 640px;
    margin: 0.5rem auto 1.25rem;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    line-height: 1.2;
}

/* H2 de secção padrão */
.section-h2 {
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

/* H2 de secção curta (FAQ, CTA) */
.section-h2-sm {
    margin-bottom: 1rem;
}

/* H2 em fundos escuros/coloridos */
.section-h2-white {
    color: white;
    font-size: 2rem;
    margin-bottom: 1rem;
}

/* H2 em fundos escuros — versão grande */
.section-h2-white-lg {
    color: white;
    font-size: 2.5rem;
    margin-bottom: 1rem;
    line-height: 1.2;
}

/* H2 inline com ícone (Ads, etc.) */
.inline-h2 {
    font-size: 1.5rem;
    margin: 0;
}

/* H3 de feature/benefício padrão */
.feature-h3 {
    font-size: 1.125rem;
    margin-bottom: 0.75rem;
}

/* H3 de step/processo */
.step-h3 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
}

/* H3 de plano de preço */
.plan-h3 {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

/* H3 de card em fundo escuro */
.card-h3-white {
    font-size: 1.375rem;
    margin-bottom: 1.25rem;
    color: white;
}

/* H3 de destaque lateral */
.highlight-h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

/* H3 de destaque lateral — fundo escuro */
.highlight-h3-white {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
    color: white;
}

/* H3 de programa (nome do plano) */
.program-h3 {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
}

/* H3 de serviço incluído */
.service-item-h3 {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

@media (max-width: 768px) {
    .service-page-h1 {
        font-size: 2rem;
    }
    .section-h2-white-lg {
        font-size: 1.75rem;
    }
    .section-h2-white {
        font-size: 1.5rem;
    }
}

/* H3 small (1rem) - sub-items, steps */
.sub-h3 {
    font-size: 1rem;
    margin-bottom: 0.5rem;
}
.sub-h3-sm {
    font-size: 1rem;
    margin-bottom: 0.4rem;
}
.sub-h3-md {
    font-size: 1rem;
    margin-bottom: 0.75rem;
}
.sub-h3-lg {
    font-size: 1rem;
    margin-bottom: 1rem;
}
/* H3 platform card */
.platform-h3 {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
    text-align: center;
}
/* H3 partner card */
.partner-h3 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
}
/* H3 detail item */
.detail-h3 {
    font-size: 1rem;
    margin-bottom: 0.625rem;
}
/* H3 results (white bg) */
.results-h3-white {
    font-size: 1.5rem;
    margin-bottom: 1.25rem;
    color: white;
}
/* H2 modal */
.modal-h2 {
    margin-bottom: 0.5rem;
}
/* H3 modal section */
.modal-section-h3 {
    font-size: 1.125rem;
    margin-bottom: 1rem;
    color: hsl(var(--foreground));
}
/* H3 modal title */
.modal-title-h3 {
    font-size: 1.25rem;
    margin: 0;
}
/* H3 service card (section-services) */
.service-card-h3 {
    font-size: 1.6rem;
    font-weight: 700;
    margin: 0 0 1rem;
    line-height: 1.25;
    color: hsl(var(--foreground));
}

/* ============================================================ */
/* WooCommerce Cart & Checkout Fixes - v10.3.1 */
/* ============================================================ */

/* Cart Page Fixes */
.woocommerce-cart-form table.shop_table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 2rem;
}

.woocommerce-cart-form table.shop_table thead th {
    padding: 1rem 0.5rem;
    text-align: left;
    font-weight: 600;
    border-bottom: 2px solid hsl(var(--border));
    background: hsl(var(--muted));
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.woocommerce-cart-form table.shop_table tbody td {
    padding: 1.5rem 0.5rem;
    border-bottom: 1px solid hsl(var(--border));
    vertical-align: middle;
}

.woocommerce-cart-form table.shop_table .product-thumbnail img {
    max-width: 100px;
    height: auto;
    display: block;
}

.woocommerce-cart-form table.shop_table .product-remove a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    background: hsl(var(--destructive) / 0.1);
    color: hsl(var(--destructive));
    border-radius: 0.5rem;
    font-size: 1.5rem;
    text-decoration: none;
    transition: all 0.2s ease;
}

.woocommerce-cart-form table.shop_table .product-remove a:hover {
    background: hsl(var(--destructive));
    color: white;
}

/* Quantity Input Styling */
.qty {
    padding: 0.5rem 0.75rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.375rem;
    font-size: 0.9375rem;
    width: 60px;
    text-align: center;
}

/* Cart Totals */
.cart-collaterals {
    margin-top: 2rem;
}

.woocommerce-cart-totals {
    background: hsl(var(--muted));
    padding: 1.5rem;
    border-radius: 0.75rem;
}

.woocommerce-cart-totals h2 {
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    color: hsl(var(--foreground));
}

.woocommerce-cart-totals table {
    width: 100%;
    margin-bottom: 1.5rem;
}

.woocommerce-cart-totals tr {
    display: flex;
    justify-content: space-between;
    padding: 0.75rem 0;
    border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-cart-totals tr.order-total {
    font-weight: 700;
    font-size: 1.125rem;
    border-top: 2px solid hsl(var(--border));
    border-bottom: 0;
    padding: 1rem 0;
}

.woocommerce-cart-totals tr.order-total th,
.woocommerce-cart-totals tr.order-total td {
    color: hsl(var(--foreground));
}

/* Checkout Page Fixes */
.woocommerce-checkout {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 2rem;
    margin-top: 2rem;
}

.col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-bottom: 2rem;
}

.woocommerce-checkout #order_review {
    background: hsl(var(--muted));
    padding: 1.5rem;
    border-radius: 0.75rem;
    position: sticky;
    top: 100px;
}

.woocommerce-checkout-review-order h3 {
    font-size: 1.125rem;
    margin-bottom: 1.5rem;
    color: hsl(var(--foreground));
}

.woocommerce-checkout-review-order .woocommerce-table {
    width: 100%;
}

.woocommerce-checkout-review-order table td,
.woocommerce-checkout-review-order table th {
    padding: 0.75rem 0;
    border-bottom: 1px solid hsl(var(--border));
    text-align: left;
}

.woocommerce-checkout-review-order table tbody tr:last-child td {
    border-bottom: 0;
}

/* Form Fields */
.form-row {
    margin-bottom: 1.5rem;
}

.form-row.form-row-first,
.form-row.form-row-last {
    width: 100%;
}

.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row input[type="number"],
.form-row select,
.form-row textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.375rem;
    font-size: 0.9375rem;
    font-family: inherit;
    background: hsl(var(--background));
    color: hsl(var(--foreground));
    transition: border-color 0.2s ease;
}

.form-row input[type="text"]:focus,
.form-row input[type="email"]:focus,
.form-row input[type="tel"]:focus,
.form-row input[type="number"]:focus,
.form-row select:focus,
.form-row textarea:focus {
    outline: none;
    border-color: hsl(var(--primary));
    box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1);
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .woocommerce-cart-form table.shop_table {
        font-size: 0.875rem;
    }

    .woocommerce-cart-form table.shop_table thead {
        display: none;
    }

    .woocommerce-cart-form table.shop_table tbody tr {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
        border: 1px solid hsl(var(--border));
        padding: 1rem;
        margin-bottom: 1rem;
        border-radius: 0.5rem;
    }

    .woocommerce-cart-form table.shop_table tbody td {
        border: 0;
        padding: 0;
        display: grid;
        grid-template-columns: 80px 1fr;
        gap: 0.5rem;
        align-items: center;
    }

    .woocommerce-cart-form table.shop_table tbody td:before {
        content: attr(data-title);
        font-weight: 600;
        color: hsl(var(--muted-foreground));
        font-size: 0.75rem;
        text-transform: uppercase;
    }

    .woocommerce-cart-form table.shop_table .product-thumbnail img {
        max-width: 80px;
    }

    .woocommerce-cart-form table.shop_table .product-remove {
        grid-column: 1 / -1;
        text-align: center;
    }

    .woocommerce-checkout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .col2-set {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .woocommerce-checkout #order_review {
        position: static;
        top: auto;
    }

    .form-row.form-row-first,
    .form-row.form-row-last {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .woocommerce-cart-form table.shop_table tbody td {
        grid-template-columns: 1fr;
    }

    .woocommerce-cart-form table.shop_table tbody td:before {
        display: block;
        margin-bottom: 0.25rem;
    }

    .woocommerce-cart-totals {
        padding: 1rem;
    }

    .qty {
        width: 50px;
        padding: 0.4rem 0.5rem;
    }
}

/* ════════════════════════════════════════════════════════════════════════
   WooCommerce Cart & Checkout - Layout Fixes v10.3.2
   Correções de espaçamento, alinhamento e responsividade
   ════════════════════════════════════════════════════════════════════════ */

/* CARRINHO - Tabela responsiva */
.woocommerce-cart table.shop_table {
    width: 100%;
    margin-bottom: 2rem;
}

.woocommerce-cart table.shop_table thead {
    display: table-header-group;
}

.woocommerce-cart table.shop_table th {
    padding: 1rem;
    text-align: left;
    background: hsl(var(--secondary) / 0.1);
    font-weight: 600;
    border-bottom: 2px solid hsl(var(--border));
}

.woocommerce-cart table.shop_table td {
    padding: 1.5rem;
    vertical-align: middle;
    border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-cart table.shop_table td.product-name {
    font-weight: 500;
}

.woocommerce-cart table.shop_table td.product-price {
    text-align: right;
    min-width: 100px;
}

.woocommerce-cart table.shop_table td.product-quantity {
    text-align: center;
    min-width: 120px;
}

.woocommerce-cart table.shop_table td.product-subtotal {
    text-align: right;
    font-weight: 600;
    color: hsl(var(--foreground));
}

/* Quantity input */
.woocommerce-cart input[type="number"].qty {
    width: 70px;
    padding: 0.5rem;
    text-align: center;
    border: 1px solid hsl(var(--border));
    border-radius: 0.375rem;
}

/* Remove button */
.woocommerce-cart a.remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: hsl(var(--destructive));
    color: white;
    text-decoration: none;
    transition: all 0.2s;
}

.woocommerce-cart a.remove:hover {
    background: hsl(var(--destructive) / 0.9);
    transform: scale(1.1);
}

/* Cart totals */
.woocommerce-cart .cart_totals {
    background: hsl(var(--secondary) / 0.05);
    padding: 1.5rem;
    border-radius: 0.5rem;
    border: 1px solid hsl(var(--border));
}

.woocommerce-cart .cart_totals table {
    width: 100%;
    margin-bottom: 1rem;
}

.woocommerce-cart .cart_totals table tr {
    display: flex;
    justify-content: space-between;
    padding: 0.75rem 0;
    border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-cart .cart_totals table tr:last-child {
    border-bottom: 2px solid hsl(var(--foreground));
    font-size: 1.1rem;
    font-weight: 600;
    padding: 1rem 0;
}

.woocommerce-cart .cart_totals table th {
    text-align: left;
    font-weight: 600;
}

.woocommerce-cart .cart_totals table td {
    text-align: right;
}

/* Checkout */
.woocommerce-checkout-form {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 2rem;
    margin-bottom: 2rem;
}

.woocommerce-checkout-form .woocommerce-form-coupon-toggle {
    grid-column: 1;
    margin-bottom: 2rem;
}

.woocommerce-checkout-form .checkout {
    grid-column: 1;
}

.woocommerce-checkout-form .woocommerce-checkout-review-order {
    grid-column: 2;
    position: sticky;
    top: 120px;
    height: fit-content;
}

/* Checkout fields */
.woocommerce-checkout-form .form-row {
    margin-bottom: 1.5rem;
}

.woocommerce-checkout-form .form-row input,
.woocommerce-checkout-form .form-row select,
.woocommerce-checkout-form .form-row textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.375rem;
    font-size: 1rem;
}

.woocommerce-checkout-form .form-row input:focus,
.woocommerce-checkout-form .form-row select:focus,
.woocommerce-checkout-form .form-row textarea:focus {
    outline: none;
    border-color: hsl(var(--blue));
    box-shadow: 0 0 0 3px hsl(var(--blue) / 0.1);
}

.woocommerce-checkout-form .form-row label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.woocommerce-checkout-form .form-row.form-row-wide {
    grid-column: 1 / -1;
}

/* Order review */
.woocommerce-checkout-review-order-table {
    width: 100%;
    margin-bottom: 1.5rem;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
    padding: 0.75rem;
    text-align: left;
    border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-checkout-review-order-table th {
    font-weight: 600;
    background: hsl(var(--secondary) / 0.1);
}

.woocommerce-checkout-review-order-table .product-total {
    text-align: right;
}

.woocommerce-checkout-review-order-table tr.order-total {
    font-weight: 600;
    font-size: 1.1rem;
    border-top: 2px solid hsl(var(--foreground));
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
    .woocommerce-checkout-form {
        grid-template-columns: 1fr;
    }
    
    .woocommerce-checkout-form .woocommerce-checkout-review-order {
        grid-column: 1;
        position: static;
    }
}

/* Responsive - Mobile */
@media (max-width: 768px) {
    .woocommerce-cart table.shop_table {
        font-size: 0.875rem;
    }
    
    .woocommerce-cart table.shop_table thead {
        display: none;
    }
    
    .woocommerce-cart table.shop_table tbody tr {
        display: block;
        border: 1px solid hsl(var(--border));
        border-radius: 0.5rem;
        margin-bottom: 1rem;
        padding: 1rem;
    }
    
    .woocommerce-cart table.shop_table td {
        display: flex;
        justify-content: space-between;
        padding: 0.75rem 0;
        border: none;
    }
    
    .woocommerce-cart table.shop_table td::before {
        content: attr(data-title);
        font-weight: 600;
    }
    
    .woocommerce-cart input[type="number"].qty {
        width: 60px;
    }
    
    .woocommerce-checkout-form .form-row {
        margin-bottom: 1rem;
    }
}

/* Responsive - Extra small */
@media (max-width: 480px) {
    .woocommerce-cart table.shop_table td {
        font-size: 0.875rem;
    }
    
    .woocommerce-cart input[type="number"].qty {
        width: 50px;
        padding: 0.4rem;
    }
    
    .woocommerce-cart a.remove {
        width: 1.75rem;
        height: 1.75rem;
        font-size: 0.875rem;
    }
    
    .woocommerce-cart .cart_totals {
        padding: 1rem;
    }
    
    .woocommerce-checkout-form .form-row label {
        font-size: 0.875rem;
    }
}

/* ════════════════════════════════════════════════════════════════════════ */

/* v10.7.43 - Sem viúvas nos títulos: equilibra as linhas para nunca ficar uma palavra sozinha na última. */
h1, h2, h3, h4, h5, h6,
.section-h2, .section-h2-sm, .program-page-h1, .service-page-h1, .onorbit-europa-title {
    text-wrap: balance;
}

/* v10.7.43 - Descrição do hero vinda das secções SEO (Equipa, Serviços, E-Commerce). */
.oo-hero-desc { max-width: 42rem; margin: 0 auto; } /* v10.7.54: mesma largura dos outros heróis */
.oo-hero-desc p { margin: 0 0 0.875rem; font-size: 1.125rem; line-height: 1.75; }
.oo-hero-desc p:last-child { margin-bottom: 0; }
.oo-hero-desc a { text-decoration: underline; text-underline-offset: 3px; }
/* Heróis escuros (.page-hero): texto claro com contraste suficiente. */
.page-hero .oo-hero-desc p { color: hsl(0 0% 100% / 0.8); }
.page-hero .oo-hero-desc strong,
.page-hero .oo-hero-desc a { color: #fff; }
/* Hero claro do E-Commerce: mantém o cinzento do tema, links em azul. */
.service-hero .oo-hero-desc { max-width: none; margin: 0; }
.service-hero .oo-hero-desc strong { color: hsl(var(--foreground)); }
.service-hero .oo-hero-desc a { color: hsl(var(--primary)); }

/* v10.7.46 - Imagens dentro do texto dos artigos: mantêm sempre a proporção original.
   Anula alturas fixas guardadas pelo editor (style="height: 298px" / "height: 100%") e nunca excede a coluna. */
.entry-content img,
.entry-content .wp-caption img,
.entry-content figure img {
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}
.entry-content figure,
.entry-content .wp-caption {
    max-width: 100%;
    height: auto !important;
}

/* v10.7.51 - Hero compacto (página Serviços): título mais pequeno e descrição mais larga, para a secção ficar mais baixa. */
.page-hero.oo-hero-compact { padding-bottom: 3.5rem; }
.page-hero.oo-hero-compact h1 {
    font-size: clamp(2rem, 3.2vw, 2.75rem);
    line-height: 1.2;
    max-width: 60rem;
    margin-bottom: 1.25rem;
}
