/* ========================================
   OPERA MVC - CSS EQUIVALENTE AO TAILWIND
   ======================================== */

/* Reset e Base */
.opera-reset * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Global reset for full-width pages */
html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
}

.opera-body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #fff;
    margin: 0;
    padding: 0;
    width: 100%;
}

/* Remove sublinhado de todos os links por padrão */
a {
    text-decoration: none !important;
}

    a:hover,
    a:focus,
    a:active,
    a:visited {
        text-decoration: none !important;
    }

.opera-link {
    text-decoration: none !important;
}

    .opera-link:hover,
    .opera-link:focus,
    .opera-link:active,
    .opera-link:visited {
        text-decoration: none !important;
    }

/* Remove bullets das listas */
.opera-space-y-3 {
    list-style: none !important;
    padding: 0 !important;
}

    .opera-space-y-3 li {
        list-style: none !important;
    }

/* Sales Team Section Animations */
@keyframes opera-timeline-infinite {
    0% {
        transform: scaleY(0);
        transform-origin: top;
    }

    70% {
        transform: scaleY(1);
        transform-origin: top;
    }

    100% {
        transform: scaleY(1);
        transform-origin: top;
    }
}

@keyframes opera-pulse-infinite {
    0%, 100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.1);
    }
}

@keyframes opera-ping-infinite {
    0% {
        transform: scale(1);
        opacity: 0.75;
    }

    100% {
        transform: scale(2);
        opacity: 0;
    }
}

.opera-animate-timeline-infinite {
    animation: opera-timeline-infinite 4s ease-in-out infinite;
}

.opera-animate-pulse-infinite {
    animation: opera-pulse-infinite 4s ease-in-out infinite;
}

.opera-animate-ping-infinite {
    animation: opera-ping-infinite 2s ease-out infinite;
}

/* Garantir que os ícones SVG apareçam */
.opera-timeline-icon svg {
    display: block !important;
    width: 1rem !important;
    height: 1rem !important;
    color: white !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
}

.opera-timeline-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Garantir que a linha da timeline apareça */
.opera-timeline-line {
    background-color: #e5e7eb !important;
    width: 2px !important;
}

.opera-timeline-gradient {
    background: linear-gradient(to bottom, #2c3e8f, #4db8a8, #7ed957) !important;
    animation: opera-timeline-infinite 4s ease-in-out infinite !important;
}

/* ========================================
   LAYOUT E CONTAINER
   ======================================== */

.opera-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* ========================================
   DISPLAY E POSITIONING
   ======================================== */

.opera-block {
    display: block;
}

.opera-inline-block {
    display: inline-block;
}

.opera-inline {
    display: inline;
}

.opera-flex {
    display: flex;
}

.opera-inline-flex {
    display: inline-flex;
}

.opera-grid {
    display: grid;
}

.opera-hidden {
    display: none;
}

/* Flexbox */
.opera-flex-col {
    flex-direction: column;
}

.opera-flex-row {
    flex-direction: row;
}

.opera-items-center {
    align-items: center;
}

.opera-items-start {
    align-items: flex-start;
}

.opera-items-end {
    align-items: flex-end;
}

.opera-justify-center {
    justify-content: center;
}

.opera-justify-between {
    justify-content: space-between;
}

.opera-justify-start {
    justify-content: flex-start;
}

.opera-justify-end {
    justify-content: flex-end;
}

/* Grid */
.opera-grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.opera-grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.opera-grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.opera-grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Position */
.opera-relative {
    position: relative;
}

.opera-absolute {
    position: absolute;
}

.opera-fixed {
    position: fixed;
}

.opera-static {
    position: static;
}

/* Z-index */
.opera-z-10 {
    z-index: 10;
}

.opera-z-20 {
    z-index: 20;
}

.opera-z-30 {
    z-index: 30;
}

.opera-z-40 {
    z-index: 40;
}

.opera-z-50 {
    z-index: 50;
}

/* ========================================
   SPACING (MARGIN E PADDING)
   ======================================== */

/* Margin */
.opera-m-0 {
    margin: 0;
}

.opera-m-1 {
    margin: 0.25rem;
}

.opera-m-2 {
    margin: 0.5rem;
}

.opera-m-3 {
    margin: 0.75rem;
}

.opera-m-4 {
    margin: 1rem;
}

.opera-m-6 {
    margin: 1.5rem;
}

.opera-m-8 {
    margin: 2rem;
}

.opera-m-12 {
    margin: 3rem;
}

.opera-m-16 {
    margin: 4rem;
}

.opera-m-20 {
    margin: 5rem;
}

.opera-mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.opera-my-auto {
    margin-top: auto;
    margin-bottom: auto;
}

.opera-mt-0 {
    margin-top: 0;
}

.opera-mt-1 {
    margin-top: 0.25rem;
}

.opera-mt-2 {
    margin-top: 0.5rem;
}

.opera-mt-3 {
    margin-top: 0.75rem;
}

.opera-mt-4 {
    margin-top: 1rem;
}

.opera-mt-6 {
    margin-top: 1.5rem;
}

.opera-mt-8 {
    margin-top: 2rem;
}

.opera-mt-12 {
    margin-top: 3rem;
}

.opera-mt-16 {
    margin-top: 4rem;
}

.opera-mt-20 {
    margin-top: 5rem;
}

.opera-mt-36 {
    margin-top: 9rem;
}

.opera-mb-0 {
    margin-bottom: 0;
}

.opera-mb-1 {
    margin-bottom: 0.25rem;
}

.opera-mb-2 {
    margin-bottom: 0.5rem;
}

.opera-mb-3 {
    margin-bottom: 0.75rem;
}

.opera-mb-4 {
    margin-bottom: 1rem;
}

.opera-mb-6 {
    margin-bottom: 1.5rem;
}

.opera-mb-8 {
    margin-bottom: 2rem;
}

.opera-mb-12 {
    margin-bottom: 3rem;
}

.opera-mb-16 {
    margin-bottom: 4rem;
}

.opera-mb-20 {
    margin-bottom: 5rem;
}

.opera-ml-0 {
    margin-left: 0;
}

.opera-ml-1 {
    margin-left: 0.25rem;
}

.opera-ml-2 {
    margin-left: 0.5rem;
}

.opera-ml-3 {
    margin-left: 0.75rem;
}

.opera-ml-4 {
    margin-left: 1rem;
}

.opera-ml-6 {
    margin-left: 1.5rem;
}

.opera-ml-8 {
    margin-left: 2rem;
}

.opera-mr-0 {
    margin-right: 0;
}

.opera-mr-1 {
    margin-right: 0.25rem;
}

.opera-mr-2 {
    margin-right: 0.5rem;
}

.opera-mr-3 {
    margin-right: 0.75rem;
}

.opera-mr-4 {
    margin-right: 1rem;
}

.opera-mr-6 {
    margin-right: 1.5rem;
}

.opera-mr-8 {
    margin-right: 2rem;
}

/* Padding */
.opera-p-0 {
    padding: 0;
}

.opera-p-1 {
    padding: 0.25rem;
}

.opera-p-2 {
    padding: 0.5rem;
}

.opera-p-3 {
    padding: 0.75rem;
}

.opera-p-4 {
    padding: 1rem;
}

.opera-p-6 {
    padding: 1.5rem;
}

.opera-p-8 {
    padding: 2rem;
}

.opera-p-12 {
    padding: 3rem;
}

.opera-p-16 {
    padding: 4rem;
}

.opera-p-20 {
    padding: 5rem;
}

.opera-px-0 {
    padding-left: 0;
    padding-right: 0;
}

.opera-px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.opera-px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.opera-px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.opera-px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.opera-px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.opera-px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}

.opera-px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
}

.opera-px-16 {
    padding-left: 4rem;
    padding-right: 4rem;
}

.opera-py-0 {
    padding-top: 0;
    padding-bottom: 0;
}

.opera-py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.opera-py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.opera-py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}

.opera-py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.opera-py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.opera-py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.opera-py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.opera-py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.opera-py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.opera-pt-0 {
    padding-top: 0;
}

.opera-pt-1 {
    padding-top: 0.25rem;
}

.opera-pt-2 {
    padding-top: 0.5rem;
}

.opera-pt-3 {
    padding-top: 0.75rem;
}

.opera-pt-4 {
    padding-top: 1rem;
}

.opera-pt-6 {
    padding-top: 1.5rem;
}

.opera-pt-8 {
    padding-top: 2rem;
}

.opera-pt-12 {
    padding-top: 3rem;
}

.opera-pt-16 {
    padding-top: 4rem;
}

.opera-pt-20 {
    padding-top: 5rem;
}

.opera-pt-32 {
    padding-top: 8rem;
}

.opera-pt-36 {
    padding-top: 9rem;
}

.opera-pb-0 {
    padding-bottom: 0;
}

.opera-pb-1 {
    padding-bottom: 0.25rem;
}

.opera-pb-2 {
    padding-bottom: 0.5rem;
}

.opera-pb-3 {
    padding-bottom: 0.75rem;
}

.opera-pb-4 {
    padding-bottom: 1rem;
}

.opera-pb-6 {
    padding-bottom: 1.5rem;
}

.opera-pb-8 {
    padding-bottom: 2rem;
}

.opera-pb-12 {
    padding-bottom: 3rem;
}

.opera-pb-16 {
    padding-bottom: 4rem;
}

.opera-pb-20 {
    padding-bottom: 5rem;
}

.opera-pl-0 {
    padding-left: 0;
}

.opera-pl-1 {
    padding-left: 0.25rem;
}

.opera-pl-2 {
    padding-left: 0.5rem;
}

.opera-pl-3 {
    padding-left: 0.75rem;
}

.opera-pl-4 {
    padding-left: 1rem;
}

.opera-pl-6 {
    padding-left: 1.5rem;
}

.opera-pl-8 {
    padding-left: 2rem;
}

.opera-pr-0 {
    padding-right: 0;
}

.opera-pr-1 {
    padding-right: 0.25rem;
}

.opera-pr-2 {
    padding-right: 0.5rem;
}

.opera-pr-3 {
    padding-right: 0.75rem;
}

.opera-pr-4 {
    padding-right: 1rem;
}

.opera-pr-6 {
    padding-right: 1.5rem;
}

.opera-pr-8 {
    padding-right: 2rem;
}

/* Gap */
.opera-gap-0 {
    gap: 0;
}

.opera-gap-1 {
    gap: 0.25rem;
}

.opera-gap-2 {
    gap: 0.5rem;
}

.opera-gap-3 {
    gap: 0.75rem;
}

.opera-gap-4 {
    gap: 1rem;
}

.opera-gap-6 {
    gap: 1.5rem;
}

.opera-gap-8 {
    gap: 2rem;
}

.opera-gap-12 {
    gap: 3rem;
}

/* ========================================
   DIMENSIONS (WIDTH E HEIGHT)
   ======================================== */

/* Width */
.opera-w-auto {
    width: auto;
}

.opera-w-full {
    width: 100%;
}

.opera-w-screen {
    width: 100vw;
}

.opera-w-0 {
    width: 0;
}

.opera-w-1 {
    width: 0.25rem;
}

.opera-w-2 {
    width: 0.5rem;
}

.opera-w-3 {
    width: 0.75rem;
}

.opera-w-4 {
    width: 1rem;
}

.opera-w-5 {
    width: 1.25rem;
}

.opera-w-6 {
    width: 1.5rem;
}

.opera-w-8 {
    width: 2rem;
}

.opera-w-10 {
    width: 2.5rem;
}

.opera-w-12 {
    width: 3rem;
}

.opera-w-16 {
    width: 4rem;
}

.opera-w-20 {
    width: 5rem;
}

.opera-w-24 {
    width: 6rem;
}

.opera-w-32 {
    width: 8rem;
}

.opera-w-48 {
    width: 12rem;
}

.opera-w-64 {
    width: 16rem;
}

/* Height */
.opera-h-auto {
    height: auto;
}

.opera-h-full {
    height: 100%;
}

.opera-h-screen {
    height: 100vh;
}

.opera-h-0 {
    height: 0;
}

.opera-h-1 {
    height: 0.25rem;
}

.opera-h-2 {
    height: 0.5rem;
}

.opera-h-3 {
    height: 0.75rem;
}

.opera-h-4 {
    height: 1rem;
}

.opera-h-5 {
    height: 1.25rem;
}

.opera-h-6 {
    height: 1.5rem;
}

.opera-h-8 {
    height: 2rem;
}

.opera-h-10 {
    height: 2.5rem;
}

.opera-h-12 {
    height: 3rem;
}

.opera-h-16 {
    height: 4rem;
}

.opera-h-20 {
    height: 5rem;
}

.opera-h-24 {
    height: 6rem;
}

.opera-h-28 {
    height: 7rem;
}

.opera-h-32 {
    height: 8rem;
}

.opera-h-40 {
    height: 10rem;
}

.opera-h-48 {
    height: 12rem;
}

.opera-h-64 {
    height: 16rem;
}

.opera-h-96 {
    height: 24rem;
}

/* Max Width */
.opera-max-w-xs {
    max-width: 20rem;
}

.opera-max-w-sm {
    max-width: 24rem;
}

.opera-max-w-md {
    max-width: 28rem;
}

.opera-max-w-lg {
    max-width: 32rem;
}

.opera-max-w-xl {
    max-width: 36rem;
}

.opera-max-w-2xl {
    max-width: 42rem;
}

.opera-max-w-3xl {
    max-width: 48rem;
}

.opera-max-w-4xl {
    max-width: 56rem;
}

.opera-max-w-5xl {
    max-width: 64rem;
}

.opera-max-w-6xl {
    max-width: 72rem;
}

.opera-max-w-7xl {
    max-width: 80rem;
}

/* Min Height */
.opera-min-h-screen {
    min-height: 100vh;
}

.opera-min-h-0 {
    min-height: 0;
}

.opera-min-h-full {
    min-height: 100%;
}

/* Min Width */
.opera-min-w-200px {
    min-width: 200px;
}

/* ========================================
   TYPOGRAPHY
   ======================================== */

/* Font Size */
.opera-text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}

.opera-text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.opera-text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}

.opera-text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}

.opera-text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}

.opera-text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}

.opera-text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
}

.opera-text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
}

.opera-text-5xl {
    font-size: 3rem;
    line-height: 1;
}

.opera-text-6xl {
    font-size: 3.75rem;
    line-height: 1;
}

.opera-text-7xl {
    font-size: 4.5rem;
    line-height: 1;
}

/* Font Weight */
.opera-font-thin {
    font-weight: 100;
}

.opera-font-light {
    font-weight: 300;
}

.opera-font-normal {
    font-weight: 400;
}

.opera-font-medium {
    font-weight: 500;
}

.opera-font-semibold {
    font-weight: 600;
}

.opera-font-bold {
    font-weight: 700;
}

.opera-font-extrabold {
    font-weight: 800;
}

.opera-font-black {
    font-weight: 900;
}

/* Text Alignment */
.opera-text-left {
    text-align: left;
}

.opera-text-center {
    text-align: center;
}

.opera-text-right {
    text-align: right;
}

/* Line Height */
.opera-leading-none {
    line-height: 1;
}

.opera-leading-tight {
    line-height: 1.25;
}

.opera-leading-snug {
    line-height: 1.375;
}

.opera-leading-normal {
    line-height: 1.5;
}

.opera-leading-relaxed {
    line-height: 1.625;
}

.opera-leading-loose {
    line-height: 2;
}

/* ========================================
   COLORS
   ======================================== */

/* Text Colors */
.opera-text-white {
    color: #fff;
}

.opera-text-black {
    color: #000;
}

.opera-text-gray-400 {
    color: #9ca3af;
}

.opera-text-gray-500 {
    color: #6b7280;
}

.opera-text-gray-600 {
    color: #4b5563;
}

.opera-text-gray-700 {
    color: #374151;
}

.opera-text-gray-900 {
    color: #111827;
}

.opera-text-orange-600 {
    color: #ea580c;
}

.opera-text-blue-600 {
    color: #2563eb;
}

/* Background Colors */
.opera-bg-white {
    background-color: #fff;
}

.opera-bg-black {
    background-color: #000;
}

.opera-bg-gray-50 {
    background-color: #f9fafb;
}

.opera-bg-gray-100 {
    background-color: #f3f4f6;
}

.opera-bg-gray-200 {
    background-color: #e5e7eb;
}

.opera-bg-orange-50 {
    background-color: #fff7ed;
}

.opera-bg-blue-50 {
    background-color: #eff6ff;
}

/* Custom Colors */
.opera-bg-opera-dark {
    background-color: #0a0e3d;
}

.opera-text-opera-dark {
    color: #0a0e3d;
}

/* ========================================
   GRADIENTS
   ======================================== */

.opera-bg-gradient-to-r {
    background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.opera-bg-gradient-to-br {
    background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.opera-bg-gradient-to-b {
    background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.opera-bg-gradient-to-t {
    background-image: linear-gradient(to top, var(--tw-gradient-stops));
}

.opera-from-opera-green {
    --tw-gradient-from: #7ed957;
    --tw-gradient-to: rgba(126, 217, 87, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.opera-via-opera-teal {
    --tw-gradient-to: rgba(77, 184, 168, 0);
    --tw-gradient-stops: var(--tw-gradient-from), #4db8a8, var(--tw-gradient-to);
}

.opera-to-opera-blue {
    --tw-gradient-to: #2c3e8f;
}

.opera-from-blue-50 {
    --tw-gradient-from: #f0f9ff;
    --tw-gradient-to: rgba(240, 253, 244, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.opera-via-teal-50 {
    --tw-gradient-to: #fff;
    --tw-gradient-stops: var(--tw-gradient-from), #fff, var(--tw-gradient-to);
}

.opera-to-green-50 {
    --tw-gradient-to: #f0fdf4;
}

.opera-from-gray-50 {
    --tw-gradient-from: #f9fafb;
    --tw-gradient-to: rgba(249, 250, 251, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.opera-to-white {
    --tw-gradient-to: #fff;
}

.opera-from-orange-500 {
    --tw-gradient-from: #f97316;
    --tw-gradient-to: rgba(249, 115, 22, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.opera-to-red-500 {
    --tw-gradient-to: #ef4444;
}

.opera-from-d4f4dd {
    --tw-gradient-from: #d4f4dd;
    --tw-gradient-to: rgba(212, 244, 221, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.opera-to-b8f4d4 {
    --tw-gradient-to: #b8f4d4;
}

/* Custom Gradients */
.opera-from-7ed957 {
    --tw-gradient-from: #7ed957;
    --tw-gradient-to: rgba(126, 217, 87, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.opera-via-4db8a8 {
    --tw-gradient-to: rgba(77, 184, 168, 0);
    --tw-gradient-stops: var(--tw-gradient-from), #4db8a8, var(--tw-gradient-to);
}

.opera-to-2c3e8f {
    --tw-gradient-to: #2c3e8f;
}

.opera-to-2c5aa0 {
    --tw-gradient-to: #2c5aa0;
}

.opera-to-4db8a8 {
    --tw-gradient-to: #4db8a8;
}

/* Gradients with opacity */
.opera-from-7ed957\/10 {
    --tw-gradient-from: rgba(126, 217, 87, 0.1);
    --tw-gradient-to: rgba(126, 217, 87, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.opera-via-4db8a8\/10 {
    --tw-gradient-to: rgba(77, 184, 168, 0);
    --tw-gradient-stops: var(--tw-gradient-from), rgba(77, 184, 168, 0.1), var(--tw-gradient-to);
}

.opera-to-2c3e8f\/10 {
    --tw-gradient-to: rgba(44, 62, 143, 0.1);
}

/* Via gradient */
.opera-via-black\/20 {
    --tw-gradient-to: rgba(0, 0, 0, 0);
    --tw-gradient-stops: var(--tw-gradient-from), rgba(0, 0, 0, 0.2), var(--tw-gradient-to);
}

/* Text Gradient */
.opera-bg-clip-text {
    -webkit-background-clip: text;
    background-clip: text;
}

.opera-text-transparent {
    color: transparent;
}

/* ========================================
   BORDERS
   ======================================== */

.opera-border {
    border-width: 1px;
}

.opera-border-2 {
    border-width: 2px;
}

.opera-border-4 {
    border-width: 4px;
}

.opera-border-0 {
    border-width: 0;
}

.opera-border-gray-100 {
    border-color: #f3f4f6;
}

.opera-border-gray-200 {
    border-color: #e5e7eb;
}

.opera-border-gray-300 {
    border-color: #d1d5db;
}

.opera-border-orange-200 {
    border-color: #fed7aa;
}

.opera-border-blue-200 {
    border-color: #bfdbfe;
}

/* Custom border colors */
.opera-border-opera-teal {
    border-color: #4db8a8;
}

.opera-border-7ed957 {
    border-color: #7ed957;
}

.opera-border-4db8a8 {
    border-color: #4db8a8;
}

.opera-rounded-none {
    border-radius: 0;
}

.opera-rounded-sm {
    border-radius: 0.125rem;
}

.opera-rounded {
    border-radius: 0.25rem;
}

.opera-rounded-md {
    border-radius: 0.375rem;
}

.opera-rounded-lg {
    border-radius: 0.5rem;
}

.opera-rounded-xl {
    border-radius: 0.75rem;
}

.opera-rounded-2xl {
    border-radius: 1rem;
}

.opera-rounded-3xl {
    border-radius: 1.5rem;
}

.opera-rounded-full {
    border-radius: 9999px;
}

/* ========================================
   SHADOWS
   ======================================== */

.opera-shadow-sm {
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.opera-shadow {
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}

.opera-shadow-md {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.opera-shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.opera-shadow-xl {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.opera-shadow-2xl {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Drop shadow */
.opera-drop-shadow-lg {
    filter: drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));
}

/* ========================================
   TRANSFORMS E TRANSITIONS
   ======================================== */

.opera-transform {
    transform: translateZ(0);
}

.opera-scale-105 {
    transform: scale(1.05);
}

.opera-scale-110 {
    transform: scale(1.1);
}

.opera-scale-102 {
    transform: scale(1.02);
}

.opera--translate-y-2 {
    transform: translateY(-0.5rem);
}

.opera--translate-x-1\/2 {
    transform: translateX(-50%);
}

.opera--translate-y-1\/2 {
    transform: translateY(-50%);
}

.opera-translate-x-1 {
    transform: translateX(0.25rem);
}

.opera-transition-all {
    transition: all 0.15s ease-in-out;
}

.opera-transition-colors {
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

.opera-transition-transform {
    transition: transform 0.15s ease-in-out;
}

.opera-transition-opacity {
    transition: opacity 0.15s ease-in-out;
}

.opera-duration-300 {
    transition-duration: 300ms;
}

/* ========================================
   OPACITY
   ======================================== */

.opera-opacity-0 {
    opacity: 0;
}

.opera-opacity-30 {
    opacity: 0.3;
}

.opera-opacity-50 {
    opacity: 0.5;
}

.opera-opacity-80 {
    opacity: 0.8;
}

.opera-opacity-90 {
    opacity: 0.9;
}

.opera-opacity-100 {
    opacity: 1;
}

/* ========================================
   OVERFLOW
   ======================================== */

.opera-overflow-hidden {
    overflow: hidden;
}

.opera-overflow-x-hidden {
    overflow-x: hidden;
}

.opera-overflow-y-hidden {
    overflow-y: hidden;
}

/* ========================================
   CURSOR
   ======================================== */

.opera-cursor-pointer {
    cursor: pointer;
}

.opera-cursor-not-allowed {
    cursor: not-allowed;
}

/* ========================================
   OBJECT FIT
   ======================================== */

.opera-object-contain {
    object-fit: contain;
}

.opera-object-cover {
    object-fit: cover;
}

/* ========================================
   BACKDROP
   ======================================== */

.opera-backdrop-blur-sm {
    backdrop-filter: blur(4px);
}

/* ========================================
   WHITESPACE
   ======================================== */

.opera-whitespace-nowrap {
    white-space: nowrap;
}

/* ========================================
   FLEX SHRINK
   ======================================== */

.opera-flex-shrink-0 {
    flex-shrink: 0;
}

.opera-flex-1 {
    flex: 1 1 0%;
}

.opera-flex-grow {
    flex-grow: 1;
}

/* ========================================
   LINE THROUGH
   ======================================== */

.opera-line-through {
    text-decoration: line-through;
}

/* ========================================
   UNDERLINE
   ======================================== */

.opera-underline {
    text-decoration: underline;
}

.opera-no-underline {
    text-decoration: none !important;
}

/* ========================================
   POSITIONING ESPECÍFICO
   ======================================== */

.opera-inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.opera-inset-\[2px\] {
    top: 2px;
    right: 2px;
    bottom: 2px;
    left: 2px;
}

.opera-inset-\[15px\] {
    top: 15px;
    right: 15px;
    bottom: 15px;
    left: 15px;
}

.opera-left-0 {
    left: 0;
}

.opera-right-0 {
    right: 0;
}

.opera-top-0 {
    top: 0;
}

.opera-bottom-0 {
    bottom: 0;
}

.opera-top-1\/2 {
    top: 50%;
}

.opera-left-1\/2 {
    left: 50%;
}

.opera-right-1\/2 {
    right: 50%;
}

.opera-bottom-1\/2 {
    bottom: 50%;
}

.opera-top-8 {
    top: 2rem;
}

.opera-top-12 {
    top: 3rem;
}

.opera-top-16 {
    top: 4rem;
}

.opera-top-20 {
    top: 5rem;
}

.opera-top-32 {
    top: 8rem;
}

.opera-bottom-8 {
    bottom: 2rem;
}

.opera-bottom-32 {
    bottom: 8rem;
}

.opera-left-20 {
    left: 5rem;
}

.opera-right-20 {
    right: 5rem;
}

.opera--top-4 {
    top: -1rem;
}

.opera--right-4 {
    right: -1rem;
}

.opera--top-6 {
    top: -1.5rem;
}

.opera--right-6 {
    right: -1.5rem;
}

/* ========================================
   SPACING ESPECÍFICO
   ======================================== */

.opera-space-y-0\.5 > * + * {
    margin-top: 0.125rem;
}

.opera-space-y-1 > * + * {
    margin-top: 0.25rem;
}

.opera-space-y-2 > * + * {
    margin-top: 0.5rem;
}

.opera-space-y-3 > * + * {
    margin-top: 0.75rem;
}

.opera-space-y-4 > * + * {
    margin-top: 1rem;
}

.opera-space-y-6 > * + * {
    margin-top: 1.5rem;
}

.opera-space-y-8 > * + * {
    margin-top: 2rem;
}

.opera-space-y-12 > * + * {
    margin-top: 3rem;
}

/* ========================================
   COLORS E OPACITY ESPECÍFICOS
   ======================================== */

.opera-text-white\/80 {
    color: rgba(255, 255, 255, 0.8);
}

.opera-text-white\/70 {
    color: rgba(255, 255, 255, 0.7);
}

.opera-text-white\/90 {
    color: rgba(255, 255, 255, 0.9);
}

.opera-bg-white\/5 {
    background-color: rgba(255, 255, 255, 0.05);
}

.opera-bg-white\/10 {
    background-color: rgba(255, 255, 255, 0.1);
}

.opera-bg-white\/20 {
    background-color: rgba(255, 255, 255, 0.2);
}

.opera-bg-white\/90 {
    background-color: rgba(255, 255, 255, 0.9);
}

.opera-bg-black\/70 {
    background-color: rgba(0, 0, 0, 0.7);
}

.opera-bg-black\/20 {
    background-color: rgba(0, 0, 0, 0.2);
}

.opera-border-white\/10 {
    border-color: rgba(255, 255, 255, 0.1);
}

.opera-border-white\/20 {
    border-color: rgba(255, 255, 255, 0.2);
}

/* Pink colors for favorites */
.opera-text-pink-500 {
    color: #ec4899;
}

.opera-bg-pink-100 {
    background-color: #fce7f3;
}

.opera-hover\:bg-pink-200:hover {
    background-color: #fbcfe8;
}

/* Red color for unavailable products */
.opera-bg-red-500 {
    background-color: #ef4444;
}

/* Text colors with opacity */
.opera-text-2c3e8f {
    color: #2c3e8f;
}

.opera-text-4db8a8 {
    color: #4db8a8;
}

/* ========================================
   BORDERS E SHADOWS ESPECÍFICOS
   ======================================== */

.opera-ring-2 {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

.opera-ring-opera-teal {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

/* ========================================
   TRANSFORMS ESPECÍFICOS
   ======================================== */

.opera-origin-left {
    transform-origin: left;
}

/* ========================================
   ANIMATIONS DELAYS ESPECÍFICOS
   ======================================== */

.opera-animation-delay-1000 {
    animation-delay: 1000ms;
}

.opera-animation-delay-2000 {
    animation-delay: 2000ms;
}

.opera-animation-delay-3000 {
    animation-delay: 3000ms;
}

/* ========================================
   HOVER STATES
   ======================================== */

.opera-hover\:opacity-80:hover {
    opacity: 0.8;
}

.opera-hover\:opacity-90:hover {
    opacity: 0.9;
}

.opera-hover\:scale-105:hover {
    transform: scale(1.-hit);
}

.opera-hover\:scale-110:hover {
    transform: scale(1.1);
}

.opera-hover\:shadow-lg:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.opera-hover\:shadow-xl:hover {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.opera-hover\:shadow-2xl:hover {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.opera-hover\:-translate-y-2:hover {
    transform: translateY(-0.5rem);
}

.opera-hover\:rotate-6:hover {
    transform: rotate(6deg);
}

.opera-hover\:bg-gray-50:hover {
    background-color: #f9fafb;
}

.opera-hover\:bg-gray-100:hover {
    background-color: #f3f4f6;
}

.opera-hover\:text-gray-600:hover {
    color: #4b5563;
}

.opera-hover\:text-opera-dark:hover {
    color: #0a0e3d;
}

.opera-hover\:translate-x-1:hover {
    transform: translateX(0.25rem);
}

.opera-hover\:bg-opera-teal:hover {
    background-color: #4db8a8;
}

.opera-hover\:border-opera-teal:hover {
    border-color: #4db8a8;
}

.opera-hover\:text-2c3e8f:hover {
    color: #2c3e8f;
}

/* ========================================
   FOCUS STATES
   ======================================== */

.opera-focus\:border-opera-teal:focus {
    border-color: #4db8a8;
}

.opera-focus\:ring-2:focus {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

.opera-focus\:ring-opera-teal\/20:focus {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

.opera-focus\:outline-none:focus {
    outline: none;
}

.opera-focus\:border-transparent:focus {
    border-color: transparent;
}

.opera-focus\:ring-4db8a8:focus {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

/* ========================================
   DISABLED STATES
   ======================================== */

.opera-disabled\:opacity-50:disabled {
    opacity: 0.5;
}

.opera-disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
}

/* ========================================
   GROUP HOVER
   ======================================== */

.opera-group:hover .opera-group-hover\:opacity-0 {
    opacity: 0;
}

.opera-group:hover .opera-group-hover\:text-opera-dark {
    color: #0a0e3d;
}

.opera-group:hover .opera-group-hover\:translate-x-1 {
    transform: translateX(0.25rem);
}

.opera-group:hover .opera-group-hover\:scale-110 {
    transform: scale(1.1);
}

/* ========================================
   RESPONSIVE DESIGN
   ======================================== */

@media (min-width: 640px) {
    .opera-sm\:flex {
        display: flex;
    }

    .opera-sm\:hidden {
        display: none;
    }

    .opera-sm\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }

    .opera-sm\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }
}

@media (min-width: 768px) {
    .opera-md\:flex {
        display: flex;
    }

    .opera-md\:hidden {
        display: none;
    }

    .opera-md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .opera-md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .opera-md\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .opera-md\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }

    .opera-md\:text-5xl {
        font-size: 3rem;
        line-height: 1;
    }

    .opera-md\:text-6xl {
        font-size: 3.75rem;
        line-height: 1;
    }

    .opera-md\:text-7xl {
        font-size: 4.5rem;
        line-height: 1;
    }

    .opera-md\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }

    .opera-md\:gap-8 {
        gap: 2rem;
    }

    .opera-md\:px-16 {
        padding-left: 4rem;
        padding-right: 4rem;
    }
}

@media (min-width: 1024px) {
    .opera-lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .opera-lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .opera-lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .opera-lg\:flex {
        display: flex;
    }

    .opera-lg\:hidden {
        display: none;
    }

    .opera-lg\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }

    .opera-lg\:text-5xl {
        font-size: 3rem;
        line-height: 1;
    }

    .opera-lg\:text-6xl {
        font-size: 3.75rem;
        line-height: 1;
    }
}

/* ========================================
   ANIMATIONS
   ======================================== */

@keyframes opera-float {
    0%, 100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-20px);
    }
}

@keyframes opera-float-delayed {
    0%, 100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-15px);
    }
}

@keyframes opera-float-delayed-centered {
    0%, 100% {
        transform: translateX(-50%) translateY(0px);
    }

    50% {
        transform: translateX(-50%) translateY(-15px);
    }
}

@keyframes opera-progress-infinite {
    0% {
        transform: scaleX(0);
    }

    70% {
        transform: scaleX(1);
    }

    100% {
        transform: scaleX(1);
    }
}

@keyframes opera-pulse-infinite {
    0%, 100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }
}

@keyframes opera-ping-infinite {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    100% {
        transform: scale(1.5);
        opacity: 0;
    }
}

.opera-animate-float {
    animation: opera-float 6s ease-in-out infinite;
}

.opera-animate-float-delayed {
    animation: opera-float-delayed 6s ease-in-out infinite 1s;
}

.opera-animate-float-delayed-centered {
    animation: opera-float-delayed-centered 6s ease-in-out infinite 1s;
}

.opera-animate-progress-infinite {
    animation: opera-progress-infinite 4s ease-in-out infinite;
}

.opera-animate-pulse-infinite {
    animation: opera-pulse-infinite 4s ease-in-out infinite;
}

.opera-animate-ping-infinite {
    animation: opera-ping-infinite 2s ease-out infinite;
}

/* ========================================
   UTILITY CLASSES
   ======================================== */

.opera-antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.opera-select-none {
    user-select: none;
}

.opera-pointer-events-none {
    pointer-events: none;
}

/* ========================================
   CUSTOM OPERA STYLES
   ======================================== */

/* Header específico */
.opera-header {
    background-color: rgba(10, 14, 61, 0.8);
    backdrop-filter: blur(4px);
}

/* Botões com gradiente */
.opera-btn-gradient {
    background: linear-gradient(to right, #7ed957, #4db8a8, #2c3e8f);
    color: white;
    border: none;
    transition: all 0.3s ease;
}

    .opera-btn-gradient:hover {
        transform: translateY(-2px);
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
    }

/* Cards flutuantes */
.opera-floating-card {
    animation: opera-float 6s ease-in-out infinite;
}

.opera-floating-card-delayed {
    animation: opera-float-delayed 6s ease-in-out infinite 1s;
}

/* Backgrounds específicos */
.opera-bg-opera-hero {
    background-color: #0a0e3d;
}

.opera-bg-opera-gradient {
    background: linear-gradient(to bottom right, #f0fdf4, #fff, #eff6ff);
}

/* Textos com gradiente */
.opera-text-gradient-opera {
    background: linear-gradient(to right, #7ed957, #4db8a8, #2c3e8f);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* ========================================
   FORM STYLES - PALAVRAS RESERVADAS
   ======================================== */

.opera-input[type="text"],
.opera-input[type="email"],
.opera-input[type="tel"],
.opera-textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    font-size: 1rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

    .opera-input[type="text"]:focus,
    .opera-input[type="email"]:focus,
    .opera-input[type="tel"]:focus,
    .opera-textarea:focus {
        outline: none;
        border-color: #4db8a8;
        box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
    }

/* ========================================
   BUTTON STYLES - PALAVRAS RESERVADAS
   ======================================== */

.opera-button {
    cursor: pointer;
    border: none;
    outline: none;
    transition: all 0.15s ease-in-out;
}

    .opera-button:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

/* ========================================
   HOVER STATES
   ======================================== */

/* Hover opacity */
.hover\:opera-opacity-80:hover {
    opacity: 0.8;
}

.hover\:opera-opacity-90:hover {
    opacity: 0.9;
}

/* Hover text colors */
.hover\:opera-text-transparent:hover {
    color: transparent;
}

.hover\:opera-text-white:hover {
    color: white;
}

.hover\:opera-text-opera-dark:hover {
    color: #0a0e3d;
}

/* Hover background gradients */
.hover\:opera-bg-gradient-to-r:hover {
    background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.hover\:opera-from-7ed957:hover {
    --tw-gradient-from: #7ed957;
    --tw-gradient-to: rgba(126, 217, 87, 0);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:opera-via-4db8a8:hover {
    --tw-gradient-to: rgba(77, 184, 168, 0);
    --tw-gradient-stops: var(--tw-gradient-from), #4db8a8, var(--tw-gradient-to);
}

.hover\:opera-to-2c3e8f:hover {
    --tw-gradient-to: #2c3e8f;
}

/* Hover background clip */
.hover\:opera-bg-clip-text:hover {
    background-clip: text;
    -webkit-background-clip: text;
}

/* Hover transitions */
.hover\:opera-scale-105:hover {
    transform: scale(1.05);
}

.hover\:opera-scale-102:hover {
    transform: scale(1.02);
}

/* Hover shadows */
.hover\:opera-shadow-lg:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.hover\:opera-shadow-xl:hover {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.hover\:opera-shadow-2xl:hover {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Hover borders */
.hover\:opera-border-opera-teal:hover {
    border-color: #4db8a8;
}

.hover\:opera-border-4db8a8:hover {
    border-color: #4db8a8;
}

/* Hover background colors */
.hover\:opera-bg-white:hover {
    background-color: white;
}

.hover\:opera-bg-gray-50:hover {
    background-color: #f9fafb;
}

.hover\:opera-bg-gray-100:hover {
    background-color: #f3f4f6;
}

.hover\:opera-bg-white\/10:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.hover\:opera-bg-white\/20:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

/* Focus states */
.focus\:opera-border-opera-teal:focus {
    border-color: #4db8a8;
}

.focus\:opera-ring-2:focus {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

.focus\:opera-ring-opera-teal\/20:focus {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

.focus\:opera-outline-none:focus {
    outline: none;
}

/* Transform and transitions */
.opera-transform {
    transform: translateX(var(--tw-translate-x, 0)) translateY(var(--tw-translate-y, 0)) rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1));
}

.opera-transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.opera-transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.opera-transition-opacity {
    transition-property: opacity;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.opera-transition-shadow {
    transition-property: box-shadow;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.opera-transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

/* Duration utilities */
.opera-duration-300 {
    transition-duration: 300ms;
}

/* Transform utilities */
.opera-scale-105 {
    transform: scale(1.05);
}

.opera-scale-102 {
    transform: scale(1.02);
}

.-opera-translate-y-1\/2 {
    transform: translateY(-50%);
}

.-opera-translate-x-1\/2 {
    transform: translateX(-50%);
}

/* Cursor utilities */
.opera-cursor-pointer {
    cursor: pointer;
}

.opera-cursor-not-allowed {
    cursor: not-allowed;
}

/* Disabled states */
.opera-disabled\:opacity-50:disabled {
    opacity: 0.5;
}

.opera-disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
}

/* Ring utilities */
.opera-ring-2 {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

.opera-ring-opera-teal {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

/* Custom component classes */
.opera-user-type-btn {
    cursor: pointer;
    border: 2px solid #e5e7eb;
    transition: all 0.3s ease;
    background-color: white;
    text-align: center;
}

    .opera-user-type-btn:hover {
        transform: scale(1.05);
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    }

    .opera-user-type-btn.selected {
        border-color: #4db8a8;
        background: linear-gradient(to bottom right, #f0fdf4, #f0fdfa);
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    }

.opera-plan-card {
    cursor: pointer;
    border: 2px solid #e5e7eb;
    transition: all 0.3s ease;
}

    .opera-plan-card:hover {
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    }

    .opera-plan-card.selected {
        border-color: #4db8a8;
        box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
    }

.opera-step-content {
    display: none;
}

    .opera-step-content:not(.opera-hidden) {
        display: block;
    }

/* Progress indicator specific styles */
.opera-progress-circle {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    transition: all 0.3s ease;
}

.opera-progress-connector {
    width: 2rem;
    height: 0.25rem;
    margin: 0 0.25rem;
    transition: all 0.3s ease;
}

/* Form improvements */
.opera-form-container {
    max-width: 42rem;
    margin: 0 auto;
}

.opera-input-group {
    margin-bottom: 1.5rem;
}

.opera-input-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    margin-bottom: 0.5rem;
}

/* Carousel navigation buttons */
.opera-carousel-btn {
    background-color: rgba(10, 14, 61, 0.8);
    border: none;
    border-radius: 50%;
    padding: 0.75rem;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    z-index: 10;
    flex-shrink: 0;
}

    .opera-carousel-btn:hover {
        background-color: rgba(10, 14, 61, 1);
    }

    .opera-carousel-btn svg {
        width: 1.5rem;
        height: 1.5rem;
        color: white;
    }

/* Carousel images */
.opera-carousel-image {
    max-width: 120px;
    max-height: 60px;
    object-fit: contain;
}

/* Transform utilities for positioning */
.-opera-translate-y-1\/2 {
    transform: translateY(-50%);
}

/* Full-width sections */
.opera-section-full-width {
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

    .opera-section-full-width .opera-max-w-7xl {
        width: 100% !important;
        max-width: none !important;
    }

/* Brand logo containers for Live page */
.opera-brand-logo-container {
    width: 5rem;
    height: 5rem;
    position: relative;
    background-color: white;
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
}

    .opera-brand-logo-container img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
        width: auto;
        height: auto;
    }

/* Additional utility classes */
.opera-text-left {
    text-align: left;
}

.opera-text-center {
    text-align: center;
}

.opera-text-right {
    text-align: right;
}

.opera-leading-tight {
    line-height: 1.25;
}

.opera-leading-relaxed {
    line-height: 1.625;
}

.opera-whitespace-nowrap {
    white-space: nowrap;
}

.opera-overflow-hidden {
    overflow: hidden;
}

.opera-overflow-y-auto {
    overflow-y: auto;
}

.opera-flex-wrap {
    flex-wrap: wrap;
}

.opera-flex-col {
    flex-direction: column;
}

.opera-flex-shrink-0 {
    flex-shrink: 0;
}

.opera-items-start {
    align-items: flex-start;
}

.opera-items-baseline {
    align-items: baseline;
}

.opera-items-end {
    align-items: flex-end;
}

.opera-justify-start {
    justify-content: flex-start;
}

.opera-justify-end {
    justify-content: flex-end;
}

.opera-justify-between {
    justify-content: space-between;
}

.opera-gap-2 {
    gap: 0.5rem;
}

.opera-gap-3 {
    gap: 0.75rem;
}

.opera-gap-6 {
    gap: 1.5rem;
}

.opera-gap-8 {
    gap: 2rem;
}

.opera-gap-12 {
    gap: 3rem;
}

.opera-space-y-4 > * + * {
    margin-top: 1rem;
}

/* Color utilities */
.opera-text-red-500 {
    color: #ef4444;
}

.opera-text-green-500 {
    color: #22c55e;
}

.opera-text-blue-500 {
    color: #3b82f6;
}

.opera-text-pink-500 {
    color: #ec4899;
}

.opera-text-orange-500 {
    color: #f97316;
}

.opera-text-gray-300 {
    color: #d1d5db;
}

.opera-text-gray-400 {
    color: #9ca3af;
}

.opera-text-gray-500 {
    color: #6b7280;
}

.opera-text-gray-600 {
    color: #4b5563;
}

.opera-text-gray-700 {
    color: #374151;
}

.opera-text-gray-900 {
    color: #111827;
}

.opera-bg-red-500 {
    background-color: #ef4444;
}

.opera-bg-green-500 {
    background-color: #22c55e;
}

.opera-bg-blue-500 {
    background-color: #3b82f6;
}

.opera-bg-pink-500 {
    background-color: #ec4899;
}

.opera-bg-orange-500 {
    background-color: #f97316;
}

.opera-bg-gray-50 {
    background-color: #f9fafb;
}

.opera-bg-gray-100 {
    background-color: #f3f4f6;
}

.opera-bg-gray-200 {
    background-color: #e5e7eb;
}

.opera-bg-gray-300 {
    background-color: #d1d5db;
}

.opera-border-red-500 {
    border-color: #ef4444;
}

.opera-border-gray-200 {
    border-color: #e5e7eb;
}

.opera-border-gray-300 {
    border-color: #d1d5db;
}

/* Additional spacing */
.opera-p-2 {
    padding: 0.5rem;
}

.opera-p-3 {
    padding: 0.75rem;
}

.opera-p-4 {
    padding: 1rem;
}

.opera-p-6 {
    padding: 1.5rem;
}

.opera-p-8 {
    padding: 2rem;
}

.opera-p-12 {
    padding: 3rem;
}

/* Space between elements */
.opera-space-y-6 > * + * {
    margin-top: 1.5rem;
}

.opera-px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.opera-px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.opera-px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.opera-px-16 {
    padding-left: 4rem;
    padding-right: 4rem;
}

.opera-py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.opera-py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.opera-py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.opera-py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.opera-py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.opera-py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.opera-pt-24 {
    padding-top: 6rem;
}

.opera-pb-20 {
    padding-bottom: 5rem;
}

.opera-pl-10 {
    padding-left: 2.5rem;
}

.opera-pl-12 {
    padding-left: 3rem;
}

.opera-pr-6 {
    padding-right: 1.5rem;
}

.opera-pr-12 {
    padding-right: 3rem;
}

.opera-mb-2 {
    margin-bottom: 0.5rem;
}

.opera-mb-4 {
    margin-bottom: 1rem;
}

.opera-mb-6 {
    margin-bottom: 1.5rem;
}

.opera-mb-8 {
    margin-bottom: 2rem;
}

.opera-mb-12 {
    margin-bottom: 3rem;
}

.opera-mb-16 {
    margin-bottom: 4rem;
}

.opera-mt-2 {
    margin-top: 0.5rem;
}

.opera-mt-4 {
    margin-top: 1rem;
}

.opera-mt-6 {
    margin-top: 1.5rem;
}

.opera-mt-8 {
    margin-top: 2rem;
}

.opera-mt-12 {
    margin-top: 3rem;
}

.opera-mx-2 {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}

.opera-mx-4 {
    margin-left: 1rem;
    margin-right: 1rem;
}

.opera-mx-6 {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
}

.opera-mx-auto {
    margin-left: auto;
    margin-right: auto;
}

/* ========================================
   SCROLL BEHAVIOR
   ======================================== */

.opera-html {
    scroll-behavior: smooth;
}

/* ========================================
   CUSTOM WIDTHS E HEIGHTS
   ======================================== */

.opera-w-500px {
    width: 500px;
}

.opera-h-600px {
    height: 600px;
}

/* ========================================
   CUSTOM COLORS E OPACITY
   ======================================== */

/* Tracking */
.opera-tracking-wide {
    letter-spacing: 0.025em;
}

/* Fill for SVG */
.opera-fill-pink-500 {
    fill: #ec4899;
}

/* Checkbox styles */
.opera-checkbox[type="checkbox"] {
    appearance: none;
    background-color: #fff;
    border: 1px solid #d1d5db;
    border-radius: 0.25rem;
    width: 1.25rem;
    height: 1.25rem;
    position: relative;
    cursor: pointer;
}

    .opera-checkbox[type="checkbox"]:checked {
        background-color: #4db8a8;
        border-color: #4db8a8;
    }

        .opera-checkbox[type="checkbox"]:checked::after {
            content: '✓';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: white;
            font-size: 0.75rem;
            font-weight: bold;
        }

    /* Focus ring for checkbox */
    .opera-checkbox[type="checkbox"]:focus {
        outline: none;
        box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
    }

/* ========================================
   LOGIN PAGE SPECIFIC STYLES
   ======================================== */

/* Scale transform for login button */
.opera-hover\:scale-102:hover {
    transform: scale(1.02);
}

/* Focus ring for inputs */
.opera-focus\:ring-4db8a8:focus {
    box-shadow: 0 0 0 2px rgba(77, 184, 168, 0.2);
}

/* Focus border transparent */
.opera-focus\:border-transparent:focus {
    border-color: transparent;
}

/* Text colors for login */
.opera-text-4db8a8 {
    color: #4db8a8;
}

.opera-text-2c3e8f {
    color: #2c3e8f;
}

/* Hover colors for login */
.opera-hover\:text-2c3e8f:hover {
    color: #2c3e8f;
}

/* Border colors */
.opera-border-gray-100 {
    border-color: #f3f4f6;
}

/* Pointer events */
.opera-pointer-events-none {
    pointer-events: none;
}

/* ========================================
   LOGIN FORM ICON ALIGNMENT FIXES
   ======================================== */

/* Garantir que os ícones fiquem dentro dos campos */
.opera-login-input-container {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

.opera-login-input-icon {
    position: absolute;
    top: 50%;
    left: 0.75rem;
    transform: translateY(-50%);
    z-index: 10;
    pointer-events: none;
}

.opera-login-input-field {
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
    position: relative;
    z-index: 0;
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
}

.opera-login-password-toggle {
    position: absolute;
    top: 50%;
    right: 0.75rem;
    transform: translateY(-50%);
    z-index: 10;
    background: none;
    border: none;
    padding: 0.25rem;
    cursor: pointer;
}

/* ========================================
   CUSTOM RESPONSIVE
   ======================================== */

@media (min-width: 768px) {
    .opera-md\:px-16 {
        padding-left: 4rem;
        padding-right: 4rem;
    }

    .opera-md\:gap-8 {
        gap: 2rem;
    }
}

.opera-rounded-r-lg {
    border-top-right-radius: 0.625rem;
    border-bottom-right-radius: 0.625rem;
}

.opera-border-t {
    border-top-style: solid;
    border-top-width: 1px;
}

.opera-py-16 {
    padding-block: calc(0.25rem * 16);
}

.opera-px-6 {
    padding-inline: calc(0.25rem * 15);
}

.opera-w-7 {
    width: calc(0.25rem * 7);
}

.opera-h-7 {
    height: calc(0.25rem * 7);
}

.opera-w-14 {
    width: calc(0.25rem * 14);
}

.opera-h-14 {
    height: calc(0.25rem * 14);
}

.opera-align-start {
    align-items: start;
}

.bg-red-600 {
    background-color: #FF0000;
}

.w-425rem {
    width: 4.25rem;
}

.w-625rem {
    width: 6.25rem;
}
@media (min-width: 1000px) and (max-width: 1199px) {
    .login-container {
        margin-top: 95px;
    }
}