/* ============================================
   THEME ISOLATION RESET
   Ensures checkout works independently of any theme
   ============================================ */

/* Scope all styles to the checkout container */
#cac-checkout,
#cac-checkout *,
#cac-checkout *::before,
#cac-checkout *::after {
    box-sizing: border-box !important;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
    list-style: none !important;
    list-style-type: none !important;
    text-decoration: none;
}

#cac-checkout {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    color: #1f2937 !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

#cac-checkout h1,
#cac-checkout h2,
#cac-checkout h3,
#cac-checkout h4,
#cac-checkout h5,
#cac-checkout h6 {
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

#cac-checkout p {
    margin: 0;
}

#cac-checkout a {
    color: inherit;
    text-decoration: none;
}

#cac-checkout button {
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
}

#cac-checkout input,
#cac-checkout select,
#cac-checkout textarea {
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
    margin: 0;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

#cac-checkout select {
    appearance: auto;
    -webkit-appearance: menulist;
    -moz-appearance: menulist;
}

#cac-checkout input[type="checkbox"] {
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    -moz-appearance: checkbox !important;
}

#cac-checkout input[type="date"] {
    appearance: auto !important;
    -webkit-appearance: auto !important;
}

#cac-checkout img,
#cac-checkout svg {
    display: block;
    max-width: 100%;
    height: auto;
}

#cac-checkout svg {
    display: inline-block;
}

/* Remove any ::marker or list bullets */
#cac-checkout *::marker {
    display: none !important;
    content: none !important;
    font-size: 0 !important;
}

#cac-checkout label {
    display: block;
    cursor: pointer;
}

/* ============================================
   END THEME ISOLATION RESET
   ============================================ */

/**
 * Cartão Amigão - Checkout CSS
 * BEM Methodology + Modern Animations
 */

:root {
    --cac-primary: #22c55e;
    --cac-primary-dark: #16a34a;
    --cac-primary-light: #dcfce7;
    --cac-primary-lighter: #f0fdf4;
    --cac-secondary: #64748b;
    --cac-danger: #ef4444;
    --cac-warning: #f59e0b;
    --cac-success: #22c55e;
    --cac-text: #1f2937;
    --cac-text-light: #6b7280;
    --cac-border: #e5e7eb;
    --cac-bg: #f9fafb;
    --cac-white: #ffffff;
    --cac-radius: 8px;
    --cac-radius-lg: 16px;
    --cac-radius-xl: 24px;
    --cac-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    --cac-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --cac-shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.12);
    --cac-shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.15);
    --cac-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --cac-transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
    --cac-transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Alpine.js cloak - hide elements until Alpine initializes */
[x-cloak] {
    display: none !important;
}

/* Reset WordPress theme list styles inside checkout */
.cac-checkout,
.cac-checkout * {
    list-style: none !important;
}

.cac-checkout label,
.cac-checkout span,
.cac-checkout div {
    list-style-type: none !important;
}

.cac-checkout label::marker,
.cac-checkout span::marker,
.cac-checkout div::marker,
.cac-checkout *::marker {
    display: none !important;
    content: none !important;
}

/* ============================================
   KEYFRAME ANIMATIONS
   ============================================ */

@keyframes cac-fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

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

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

@keyframes cac-slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes cac-slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes cac-scaleIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes cac-shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
    20%, 40%, 60%, 80% { transform: translateX(4px); }
}

@keyframes cac-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

@keyframes cac-checkmark {
    0% {
        stroke-dashoffset: 24;
    }
    100% {
        stroke-dashoffset: 0;
    }
}

@keyframes cac-progressFill {
    from {
        width: 0;
    }
}

@keyframes cac-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

@keyframes cac-glow {
    0%, 100% { box-shadow: 0 0 5px rgba(34, 197, 94, 0.3); }
    50% { box-shadow: 0 0 20px rgba(34, 197, 94, 0.5); }
}

/* ============================================
   BASE STYLES
   ============================================ */

.cac-checkout {
    max-width: 800px;
    margin: 0 auto;
    padding: 30px 20px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
    color: var(--cac-text);
    line-height: 1.6;
    position: relative;
}

.cac-checkout * {
    box-sizing: border-box;
}

/* ============================================
   PROGRESS BAR - Modern Design
   ============================================ */

.cac-progress {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin-bottom: 50px;
    padding: 0 20px;
    animation: cac-fadeInDown 0.6s ease-out;
}

.cac-progress__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 1;
}

.cac-progress__number {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--cac-white);
    border: 3px solid var(--cac-border);
    color: var(--cac-text-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 16px;
    transition: var(--cac-transition);
    position: relative;
    box-shadow: var(--cac-shadow);
}

/* Step number inner content */
.cac-progress__number span {
    transition: var(--cac-transition);
}

/* Checkmark icon for completed steps */
.cac-progress__number .cac-check-icon {
    position: absolute;
    opacity: 0;
    transform: scale(0);
    transition: var(--cac-transition);
}

.cac-progress__step--completed .cac-progress__number span {
    opacity: 0;
    transform: scale(0);
}

.cac-progress__step--completed .cac-progress__number .cac-check-icon {
    opacity: 1;
    transform: scale(1);
}

/* Active step styling */
.cac-progress__step--active .cac-progress__number {
    background: var(--cac-primary);
    border-color: var(--cac-primary);
    color: var(--cac-white);
    transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.2), var(--cac-shadow-md);
    animation: cac-pulse 2s infinite;
}

/* Completed step styling */
.cac-progress__step--completed .cac-progress__number {
    background: var(--cac-primary);
    border-color: var(--cac-primary);
    color: var(--cac-white);
}

.cac-progress__label {
    font-size: 13px;
    color: var(--cac-text-light);
    text-align: center;
    font-weight: 500;
    transition: var(--cac-transition);
    max-width: 80px;
}

.cac-progress__step--active .cac-progress__label {
    color: var(--cac-primary);
    font-weight: 700;
}

.cac-progress__step--completed .cac-progress__label {
    color: var(--cac-primary-dark);
}

/* Progress line between steps */
.cac-progress__line {
    flex: 1;
    height: 3px;
    background: var(--cac-border);
    margin: 0 8px;
    margin-top: 22px;
    max-width: 100px;
    border-radius: 3px;
    position: relative;
    overflow: hidden;
}

/* Animated fill for completed lines */
.cac-progress__line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--cac-primary), var(--cac-primary-dark));
    border-radius: 3px;
    transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.cac-progress__line--active::after {
    width: 100%;
}

/* ============================================
   STEP CONTAINER - Animated Cards
   ============================================ */

.cac-step {
    background: var(--cac-white);
    border-radius: var(--cac-radius-xl);
    padding: 40px;
    box-shadow: var(--cac-shadow-lg);
    border: 1px solid rgba(0, 0, 0, 0.04);
    position: relative;
    overflow: hidden;
}

/* Step entrance animation */
.cac-step--entering {
    animation: cac-fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.cac-step--entering-back {
    animation: cac-slideInLeft 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Step exit animation */
.cac-step--exiting {
    animation: cac-fadeOut 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

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

/* Decorative gradient overlay */
.cac-step::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--cac-primary), var(--cac-primary-dark));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.cac-step:hover::before {
    opacity: 1;
}

.cac-step__title {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 6px;
    color: var(--cac-text);
    letter-spacing: -0.3px;
    animation: cac-fadeInUp 0.4s ease-out 0.1s both;
}

.cac-step__subtitle {
    font-size: 14px;
    color: var(--cac-text-light);
    margin: 0 0 24px;
    animation: cac-fadeInUp 0.4s ease-out 0.2s both;
}

/* Step icon/number badge */
.cac-step__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--cac-primary-light);
    color: var(--cac-primary-dark);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 16px;
    animation: cac-fadeInUp 0.4s ease-out both;
}

/* ============================================
   FORM ELEMENTS - Enhanced Inputs
   ============================================ */

.cac-form__row {
    display: flex;
    gap: 16px;
    margin-bottom: 16px;
}

/* Stagger animation for form rows */
.cac-step--entering .cac-form__row {
    animation: cac-fadeInUp 0.4s ease-out both;
}

.cac-step--entering .cac-form__row:nth-child(1) { animation-delay: 0.15s; }
.cac-step--entering .cac-form__row:nth-child(2) { animation-delay: 0.2s; }
.cac-step--entering .cac-form__row:nth-child(3) { animation-delay: 0.25s; }
.cac-step--entering .cac-form__row:nth-child(4) { animation-delay: 0.3s; }
.cac-step--entering .cac-form__row:nth-child(5) { animation-delay: 0.35s; }
.cac-step--entering .cac-form__row:nth-child(6) { animation-delay: 0.4s; }
.cac-step--entering .cac-form__row:nth-child(7) { animation-delay: 0.45s; }
.cac-step--entering .cac-form__row:nth-child(8) { animation-delay: 0.5s; }

.cac-form__group {
    flex: 1;
    position: relative;
}

.cac-form__group--full {
    flex: 1 0 100%;
}

.cac-form__group--large {
    flex: 2;
}

.cac-form__group--small {
    flex: 0 0 120px;
}

.cac-form__group label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--cac-text);
    transition: var(--cac-transition-fast);
}

.cac-form__group input,
.cac-form__group select,
.cac-form__group textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--cac-border);
    border-radius: 10px;
    font-size: 15px;
    transition: var(--cac-transition);
    background: var(--cac-white);
    color: var(--cac-text);
}

/* Placeholder styling */
.cac-form__group input::placeholder,
.cac-form__group textarea::placeholder {
    color: #9ca3af;
}

/* Focus state with animation */
.cac-form__group input:focus,
.cac-form__group select:focus,
.cac-form__group textarea:focus {
    outline: none;
    border-color: var(--cac-primary);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
    background: var(--cac-white);
}

/* Focus label color change */
.cac-form__group:focus-within label {
    color: var(--cac-primary);
}

/* Filled state */
.cac-form__group input:not(:placeholder-shown),
.cac-form__group select:valid {
    border-color: #d1d5db;
}

/* Error state with shake animation */
.cac-form__group input.error,
.cac-form__group select.error,
.cac-form__group input.cac-input--error,
.cac-form__group select.cac-input--error {
    border-color: var(--cac-danger);
    background: #fef2f2;
    animation: cac-shake 0.5s ease;
}

.cac-form__group input.error:focus,
.cac-form__group select.error:focus,
.cac-form__group input.cac-input--error:focus,
.cac-form__group select.cac-input--error:focus {
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.15);
}

/* Success state */
.cac-form__group input.cac-input--success,
.cac-form__group select.cac-input--success {
    border-color: var(--cac-success);
    background: var(--cac-primary-lighter);
}

.cac-form__error {
    display: block;
    font-size: 12px;
    color: var(--cac-danger);
    margin-top: 6px;
    min-height: 16px;
    font-weight: 500;
    animation: cac-fadeInUp 0.3s ease-out;
}

/* Loading state for fields */
.cac-form__group--loading::after {
    content: '';
    position: absolute;
    right: 16px;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-top: 4px;
    border: 2px solid var(--cac-border);
    border-top-color: var(--cac-primary);
    border-radius: 50%;
    animation: cac-spin 0.8s linear infinite;
}

/* ============================================
   CHECKBOX - Modern Style
   ============================================ */

.cac-form__checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-weight: 400;
    padding: 10px 12px;
    border-radius: 8px;
    transition: var(--cac-transition);
    margin-bottom: 8px;
}

.cac-form__checkbox:hover {
    background: var(--cac-bg);
}

.cac-form__checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--cac-primary);
    cursor: pointer;
    flex-shrink: 0;
    border-radius: 4px;
}

.cac-form__checkbox span {
    font-size: 14px;
    line-height: 1.4;
}

.cac-form__checkbox a {
    color: var(--cac-primary);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed var(--cac-primary);
    transition: var(--cac-transition-fast);
}

.cac-form__checkbox a:hover {
    border-bottom-style: solid;
}

/* ============================================
   RADIO CARDS - Interactive Selection
   ============================================ */

.cac-radio-group {
    display: flex;
    gap: 16px;
}

.cac-radio-group--3 {
    flex-wrap: wrap;
}

.cac-radio-card {
    flex: 1;
    cursor: pointer;
}

.cac-radio-card input {
    display: none;
}

.cac-radio-card__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 24px 20px;
    border: 2px solid var(--cac-border);
    border-radius: 16px;
    transition: var(--cac-transition);
    text-align: center;
    background: var(--cac-white);
    position: relative;
    overflow: hidden;
}

/* Hover effect */
.cac-radio-card__content:hover {
    border-color: #d1d5db;
    transform: translateY(-2px);
    box-shadow: var(--cac-shadow-md);
}

/* Selected state with animation */
.cac-radio-card input:checked + .cac-radio-card__content {
    border-color: var(--cac-primary);
    background: var(--cac-primary-light);
    transform: translateY(-2px);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15), var(--cac-shadow-md);
}

/* Checkmark indicator for selected */
.cac-radio-card input:checked + .cac-radio-card__content::after {
    content: '✓';
    position: absolute;
    top: 10px;
    right: 10px;
    width: 24px;
    height: 24px;
    background: var(--cac-primary);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: bold;
    animation: cac-scaleIn 0.3s ease-out;
}

.cac-radio-card__icon {
    font-size: 36px;
    transition: var(--cac-transition);
}

.cac-radio-card input:checked + .cac-radio-card__content .cac-radio-card__icon {
    transform: scale(1.1);
}

.cac-radio-card__label {
    font-weight: 700;
    font-size: 15px;
    color: var(--cac-text);
}

.cac-radio-card__desc {
    font-size: 13px;
    color: var(--cac-text-light);
}

.cac-radio-card--small .cac-radio-card__content {
    padding: 18px 16px;
}

/* ============================================
   BUTTONS - Modern & Interactive
   ============================================ */

.cac-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 32px;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: var(--cac-transition);
    text-decoration: none;
    position: relative;
    overflow: hidden;
}

/* Ripple effect base */
.cac-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.6s ease, height 0.6s ease;
}

.cac-btn:active::before {
    width: 300px;
    height: 300px;
}

.cac-btn--primary {
    background: linear-gradient(135deg, var(--cac-primary) 0%, var(--cac-primary-dark) 100%);
    color: var(--cac-white);
    box-shadow: 0 4px 14px rgba(34, 197, 94, 0.35);
}

.cac-btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(34, 197, 94, 0.45);
}

.cac-btn--primary:active {
    transform: translateY(0);
}

.cac-btn--primary:disabled {
    background: linear-gradient(135deg, #d1d5db 0%, #9ca3af 100%);
    box-shadow: none;
    cursor: not-allowed;
    transform: none;
}

.cac-btn--secondary {
    background: var(--cac-white);
    color: var(--cac-text);
    border: 2px solid var(--cac-border);
    box-shadow: var(--cac-shadow);
}

.cac-btn--secondary:hover {
    background: var(--cac-bg);
    border-color: #d1d5db;
    transform: translateY(-2px);
}

.cac-btn--secondary:active {
    transform: translateY(0);
}

.cac-btn--lg {
    padding: 18px 40px;
    font-size: 18px;
    border-radius: 14px;
}

/* Loading state */
.cac-btn--loading {
    pointer-events: none;
    opacity: 0.8;
}

.cac-btn--loading::after {
    content: '';
    width: 20px;
    height: 20px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: cac-spin 0.8s linear infinite;
    margin-left: 8px;
}

/* Button icon */
.cac-btn__icon {
    display: flex;
    transition: var(--cac-transition-fast);
}

.cac-btn:hover .cac-btn__icon--arrow {
    transform: translateX(4px);
}

.cac-form__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 40px;
    padding-top: 30px;
    border-top: 2px solid var(--cac-bg);
    animation: cac-fadeInUp 0.4s ease-out 0.4s both;
}

/* ============================================
   PLANOS - Premium Card Design
   ============================================ */

.cac-plano-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.cac-compare-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #6B3FA0;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    transition: color 0.2s ease;
    white-space: nowrap;
    margin-left: auto;
}

.cac-compare-link:hover {
    color: #5B2F90;
}

.cac-compare-link svg {
    flex-shrink: 0;
}

.cac-ciclo-toggle {
    display: inline-flex;
    gap: 0;
    background: var(--cac-bg);
    padding: 4px;
    border-radius: 10px;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06);
    max-width: 220px;
}

.cac-ciclo-toggle__option {
    flex: 1;
    text-align: center;
    cursor: pointer;
}

.cac-ciclo-toggle__option input {
    display: none;
}

.cac-ciclo-toggle__option span {
    display: block;
    padding: 10px 24px;
    border-radius: 8px;
    transition: var(--cac-transition);
    font-size: 13px;
    font-weight: 500;
}

.cac-ciclo-toggle__option input:checked + span {
    background: var(--cac-white);
    box-shadow: var(--cac-shadow-md);
    font-weight: 700;
    color: var(--cac-primary-dark);
}

.cac-ciclo-toggle__option small {
    color: var(--cac-primary);
    font-weight: 600;
}

.cac-planos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-bottom: 35px;
}

.cac-plano {
    border: 2px solid var(--cac-border);
    border-radius: 20px;
    padding: 28px;
    cursor: pointer;
    transition: var(--cac-transition);
    position: relative;
    background: var(--cac-white);
}

/* Plan card entrance animation */
.cac-step--entering .cac-plano {
    animation: cac-scaleIn 0.4s ease-out both;
}

.cac-step--entering .cac-plano:nth-child(1) { animation-delay: 0.2s; }
.cac-step--entering .cac-plano:nth-child(2) { animation-delay: 0.3s; }
.cac-step--entering .cac-plano:nth-child(3) { animation-delay: 0.4s; }
.cac-step--entering .cac-plano:nth-child(4) { animation-delay: 0.5s; }

.cac-plano:hover {
    border-color: var(--cac-primary);
    transform: translateY(-6px);
    box-shadow: var(--cac-shadow-xl);
}

.cac-plano--selected {
    border-color: var(--cac-primary);
    background: linear-gradient(135deg, var(--cac-primary-lighter) 0%, var(--cac-primary-light) 100%);
    transform: translateY(-6px);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.15), var(--cac-shadow-lg);
}

.cac-plano--selected::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--cac-primary), var(--cac-primary-dark));
    border-radius: 20px 20px 0 0;
}

.cac-plano--destaque {
    border-color: var(--cac-warning);
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15);
}

.cac-plano__badge {
    position: absolute;
    top: -12px;
    right: 20px;
    background: linear-gradient(135deg, var(--cac-warning) 0%, #d97706 100%);
    color: var(--cac-white);
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.35);
    animation: cac-float 3s ease-in-out infinite;
}

.cac-plano__nome {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 12px;
    color: var(--cac-text);
}

.cac-plano__valor {
    font-size: 36px;
    font-weight: 800;
    color: var(--cac-primary);
    line-height: 1;
    margin-bottom: 4px;
}

.cac-plano__valor small {
    font-size: 15px;
    font-weight: 500;
    color: var(--cac-text-light);
}

.cac-plano__beneficios {
    list-style: none;
    padding: 0;
    margin: 24px 0 0;
}

.cac-plano__beneficios li {
    padding: 10px 0;
    padding-left: 30px;
    position: relative;
    font-size: 14px;
    color: var(--cac-text);
    border-bottom: 1px solid var(--cac-bg);
}

.cac-plano__beneficios li:last-child {
    border-bottom: none;
}

.cac-plano__beneficios li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 10px;
    width: 20px;
    height: 20px;
    background: var(--cac-primary-light);
    color: var(--cac-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: bold;
}

/* ============================================
   CUPOM - Coupon Input
   ============================================ */

.cac-cupom {
    margin-bottom: 35px;
    animation: cac-fadeInUp 0.4s ease-out 0.3s both;
}

.cac-cupom__input {
    display: flex;
    gap: 12px;
}

.cac-cupom__input input {
    flex: 1;
    padding: 14px 18px;
    border: 2px solid var(--cac-border);
    border-radius: 12px;
    font-size: 16px;
    transition: var(--cac-transition);
    text-transform: uppercase;
}

.cac-cupom__input input:focus {
    border-color: var(--cac-primary);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.15);
    outline: none;
}

.cac-cupom__status {
    margin-top: 10px;
    font-size: 14px;
    font-weight: 500;
    animation: cac-fadeInUp 0.3s ease-out;
}

.cac-cupom__status--success,
.cac-cupom-success {
    color: var(--cac-success);
}

.cac-cupom__status--error,
.cac-cupom-error {
    color: var(--cac-danger);
}

/* ============================================
   RESUMO - Order Summary
   ============================================ */

.cac-resumo {
    background: linear-gradient(135deg, var(--cac-bg) 0%, #f3f4f6 100%);
    padding: 24px;
    border-radius: 16px;
    border: 1px solid var(--cac-border);
}

.cac-resumo h3 {
    margin: 0 0 20px;
    font-size: 18px;
    font-weight: 700;
    color: var(--cac-text);
}

.cac-resumo__item {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 15px;
}

.cac-resumo__item:last-child {
    border-bottom: none;
}

.cac-resumo__item--total {
    font-size: 20px;
    font-weight: 800;
    padding-top: 16px;
    margin-top: 12px;
    border-top: 2px solid var(--cac-border);
    border-bottom: none;
    color: var(--cac-text);
}

.cac-resumo__desconto {
    color: var(--cac-success);
    font-weight: 600;
}

/* ============================================
   MÉTODOS DE PAGAMENTO - Payment Methods
   ============================================ */

.cac-metodos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 35px;
}

.cac-metodo {
    cursor: pointer;
}

.cac-metodo input {
    display: none;
}

.cac-metodo__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 24px 18px;
    border: 2px solid var(--cac-border);
    border-radius: 16px;
    transition: var(--cac-transition);
    text-align: center;
    background: var(--cac-white);
    position: relative;
}

.cac-metodo__content:hover {
    border-color: #d1d5db;
    transform: translateY(-3px);
    box-shadow: var(--cac-shadow-md);
}

.cac-metodo input:checked + .cac-metodo__content {
    border-color: var(--cac-primary);
    background: var(--cac-primary-light);
    transform: translateY(-3px);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15), var(--cac-shadow-md);
}

.cac-metodo input:checked + .cac-metodo__content::after {
    content: '✓';
    position: absolute;
    top: 8px;
    right: 8px;
    width: 22px;
    height: 22px;
    background: var(--cac-primary);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: bold;
    animation: cac-scaleIn 0.3s ease-out;
}

.cac-metodo__icon {
    font-size: 32px;
    transition: var(--cac-transition);
}

.cac-metodo input:checked + .cac-metodo__content .cac-metodo__icon {
    transform: scale(1.1);
}

.cac-metodo__label {
    font-weight: 700;
    font-size: 15px;
    color: var(--cac-text);
}

.cac-metodo__desc {
    font-size: 12px;
    color: var(--cac-text-light);
}

/* ============================================
   PAYMENT CONTENT - Animated Sections
   ============================================ */

.cac-payment-content {
    display: none;
}

.cac-payment-content--active {
    display: block;
    animation: cac-fadeInUp 0.4s ease-out;
}

/* Payment Tab Active */
.cac-payment-tab {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    width: 100%;
}

.cac-payment-tab--active .cac-metodo__content {
    border-color: var(--cac-primary);
    background: var(--cac-primary-light);
}

/* Payment Info */
.cac-payment-info {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 24px;
    border-radius: 16px;
    margin-bottom: 24px;
    border: 1px solid #bae6fd;
}

.cac-payment-info p {
    margin: 0 0 10px;
    color: #0369a1;
    font-size: 14px;
}

.cac-payment-info p:last-child {
    margin-bottom: 0;
}

/* Cartão */
.cac-cartao {
    background: linear-gradient(135deg, var(--cac-bg) 0%, #f3f4f6 100%);
    padding: 28px;
    border-radius: 16px;
    margin-bottom: 24px;
    border: 1px solid var(--cac-border);
}

.cac-validade {
    display: flex;
    align-items: center;
    gap: 12px;
}

.cac-validade select {
    flex: 1;
}

/* Resumo da compra */
.cac-resumo-compra {
    background: linear-gradient(135deg, var(--cac-bg) 0%, #f3f4f6 100%);
    padding: 24px;
    border-radius: 16px;
    margin-bottom: 35px;
    border: 1px solid var(--cac-border);
}

.cac-resumo-compra__item {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    font-size: 15px;
}

.cac-resumo-compra__label {
    color: var(--cac-text-light);
}

.cac-resumo-compra__item--total {
    border-top: 2px solid var(--cac-border);
    margin-top: 12px;
    padding-top: 16px;
    font-weight: 800;
    font-size: 20px;
    color: var(--cac-text);
}

/* ============================================
   PIX INTERFACE - QR Code Display
   ============================================ */

.cac-pix {
    text-align: center;
    padding: 40px;
    animation: cac-fadeIn 0.5s ease-out;
}

.cac-pix__header h3 {
    margin: 0 0 10px;
    font-size: 28px;
    font-weight: 800;
    color: var(--cac-text);
}

.cac-pix__header p {
    color: var(--cac-text-light);
    margin: 0 0 35px;
    font-size: 16px;
}

.cac-pix__qrcode {
    margin-bottom: 24px;
    animation: cac-scaleIn 0.5s ease-out 0.2s both;
}

.cac-pix__qrcode img {
    max-width: 280px;
    border: 3px solid var(--cac-border);
    border-radius: 20px;
    padding: 16px;
    background: white;
    box-shadow: var(--cac-shadow-lg);
}

.cac-pix__timer {
    font-size: 18px;
    margin-bottom: 35px;
    background: #fef3c7;
    padding: 14px 24px;
    border-radius: 12px;
    display: inline-block;
    border: 1px solid #fcd34d;
}

.cac-pix__timer strong {
    color: var(--cac-danger);
    font-weight: 800;
    font-size: 20px;
}

.cac-pix__copiacola {
    text-align: left;
    margin-bottom: 35px;
    background: var(--cac-bg);
    padding: 20px;
    border-radius: 16px;
}

.cac-pix__copiacola label {
    display: block;
    font-weight: 600;
    margin-bottom: 10px;
    color: var(--cac-text);
}

.cac-pix__copy-container {
    display: flex;
    gap: 12px;
}

.cac-pix__copy-container input {
    flex: 1;
    padding: 14px 16px;
    border: 2px solid var(--cac-border);
    border-radius: 12px;
    font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
    font-size: 12px;
    background: white;
}

.cac-pix__waiting {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    padding: 30px;
    background: linear-gradient(135deg, var(--cac-primary-lighter) 0%, var(--cac-primary-light) 100%);
    border-radius: 16px;
    border: 1px solid var(--cac-primary);
}

.cac-pix__waiting .cac-checkout__spinner {
    border-top-color: var(--cac-primary);
    animation: cac-glow 2s ease-in-out infinite, cac-spin 1s linear infinite;
}

/* ============================================
   BOLETO INTERFACE
   ============================================ */

#cac-checkout .cac-boleto {
    text-align: center;
    padding: 40px 32px;
    animation: cac-fadeIn 0.5s ease-out;
    max-width: 560px;
    margin: 0 auto;
}

#cac-checkout .cac-boleto__header {
    margin-bottom: 32px;
}

#cac-checkout .cac-boleto__header h3 {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 700;
    color: #1e293b;
}

#cac-checkout .cac-boleto__header p {
    color: var(--cac-text-light);
    margin: 0 0 0 0;
    font-size: 15px;
}

#cac-checkout .cac-boleto__linha {
    text-align: left;
    margin: 0 0 28px 0;
    background: #f8fafc;
    padding: 24px;
    border-radius: 12px;
    border: 1px solid var(--cac-border);
}

#cac-checkout .cac-boleto__linha label {
    display: block;
    font-weight: 600;
    margin: 0 0 12px 0;
    padding: 0;
    color: var(--cac-text);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

#cac-checkout .cac-boleto__copy-container {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

#cac-checkout .cac-boleto__copy-container input {
    flex: 1;
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid var(--cac-border);
    border-radius: 8px;
    font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
    font-size: 12px;
    background: white;
    color: var(--cac-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#cac-checkout .cac-boleto__copy-container .cac-btn {
    flex-shrink: 0;
    white-space: nowrap;
}

#cac-checkout .cac-boleto__actions {
    margin: 0 0 28px 0;
    padding: 0;
    display: flex;
    justify-content: center;
}

#cac-checkout .cac-boleto__info {
    background: #fffbeb;
    padding: 24px 28px;
    border-radius: 12px;
    text-align: left;
    margin: 0 0 32px 0;
    border: 1px solid #fde68a;
}

#cac-checkout .cac-boleto__info p {
    margin: 0 0 10px 0;
    padding: 0;
    color: #92400e;
    font-size: 14px;
    line-height: 1.6;
}

#cac-checkout .cac-boleto__info p:last-child {
    margin-bottom: 0;
}

#cac-checkout .cac-boleto__multi-item {
    text-align: left;
    background: #f8fafc;
    border: 1px solid var(--cac-border);
    border-radius: 12px;
    padding: 24px;
    margin: 0 0 20px 0;
}

#cac-checkout .cac-boleto__multi-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 0 16px 0;
    padding: 0 0 16px 0;
    border-bottom: 1px solid var(--cac-border);
}

#cac-checkout .cac-boleto__multi-header strong {
    font-size: 16px;
}

#cac-checkout .cac-boleto__multi-header span {
    color: var(--cac-text-light);
    font-size: 14px;
}

/* ============================================
   SUCCESS SCREEN - Celebration
   ============================================ */

.cac-success {
    text-align: center;
    padding: 50px 40px;
    max-width: 600px;
    margin: 0 auto;
    animation: cac-fadeIn 0.5s ease-out;
}

.cac-success__icon {
    color: var(--cac-success);
    margin-bottom: 24px;
    display: flex;
    justify-content: center;
    animation: cac-scaleIn 0.5s ease-out 0.1s both;
}

.cac-success__icon svg {
    width: 80px;
    height: 80px;
    filter: drop-shadow(0 4px 12px rgba(34, 197, 94, 0.35));
}

.cac-success__title {
    font-size: 32px;
    font-weight: 800;
    margin: 0 0 12px;
    color: var(--cac-text);
    animation: cac-fadeInUp 0.5s ease-out 0.2s both;
}

.cac-success__subtitle {
    font-size: 16px;
    color: var(--cac-text-light);
    margin: 0 0 32px;
    line-height: 1.5;
    animation: cac-fadeInUp 0.5s ease-out 0.3s both;
}

.cac-success__details {
    background: #f9fafb;
    padding: 24px 28px;
    border-radius: 16px;
    margin-bottom: 24px;
    text-align: left;
    border: 1px solid #e5e7eb;
    animation: cac-fadeInUp 0.5s ease-out 0.4s both;
}

.cac-success__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #e5e7eb;
    font-size: 15px;
}

.cac-success__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.cac-success__item:first-child {
    padding-top: 0;
}

.cac-success__label {
    color: #6b7280;
    font-size: 14px;
}

.cac-success__value {
    font-weight: 600;
    color: #1f2937;
    font-size: 14px;
}

.cac-success__message {
    text-align: left;
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    padding: 24px 28px;
    border-radius: 16px;
    margin-bottom: 32px;
    border: 1px solid #a7f3d0;
    animation: cac-fadeInUp 0.5s ease-out 0.5s both;
}

.cac-success__message h3 {
    margin: 0 0 16px;
    color: #065f46;
    font-weight: 700;
    font-size: 16px;
}

.cac-success__message ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cac-success__message li {
    margin-bottom: 12px;
    color: #047857;
    font-size: 14px;
    line-height: 1.5;
    position: relative;
    padding-left: 28px;
}

.cac-success__message li:last-child {
    margin-bottom: 0;
}

.cac-success__message li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #10b981;
    font-weight: bold;
    font-size: 16px;
}

.cac-success__actions {
    display: flex;
    justify-content: center;
    gap: 16px;
}

.cac-success__actions .cac-btn {
    min-width: 200px;
}

/* ============================================
   LOADING OVERLAY - Modern Spinner
   ============================================ */

.cac-checkout__loading {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(4px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    z-index: 100;
    border-radius: var(--cac-radius-xl);
    animation: cac-fadeIn 0.3s ease-out;
}

.cac-checkout__spinner {
    width: 50px;
    height: 50px;
    border: 4px solid var(--cac-border);
    border-top-color: var(--cac-primary);
    border-radius: 50%;
    animation: cac-spin 0.8s linear infinite;
}

@keyframes cac-spin {
    to { transform: rotate(360deg); }
}

.cac-checkout__loading-text {
    margin: 0;
    color: var(--cac-text-light);
    font-size: 16px;
    font-weight: 500;
}

/* Global loading state */
.cac-checkout--loading {
    pointer-events: none;
}

.cac-checkout--loading .cac-step {
    opacity: 0.6;
}

/* ============================================
   RESPONSIVE DESIGN
   ============================================ */

@media (max-width: 768px) {
    .cac-checkout {
        padding: 15px;
    }

    .cac-progress {
        padding: 0 10px;
    }

    .cac-progress__number {
        width: 40px;
        height: 40px;
        font-size: 14px;
    }

    .cac-progress__label {
        display: none;
    }

    .cac-progress__line {
        margin-top: 18px;
        max-width: 60px;
    }

    .cac-step {
        padding: 24px 20px;
        border-radius: 16px;
    }

    .cac-step__title {
        font-size: 22px;
    }

    .cac-form__row {
        flex-direction: column;
        gap: 16px;
    }

    .cac-form__group--small,
    .cac-form__group--large {
        flex: 1;
    }

    .cac-radio-group {
        flex-direction: column;
        gap: 12px;
    }

    .cac-metodos {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .cac-planos {
        grid-template-columns: 1fr;
    }

    .cac-form__actions {
        flex-direction: column-reverse;
        gap: 12px;
    }

    .cac-form__actions .cac-btn {
        width: 100%;
    }

    .cac-pix,
    .cac-boleto,
    .cac-success {
        padding: 30px 20px;
    }

    .cac-success__title {
        font-size: 28px;
    }

    .cac-pix__qrcode img {
        max-width: 220px;
    }
}

/* Small screens */
@media (max-width: 480px) {
    .cac-progress__number {
        width: 36px;
        height: 36px;
        font-size: 13px;
    }

    .cac-progress__line {
        max-width: 40px;
        margin: 0 4px;
        margin-top: 16px;
    }

    .cac-step {
        padding: 20px 16px;
    }

    .cac-step__title {
        font-size: 20px;
    }

    .cac-btn {
        padding: 14px 24px;
        font-size: 15px;
    }

    .cac-plano {
        padding: 20px;
    }

    .cac-plano__valor {
        font-size: 28px;
    }
}

/* ============================================
   ALERT STYLES - Global Messages
   ============================================ */

.cac-alert {
    padding: 16px 20px;
    border-radius: 12px;
    margin-bottom: 20px;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    animation: cac-fadeInDown 0.4s ease-out;
}

.cac-alert--error {
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
    border: 1px solid #fecaca;
    color: #991b1b;
}

.cac-alert--success {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border: 1px solid #86efac;
    color: #166534;
}

.cac-alert--warning {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 1px solid #fcd34d;
    color: #92400e;
}

.cac-alert__close {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    opacity: 0.6;
    transition: var(--cac-transition-fast);
    padding: 0;
    line-height: 1;
}

.cac-alert__close:hover {
    opacity: 1;
}

/* ============================================
   PLANO CARD STYLES (for renderPlanos)
   ============================================ */

.cac-plano-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-bottom: 35px;
}

.cac-plano-card {
    border: 2px solid var(--cac-border);
    border-radius: 20px;
    padding: 28px;
    cursor: pointer;
    transition: var(--cac-transition);
    position: relative;
    background: var(--cac-white);
}

.cac-plano-card:hover {
    border-color: var(--cac-primary);
    transform: translateY(-6px);
    box-shadow: var(--cac-shadow-xl);
}

.cac-plano-card--selected {
    border-color: var(--cac-primary);
    background: linear-gradient(135deg, var(--cac-primary-lighter) 0%, var(--cac-primary-light) 100%);
    transform: translateY(-6px);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.15), var(--cac-shadow-lg);
}

.cac-plano-card--featured {
    border-color: var(--cac-warning);
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15);
}

.cac-plano-card__badge {
    position: absolute;
    top: -12px;
    right: 20px;
    background: linear-gradient(135deg, var(--cac-warning) 0%, #d97706 100%);
    color: var(--cac-white);
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.35);
}

.cac-plano-card__name {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 12px;
    color: var(--cac-text);
}

.cac-plano-card__price {
    margin-bottom: 20px;
}

.cac-plano-card__currency {
    font-size: 18px;
    font-weight: 600;
    color: var(--cac-primary);
    vertical-align: top;
}

.cac-plano-card__value {
    font-size: 40px;
    font-weight: 800;
    color: var(--cac-primary);
    line-height: 1;
}

.cac-plano-card__period {
    font-size: 15px;
    color: var(--cac-text-light);
}

.cac-plano-card__benefits {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.cac-plano-card__benefits li {
    padding: 10px 0;
    padding-left: 30px;
    position: relative;
    font-size: 14px;
    color: var(--cac-text);
    border-bottom: 1px solid var(--cac-bg);
}

.cac-plano-card__benefits li:last-child {
    border-bottom: none;
}

.cac-plano-card__benefits li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 10px;
    width: 20px;
    height: 20px;
    background: var(--cac-primary-light);
    color: var(--cac-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: bold;
}

.cac-plano-card__select {
    display: block;
    text-align: center;
}

.cac-plano-card__select input {
    display: none;
}

.cac-plano-card__select span {
    display: inline-block;
    padding: 14px 32px;
    background: var(--cac-bg);
    color: var(--cac-text);
    border-radius: 12px;
    font-weight: 700;
    transition: var(--cac-transition);
}

.cac-plano-card__select input:checked + span,
.cac-plano-card--selected .cac-plano-card__select span {
    background: var(--cac-primary);
    color: white;
}

/* Checkout Summary */
.cac-checkout-summary {
    background: linear-gradient(135deg, var(--cac-bg) 0%, #f3f4f6 100%);
    padding: 24px;
    border-radius: 16px;
    border: 1px solid var(--cac-border);
}

.cac-summary__row {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.cac-summary__row:last-child {
    border-bottom: none;
    padding-top: 16px;
    margin-top: 8px;
    border-top: 2px solid var(--cac-border);
    font-weight: 800;
    font-size: 18px;
}

/* ============================================
   STEP SHAKE ANIMATION (validation error)
   ============================================ */

.cac-step--shake {
    animation: cac-shake 0.5s ease;
}

/* ============================================
   TOAST NOTIFICATIONS
   ============================================ */

.cac-toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    padding: 16px 24px;
    border-radius: 12px;
    font-weight: 500;
    font-size: 14px;
    z-index: 9999;
    animation: cac-slideInRight 0.4s ease-out;
    box-shadow: var(--cac-shadow-xl);
    max-width: 400px;
}

.cac-toast--success {
    background: linear-gradient(135deg, var(--cac-primary) 0%, var(--cac-primary-dark) 100%);
    color: white;
}

.cac-toast--error {
    background: linear-gradient(135deg, var(--cac-danger) 0%, #dc2626 100%);
    color: white;
}

.cac-toast--info {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: white;
}

.cac-toast--exiting {
    animation: cac-fadeOut 0.3s ease-out forwards;
}

/* ============================================
   ACCESSIBILITY - Reduce Motion
   ============================================ */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ============================================
   NEW LAYOUT - Grid with Conditional Sidebar
   ============================================ */

.cac-checkout {
    max-width: 1200px;
}

.cac-checkout__header {
    margin-bottom: 40px;
}

.cac-checkout__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 700px;
    margin: 0 auto;
}

.cac-checkout__layout--with-sidebar {
    max-width: 100%;
    grid-template-columns: 1fr 360px;
}

.cac-checkout__main {
    min-width: 0;
}

.cac-checkout__sidebar {
    position: sticky;
    top: 20px;
    height: fit-content;
}

.cac-checkout__step {
    background: var(--cac-white);
    border-radius: var(--cac-radius-lg);
    padding: 28px 32px;
    box-shadow: var(--cac-shadow-md);
    border: 1px solid rgba(0, 0, 0, 0.04);
}

/* Step transitions */
.cac-step-enter {
    animation: cac-fadeInUp 0.4s ease-out forwards;
}

.cac-step-leave {
    animation: cac-fadeOut 0.2s ease-out forwards;
}

.cac-sidebar-enter {
    animation: cac-slideInRight 0.4s ease-out forwards;
}

.cac-sidebar-leave {
    animation: cac-fadeOut 0.2s ease-out forwards;
}

/* ============================================
   NEW PROGRESS BAR - With Icons
   ============================================ */

.cac-progress-bar {
    margin-bottom: 20px;
}

.cac-progress-bar__container {
    max-width: 800px;
    margin: 0 auto;
}

.cac-progress-bar__indicator {
    text-align: center;
    margin-bottom: 12px;
}

.cac-progress-bar__current {
    font-size: 14px;
    font-weight: 600;
    color: var(--cac-text-light);
    background: var(--cac-bg);
    padding: 8px 16px;
    border-radius: 20px;
    display: inline-block;
}

.cac-progress-bar__steps {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.cac-progress-bar__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    position: relative;
    z-index: 1;
}

.cac-progress-bar__icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--cac-white);
    border: 2px solid var(--cac-border);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--cac-transition);
    box-shadow: var(--cac-shadow);
}

.cac-progress-bar__icon svg {
    width: 18px;
    height: 18px;
    color: var(--cac-text-light);
    transition: var(--cac-transition);
}

.cac-progress-bar__label {
    font-size: 12px;
    font-weight: 500;
    color: var(--cac-text-light);
    text-align: center;
    max-width: 80px;
    transition: var(--cac-transition);
}

.cac-progress-bar__line {
    flex: 1;
    height: 2px;
    background: var(--cac-border);
    margin: 0 6px;
    margin-top: 20px;
    max-width: 60px;
    border-radius: 2px;
    transition: background 0.4s ease;
}

.cac-progress-bar__line--filled {
    background: var(--cac-primary);
}

/* Active step */
.cac-progress-bar__step--active .cac-progress-bar__icon {
    border-color: var(--cac-primary);
    background: var(--cac-primary);
    transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.2);
}

.cac-progress-bar__step--active .cac-progress-bar__icon svg {
    color: white;
}

.cac-progress-bar__step--active .cac-progress-bar__label {
    color: var(--cac-primary);
    font-weight: 700;
}

/* Completed step */
.cac-progress-bar__step--completed .cac-progress-bar__icon {
    border-color: var(--cac-primary);
    background: var(--cac-primary);
}

.cac-progress-bar__step--completed .cac-progress-bar__icon svg {
    color: white;
}

.cac-progress-bar__step--completed .cac-progress-bar__label {
    color: var(--cac-primary-dark);
}

/* ============================================
   SIDEBAR RESUMO - Order Summary
   ============================================ */

.cac-sidebar-resumo {
    background: var(--cac-white);
    border-radius: var(--cac-radius-xl);
    padding: 28px;
    box-shadow: var(--cac-shadow-lg);
    border: 1px solid rgba(0, 0, 0, 0.04);
}

.cac-sidebar-resumo__title {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 24px;
    color: var(--cac-text);
}

.cac-sidebar-resumo__pet {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.cac-sidebar-resumo__pet-avatar {
    width: 50px;
    height: 50px;
    background: var(--cac-primary-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    flex-shrink: 0;
}

.cac-sidebar-resumo__pet-info {
    flex: 1;
    min-width: 0;
}

.cac-sidebar-resumo__pet-info strong {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: var(--cac-text);
    margin-bottom: 2px;
}

.cac-sidebar-resumo__pet-details {
    font-size: 13px;
    color: var(--cac-text-light);
}

.cac-sidebar-resumo__edit {
    width: 32px;
    height: 32px;
    border: none;
    background: var(--cac-bg);
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--cac-transition);
    flex-shrink: 0;
}

.cac-sidebar-resumo__edit:hover {
    background: var(--cac-primary-light);
}

.cac-sidebar-resumo__edit svg {
    width: 16px;
    height: 16px;
    color: var(--cac-text-light);
}

.cac-sidebar-resumo__divider {
    height: 1px;
    background: var(--cac-border);
    margin: 20px 0;
}

.cac-sidebar-resumo__plano-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.cac-sidebar-resumo__plano-nome {
    font-weight: 600;
    color: var(--cac-text);
}

.cac-sidebar-resumo__plano-valor {
    font-weight: 700;
    color: var(--cac-text);
    text-align: right;
}

.cac-sidebar-resumo__plano-valor small {
    font-weight: 400;
    color: var(--cac-text-light);
}

.cac-sidebar-resumo__desconto {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
    font-size: 14px;
}

.cac-sidebar-resumo__desconto-valor {
    color: var(--cac-success);
    font-weight: 600;
}

.cac-sidebar-resumo__total {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cac-sidebar-resumo__total span:first-child {
    font-weight: 600;
    color: var(--cac-text);
}

.cac-sidebar-resumo__total-valor {
    font-size: 24px;
    font-weight: 800;
    color: var(--cac-primary);
}

.cac-sidebar-resumo__total-valor small {
    font-size: 14px;
    font-weight: 400;
    color: var(--cac-text-light);
}

.cac-sidebar-resumo__action {
    margin-top: 24px;
}

.cac-sidebar-resumo__security {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--cac-border);
    font-size: 13px;
    color: var(--cac-text-light);
}

.cac-sidebar-resumo__security svg {
    width: 18px;
    height: 18px;
}

/* ============================================
   REVIEW STEP - Data Summary
   ============================================ */

.cac-review {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.cac-review__section {
    background: var(--cac-bg);
    border-radius: 16px;
    padding: 24px;
    border: 1px solid var(--cac-border);
}

.cac-review__section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.cac-review__section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 700;
    margin: 0;
    color: var(--cac-text);
}

.cac-review__section-title svg {
    width: 22px;
    height: 22px;
    color: var(--cac-primary);
}

.cac-review__edit-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--cac-white);
    border: 1px solid var(--cac-border);
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--cac-primary);
    cursor: pointer;
    transition: var(--cac-transition);
}

.cac-review__edit-btn:hover {
    background: var(--cac-primary-light);
    border-color: var(--cac-primary);
}

.cac-review__edit-btn svg {
    width: 14px;
    height: 14px;
}

.cac-review__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 32px;
    align-items: start;
}

.cac-review__item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.cac-review__item--full {
    grid-column: 1 / -1;
}

.cac-review__label {
    font-size: 12px;
    font-weight: 600;
    color: var(--cac-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cac-review__value {
    font-size: 15px;
    font-weight: 500;
    color: var(--cac-text);
}

/* Pet card in review */
.cac-review__pet-card {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--cac-white);
    padding: 16px;
    border-radius: 12px;
}

.cac-review__pet-avatar {
    width: 60px;
    height: 60px;
    background: var(--cac-primary-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    flex-shrink: 0;
}

.cac-review__pet-info {
    flex: 1;
}

.cac-review__pet-name {
    font-size: 18px;
    font-weight: 700;
    color: var(--cac-text);
    display: block;
    margin-bottom: 4px;
}

.cac-review__pet-details {
    font-size: 14px;
    color: var(--cac-text-light);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.cac-review__pet-extra {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
    font-size: 13px;
    color: var(--cac-text-light);
}

.cac-review__badge {
    background: var(--cac-primary-light);
    color: var(--cac-primary-dark);
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}

/* Plano in review */
.cac-review__plano-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--cac-white);
    padding: 20px;
    border-radius: 12px;
}

.cac-review__plano-info strong {
    display: block;
    font-size: 18px;
    font-weight: 700;
    color: var(--cac-text);
    margin-bottom: 12px;
}

.cac-review__plano-beneficios {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cac-review__plano-beneficios li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--cac-text-light);
}

.cac-review__plano-beneficios svg {
    width: 16px;
    height: 16px;
    color: var(--cac-primary);
    flex-shrink: 0;
}

.cac-review__plano-valor {
    text-align: right;
}

.cac-review__plano-valor span {
    font-size: 28px;
    font-weight: 800;
    color: var(--cac-primary);
}

.cac-review__plano-valor small {
    font-size: 14px;
    font-weight: 400;
    color: var(--cac-text-light);
}

/* Cupom in review */
.cac-review__cupom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--cac-primary-lighter);
    padding: 12px 16px;
    border-radius: 10px;
    margin-top: 16px;
    border: 1px dashed var(--cac-primary);
}

.cac-review__cupom-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--cac-primary-dark);
}

.cac-review__cupom-badge svg {
    width: 18px;
    height: 18px;
    color: var(--cac-primary);
}

.cac-review__cupom-desconto {
    font-weight: 700;
    color: var(--cac-success);
}

/* Terms in review */
.cac-review__terms {
    padding: 20px;
    background: var(--cac-bg);
    border-radius: 12px;
    border: 1px solid var(--cac-border);
}

.cac-review__terms .cac-form__checkbox--error {
    border-color: var(--cac-danger);
    background: #fef2f2;
}

/* ============================================
   TOGGLE BUTTONS - Modern Selection
   ============================================ */

.cac-toggle-group {
    display: flex;
    gap: 12px;
}

.cac-toggle-group--3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.cac-toggle-group--4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.cac-toggle-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 14px 12px;
    background: var(--cac-white);
    border: 1.5px solid var(--cac-border);
    border-radius: 10px;
    cursor: pointer;
    transition: var(--cac-transition);
    flex: 1;
}

.cac-toggle-btn:hover {
    border-color: var(--cac-primary);
    transform: translateY(-2px);
    box-shadow: var(--cac-shadow-md);
}

.cac-toggle-btn--active {
    border-color: var(--cac-primary);
    background: var(--cac-primary-light);
    transform: translateY(-2px);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
}

.cac-toggle-btn__icon {
    font-size: 24px;
    line-height: 1;
}

.cac-toggle-btn__label {
    font-size: 13px;
    font-weight: 600;
    color: var(--cac-text);
}

.cac-toggle-btn__desc {
    font-size: 12px;
    color: var(--cac-text-light);
}

/* Compact toggle */
.cac-toggle-btn--compact {
    flex-direction: row;
    padding: 16px 24px;
    gap: 10px;
}

.cac-toggle-btn--compact svg {
    width: 22px;
    height: 22px;
}

/* Porte toggle */
.cac-toggle-btn--porte {
    padding: 16px;
}

.cac-toggle-btn__size {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    height: 40px;
    transition: var(--cac-transition);
}

.cac-toggle-btn__size--sm span {
    font-size: 20px;
}

.cac-toggle-btn__size--md span {
    font-size: 28px;
}

.cac-toggle-btn__size--lg span {
    font-size: 36px;
}

/* Pelagem toggle */
.cac-toggle-btn--pelagem {
    padding: 14px 12px;
}

.cac-toggle-btn--pelagem .cac-toggle-btn__label {
    font-size: 14px;
}

/* ============================================
   TOGGLE SWITCH - Castrado
   ============================================ */

.cac-form__toggle-switch {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}

.cac-form__toggle-switch input {
    display: none;
}

.cac-form__toggle-switch-slider {
    width: 44px;
    height: 24px;
    background: var(--cac-border);
    border-radius: 12px;
    position: relative;
    transition: var(--cac-transition);
    flex-shrink: 0;
}

.cac-form__toggle-switch-slider::after {
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    background: white;
    border-radius: 50%;
    top: 3px;
    left: 3px;
    transition: var(--cac-transition);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.cac-form__toggle-switch input:checked + .cac-form__toggle-switch-slider {
    background: var(--cac-primary);
}

.cac-form__toggle-switch input:checked + .cac-form__toggle-switch-slider::after {
    transform: translateX(20px);
}

.cac-form__toggle-switch-label {
    font-size: 14px;
    color: var(--cac-text);
}

/* ============================================
   PROGRESSIVE FIELDS - Animations
   ============================================ */

.cac-form--progressive {
    position: relative;
}

.cac-field-animate {
    will-change: opacity, transform, max-height;
}

/* Field enter animation */
.cac-field-enter {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.cac-field-enter-start {
    opacity: 0;
    transform: translateY(-20px);
    max-height: 0;
    overflow: hidden;
}

.cac-field-enter-end {
    opacity: 1;
    transform: translateY(0);
    max-height: 500px;
}

/* Input wrapper with check */
.cac-input-wrapper {
    position: relative;
}

.cac-input__check {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background: var(--cac-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: cac-scaleIn 0.3s ease-out;
}

.cac-input__check svg {
    width: 10px;
    height: 10px;
    color: white;
}

.cac-input__loading {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
}

.cac-input__loading svg {
    width: 20px;
    height: 20px;
    color: var(--cac-primary);
    animation: cac-spin 1s linear infinite;
}

/* Valid input state */
.cac-input--valid {
    border-color: var(--cac-primary) !important;
    padding-right: 48px;
}

/* Input with hint inline */
.cac-input-row {
    display: flex;
    align-items: center;
    gap: 16px;
}

.cac-input-row .cac-input {
    flex: 1;
}

.cac-form__hint-inline {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--cac-primary);
    background: var(--cac-primary-light);
    padding: 8px 14px;
    border-radius: 20px;
    white-space: nowrap;
}

.cac-form__hint-inline svg {
    width: 18px;
    height: 18px;
}

/* Input lg */
.cac-input--lg {
    font-size: 18px !important;
    padding: 16px 20px !important;
}

/* Section title */
.cac-form__section {
    margin-top: 16px;
    padding: 24px;
    background: var(--cac-bg);
    border-radius: 16px;
}

.cac-form__section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 20px;
    color: var(--cac-text);
}

.cac-form__section-title svg {
    width: 22px;
    height: 22px;
    color: var(--cac-primary);
}

/* Form hints */
.cac-form__hint {
    font-size: 13px;
    color: var(--cac-text-light);
    margin-top: 6px;
}

/* Links */
.cac-link {
    color: var(--cac-primary);
    text-decoration: none;
    font-weight: 500;
    transition: var(--cac-transition-fast);
}

.cac-link:hover {
    text-decoration: underline;
}

.cac-link--small {
    font-size: 13px;
}

/* ============================================
   LOADING SCREEN - Animated
   ============================================ */

.cac-loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.cac-loading-screen__content {
    text-align: center;
    animation: cac-fadeInUp 0.4s ease-out;
}

.cac-loading-screen__icon {
    width: 100px;
    height: 100px;
    margin: 0 auto 24px;
}

.cac-loading-screen__icon svg {
    width: 100%;
    height: 100%;
}

.cac-loading-screen__logo {
    animation: cac-loadingLogo 1.5s ease-in-out infinite;
    transform-origin: center center;
}

@keyframes cac-loadingLogo {
    0%, 100% {
        opacity: 0.7;
        transform: scale(0.95);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
}

.cac-loading-screen__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--cac-text);
    margin: 0 0 8px;
}

.cac-loading-screen__text {
    font-size: 16px;
    color: var(--cac-text-light);
    margin: 0;
}

/* Fade transitions */
.cac-fade-enter {
    animation: cac-fadeIn 0.3s ease-out forwards;
}

.cac-fade-leave {
    animation: cac-fadeOut 0.3s ease-out forwards;
}

/* ============================================
   BUTTON BLOCK
   ============================================ */

.cac-btn--block {
    width: 100%;
}

/* Mobile only actions */
.cac-form__actions--mobile-only {
    display: none;
}

/* Marketing checkbox */
.cac-form__checkbox--marketing {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
}

.cac-form__checkbox--marketing input[type="checkbox"] {
    flex-shrink: 0;
}

.cac-form__checkbox--marketing span {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
}

.cac-form__checkbox--marketing svg {
    width: 16px;
    height: 16px;
    color: var(--cac-primary);
    flex-shrink: 0;
}

/* ============================================
   RESPONSIVE - New Layout
   ============================================ */

@media (max-width: 992px) {
    .cac-checkout__layout--with-sidebar {
        grid-template-columns: 1fr;
    }

    .cac-checkout__sidebar {
        position: relative;
        top: 0;
        order: -1;
    }

    .cac-sidebar-resumo__action {
        display: none;
    }

    .cac-form__actions--mobile-only {
        display: flex;
    }
}

@media (max-width: 768px) {
    .cac-progress-bar__label {
        display: none;
    }

    .cac-progress-bar__icon {
        width: 40px;
        height: 40px;
    }

    .cac-progress-bar__icon svg {
        width: 18px;
        height: 18px;
    }

    .cac-progress-bar__line {
        margin-top: 20px;
        max-width: 50px;
    }

    .cac-checkout__step {
        padding: 24px 20px;
    }

    .cac-toggle-group {
        flex-direction: column;
    }

    .cac-toggle-group--3,
    .cac-toggle-group--4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .cac-review__grid {
        grid-template-columns: 1fr;
    }

    .cac-review__plano-card {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }

    .cac-review__plano-valor {
        text-align: center;
    }
}

@media (max-width: 480px) {
    .cac-toggle-group--3,
    .cac-toggle-group--4 {
        grid-template-columns: 1fr;
    }

    .cac-toggle-btn--compact {
        padding: 14px 18px;
    }

    .cac-input-row {
        flex-direction: column;
        align-items: stretch;
    }

    .cac-form__hint-inline {
        justify-content: center;
    }
}

/* Fix toggle switch and checkbox bullets */
.cac-form__toggle-switch {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
}

.cac-form__toggle-switch::before,
.cac-form__toggle-switch::marker,
.cac-form__checkbox::before,
.cac-form__checkbox::marker,
.cac-form__toggle-switch-label::before,
.cac-form__toggle-switch-label::marker {
    display: none !important;
    content: none !important;
}

.cac-form__checkbox {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
}

/* ============================================
   HIGH SPECIFICITY OVERRIDES
   ============================================ */

#cac-checkout .cac-checkout__step {
    background: #ffffff !important;
    border-radius: 16px !important;
    padding: 28px 32px !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
}

#cac-checkout .cac-step__title {
    font-size: 22px !important;
    font-weight: 700 !important;
    margin: 0 0 6px !important;
    color: #1f2937 !important;
}

#cac-checkout .cac-step__subtitle {
    font-size: 14px !important;
    color: #6b7280 !important;
    margin: 0 0 24px !important;
}

#cac-checkout .cac-form__group label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    margin-bottom: 6px !important;
    color: #1f2937 !important;
}

#cac-checkout .cac-form__group input,
#cac-checkout .cac-form__group select,
#cac-checkout .cac-form__group textarea {
    width: 100% !important;
    padding: 12px 14px !important;
    border: 1.5px solid #e5e7eb !important;
    border-radius: 10px !important;
    font-size: 15px !important;
    background: #ffffff !important;
    color: #1f2937 !important;
    transition: all 0.3s ease !important;
}

#cac-checkout .cac-form__group input:focus,
#cac-checkout .cac-form__group select:focus,
#cac-checkout .cac-form__group textarea:focus {
    outline: none !important;
    border-color: #22c55e !important;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12) !important;
}

#cac-checkout .cac-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 14px 28px !important;
    border-radius: 12px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
    border: none !important;
}

#cac-checkout .cac-btn--primary {
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(34, 197, 94, 0.3) !important;
}

#cac-checkout .cac-btn--primary:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(34, 197, 94, 0.4) !important;
}

#cac-checkout .cac-btn--secondary {
    background: #ffffff !important;
    color: #6b7280 !important;
    border: 1.5px solid #e5e7eb !important;
}

#cac-checkout .cac-toggle-btn {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 14px 12px !important;
    background: #ffffff !important;
    border: 1.5px solid #e5e7eb !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

#cac-checkout .cac-toggle-btn:hover {
    border-color: #22c55e !important;
}

#cac-checkout .cac-toggle-btn--active {
    border-color: #22c55e !important;
    background: rgba(34, 197, 94, 0.05) !important;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15) !important;
}

#cac-checkout .cac-form__toggle-switch {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
}

#cac-checkout .cac-form__checkbox {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 10px !important;
}

#cac-checkout .cac-progress-bar__icon {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    border: 2px solid #e5e7eb !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#cac-checkout .cac-progress-bar__step--active .cac-progress-bar__icon {
    border-color: #22c55e !important;
    background: #22c55e !important;
}

#cac-checkout .cac-progress-bar__step--completed .cac-progress-bar__icon {
    border-color: #22c55e !important;
    background: #22c55e !important;
}

#cac-checkout .cac-input__check {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 18px !important;
    height: 18px !important;
    background: #22c55e !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#cac-checkout .cac-input__check svg {
    width: 10px !important;
    height: 10px !important;
    color: white !important;
}
/* ============================================
   CARTÃO AMIGÃO BRAND COLORS
   ============================================ */

:root {
    /* Primary - Purple */
    --cac-primary: #50b68f !important;
    --cac-primary-dark: #3d9a77 !important;
    --cac-primary-light: #e8f7f1 !important;
    --cac-primary-lighter: #f0faf6 !important;
    
    /* Secondary - Purple (brand color) */
    --cac-purple: #6B3FA0;
    --cac-purple-dark: #5a3487;
    --cac-purple-light: #f8f5fc;
    --cac-purple-lighter: #f5f0fa;
    
    /* Accent - Teal/Green */
    --cac-accent: #50b68f;
    --cac-accent-dark: #3d9a77;
    --cac-accent-light: #e8f7f1;
    
    /* Text */
    --cac-text: #2d2d2d;
    --cac-text-light: #6b7280;
    --cac-text-purple: #5a3487;
    
    /* Backgrounds */
    --cac-bg: #f8f5fc;
    --cac-bg-light: #fdfcfe;
    
    /* Others */
    --cac-border: #e5e0ed;
    --cac-white: #ffffff;
    --cac-success: #50b68f;
    --cac-danger: #ef4444;
    --cac-warning: #f59e0b;
}

/* Override primary green with brand teal */
#cac-checkout {
    background: var(--cac-bg-light) !important;
}

/* Progress bar with purple theme */
#cac-checkout .cac-progress-bar__step--active .cac-progress-bar__icon {
    border-color: var(--cac-purple) !important;
    background: var(--cac-purple) !important;
}

#cac-checkout .cac-progress-bar__step--completed .cac-progress-bar__icon {
    border-color: var(--cac-accent) !important;
    background: var(--cac-accent) !important;
}

#cac-checkout .cac-progress-bar__step--active .cac-progress-bar__label {
    color: var(--cac-purple) !important;
}

#cac-checkout .cac-progress-bar__step--completed .cac-progress-bar__label {
    color: var(--cac-accent-dark) !important;
}

#cac-checkout .cac-progress-bar__line--filled {
    background: var(--cac-accent) !important;
}

/* Step titles with purple */
#cac-checkout .cac-step__title {
    color: var(--cac-purple-dark) !important;
}

/* Form inputs with purple focus */
#cac-checkout .cac-form__group input:focus,
#cac-checkout .cac-form__group select:focus,
#cac-checkout .cac-form__group textarea:focus {
    border-color: var(--cac-purple) !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 160, 0.15) !important;
}

#cac-checkout .cac-form__group:focus-within label {
    color: var(--cac-purple) !important;
}

/* Validation check with teal */
#cac-checkout .cac-input__check {
    background: var(--cac-accent) !important;
}

/* Toggle buttons with purple/teal */
#cac-checkout .cac-toggle-btn:hover {
    border-color: var(--cac-purple) !important;
}

#cac-checkout .cac-toggle-btn--active {
    border-color: var(--cac-accent) !important;
    background: var(--cac-accent-light) !important;
    box-shadow: 0 0 0 3px rgba(80, 182, 143, 0.2) !important;
}

#cac-checkout .cac-toggle-btn--active .cac-toggle-btn__label {
    color: var(--cac-accent-dark) !important;
}

/* Primary button with teal gradient */
#cac-checkout .cac-btn--primary {
    background: linear-gradient(135deg, #50b68f 0%, #3d9a77 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(80, 182, 143, 0.35) !important;
}

#cac-checkout .cac-btn--primary:hover {
    box-shadow: 0 6px 20px rgba(80, 182, 143, 0.45) !important;
}

/* Secondary button */
#cac-checkout .cac-btn--secondary {
    color: var(--cac-purple) !important;
    border-color: var(--cac-border) !important;
}

#cac-checkout .cac-btn--secondary:hover {
    border-color: var(--cac-purple) !important;
    background: var(--cac-purple-light) !important;
}

/* Toggle switch with teal */
#cac-checkout .cac-form__toggle-switch input:checked + .cac-form__toggle-switch-slider {
    background: var(--cac-accent) !important;
}

/* Checkbox accent */
#cac-checkout .cac-form__checkbox input[type="checkbox"] {
    accent-color: var(--cac-accent) !important;
}

/* Marketing checkbox icon */
#cac-checkout .cac-form__checkbox--marketing svg {
    color: var(--cac-accent) !important;
}

/* Cards/Steps with subtle purple shadow */
#cac-checkout .cac-checkout__step {
    background: #ffffff !important;
    box-shadow: 0 2px 12px rgba(107, 63, 160, 0.08) !important;
    border: 1px solid rgba(107, 63, 160, 0.08) !important;
}

/* Sidebar styling */
#cac-checkout .cac-checkout__sidebar {
    background: var(--cac-purple-light) !important;
}

/* Plan cards */
#cac-checkout .cac-plano {
    border-color: var(--cac-border) !important;
}

#cac-checkout .cac-plano:hover {
    border-color: var(--cac-purple) !important;
}

#cac-checkout .cac-plano--selected {
    border-color: var(--cac-accent) !important;
    background: var(--cac-accent-light) !important;
}

#cac-checkout .cac-plano__badge {
    background: var(--cac-purple) !important;
}

#cac-checkout .cac-plano__name {
    color: var(--cac-purple-dark) !important;
}

#cac-checkout .cac-plano__price {
    color: var(--cac-purple-dark) !important;
}

/* Review section */
#cac-checkout .cac-review__edit {
    color: var(--cac-purple) !important;
}

/* Age badge */
#cac-checkout .cac-age-badge {
    background: var(--cac-accent-light) !important;
    color: var(--cac-accent-dark) !important;
    border-color: var(--cac-accent) !important;
}

/* Links */
#cac-checkout a {
    color: var(--cac-purple) !important;
}

#cac-checkout a:hover {
    color: var(--cac-purple-dark) !important;
}

/* Success state */
#cac-checkout .cac-success-icon {
    background: var(--cac-accent) !important;
}

/* Loading screen */
#cac-checkout .cac-loading-screen[style*="display: none"] {
    display: none !important;
}

#cac-checkout .cac-loading-screen:not([style*="display: none"]) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
}

#cac-checkout .cac-loading-screen__content {
    text-align: center !important;
    width: 100% !important;
    max-width: 400px !important;
}

#cac-checkout .cac-loading-screen__icon {
    color: var(--cac-accent) !important;
    margin: 0 auto 24px !important;
}

#cac-checkout .cac-loading-screen .logo-green {
    fill: var(--cac-accent) !important;
}

/* Form hints */
#cac-checkout .cac-form__hint {
    color: var(--cac-text-light) !important;
}

/* Error states keep red */
#cac-checkout .cac-form__group input.error,
#cac-checkout .cac-form__group input.cac-input--error {
    border-color: var(--cac-danger) !important;
}

/* ============================================
   LAYOUT FIXES - Centralização e Progress Bar
   ============================================ */

/* Container principal centralizado */
#cac-checkout.cac-checkout {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 20px !important;
    background: transparent !important;
}

/* Header centralizado */
#cac-checkout .cac-checkout__header {
    text-align: center !important;
    margin-bottom: 24px !important;
}

/* Layout principal */
#cac-checkout .cac-checkout__layout {
    display: block !important;
    max-width: 600px !important;
    margin: 0 auto !important;
}

#cac-checkout .cac-checkout__layout--with-sidebar {
    display: grid !important;
    grid-template-columns: 1fr 340px !important;
    gap: 30px !important;
    max-width: 1000px !important;
    margin: 0 auto !important;
}

/* Main content */
#cac-checkout .cac-checkout__main {
    width: 100% !important;
}

/* Progress Bar - Limpo */
#cac-checkout .cac-progress-bar {
    margin-bottom: 24px !important;
    background: transparent !important;
}

#cac-checkout .cac-progress-bar__container {
    max-width: 600px !important;
    margin: 0 auto !important;
    background: transparent !important;
}

#cac-checkout .cac-progress-bar__indicator {
    text-align: center !important;
    margin-bottom: 16px !important;
    background: transparent !important;
}

#cac-checkout .cac-progress-bar__current {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #6b7280 !important;
    background: transparent !important;
}

#cac-checkout .cac-progress-bar__steps {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 0 !important;
    background: transparent !important;
}

#cac-checkout .cac-progress-bar__step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
    position: relative !important;
    z-index: 1 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

#cac-checkout .cac-progress-bar__icon {
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    border: 2px solid #e5e0ed !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
}

#cac-checkout .cac-progress-bar__icon svg {
    width: 20px !important;
    height: 20px !important;
    color: #9ca3af !important;
}

#cac-checkout .cac-progress-bar__label {
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #9ca3af !important;
    text-align: center !important;
    max-width: 70px !important;
    background: transparent !important;
}

#cac-checkout .cac-progress-bar__line {
    flex: 0 0 40px !important;
    width: 40px !important;
    height: 2px !important;
    background: #e5e0ed !important;
    margin: 0 4px !important;
    margin-top: 22px !important;
    border-radius: 2px !important;
    border: none !important;
    box-shadow: none !important;
}

#cac-checkout .cac-progress-bar__line--filled {
    background: #50b68f !important;
}

/* Step ativo */
#cac-checkout .cac-progress-bar__step--active .cac-progress-bar__icon {
    border-color: #6B3FA0 !important;
    background: #6B3FA0 !important;
    transform: scale(1.1) !important;
    box-shadow: 0 0 0 4px rgba(107, 63, 160, 0.2) !important;
}

#cac-checkout .cac-progress-bar__step--active .cac-progress-bar__icon svg {
    color: #ffffff !important;
}

#cac-checkout .cac-progress-bar__step--active .cac-progress-bar__label {
    color: #6B3FA0 !important;
    font-weight: 700 !important;
}

/* Step completado */
#cac-checkout .cac-progress-bar__step--completed .cac-progress-bar__icon {
    border-color: #50b68f !important;
    background: #50b68f !important;
}

#cac-checkout .cac-progress-bar__step--completed .cac-progress-bar__icon svg {
    color: #ffffff !important;
}

#cac-checkout .cac-progress-bar__step--completed .cac-progress-bar__label {
    color: #50b68f !important;
}

/* Step card */
#cac-checkout .cac-checkout__step {
    background: #ffffff !important;
    border-radius: 16px !important;
    padding: 32px !important;
    box-shadow: 0 4px 20px rgba(107, 63, 160, 0.08) !important;
    border: 1px solid rgba(107, 63, 160, 0.06) !important;
}

/* Responsivo */
@media (max-width: 900px) {
    #cac-checkout .cac-checkout__layout--with-sidebar {
        grid-template-columns: 1fr !important;
    }
    
    #cac-checkout .cac-progress-bar__label {
        display: none !important;
    }
    
    #cac-checkout .cac-progress-bar__icon {
        width: 36px !important;
        height: 36px !important;
    }
    
    #cac-checkout .cac-progress-bar__line {
        margin-top: 18px !important;
    }
}

/* ============================================
   FIX TOGGLE BUTTON COLORS - Remove Pink
   ============================================ */

/* Toggle button texto normal */
#cac-checkout .cac-toggle-btn .cac-toggle-btn__label,
#cac-checkout .cac-toggle-btn .cac-toggle-btn__icon {
    color: #6b7280 !important;
}

/* Toggle button ativo - texto verde */
#cac-checkout .cac-toggle-btn--active .cac-toggle-btn__label,
#cac-checkout .cac-toggle-btn--active .cac-toggle-btn__icon,
#cac-checkout .cac-toggle-btn--active span {
    color: #3d9a77 !important;
}

/* Borda e background do toggle ativo */
#cac-checkout .cac-toggle-btn--active {
    border-color: #50b68f !important;
    background: #e8f7f1 !important;
    box-shadow: 0 0 0 3px rgba(80, 182, 143, 0.15) !important;
}

/* Sexo toggle - ícones */
#cac-checkout .cac-toggle-btn--active svg,
#cac-checkout .cac-toggle-btn--active path {
    color: #3d9a77 !important;
    fill: #3d9a77 !important;
    stroke: #3d9a77 !important;
}

/* Age badge */
#cac-checkout .cac-age-badge,
#cac-checkout [class*="age-badge"],
#cac-checkout .cac-pet-age {
    background: #e8f7f1 !important;
    color: #3d9a77 !important;
    border-color: #50b68f !important;
}

/* Qualquer texto rosa/pink override */
#cac-checkout *[style*="color: rgb(239"] {
    color: #3d9a77 !important;
}

/* Override inline styles */
#cac-checkout .cac-toggle-btn--active * {
    color: #3d9a77 !important;
}

/* Emoji icons should stay as they are */
#cac-checkout .cac-toggle-btn__icon {
    font-size: 24px !important;
}

/* ============================================
   FIX INPUT PADDING - All inputs
   ============================================ */

#cac-checkout input,
#cac-checkout select,
#cac-checkout textarea,
#cac-checkout .cac-form__group input,
#cac-checkout .cac-form__group select,
#cac-checkout .cac-form__group textarea {
    padding: 12px 14px !important;
    height: auto !important;
    min-height: 44px !important;
}

#cac-checkout input[type="text"],
#cac-checkout input[type="email"],
#cac-checkout input[type="tel"],
#cac-checkout input[type="number"],
#cac-checkout input[type="date"] {
    padding: 12px 14px !important;
}

/* Input com check icon - padding extra à direita */
#cac-checkout .cac-input-wrapper input {
    padding-right: 40px !important;
}

/* ============================================
   FIX CHECKBOX COMPLETELY
   ============================================ */

#cac-checkout .cac-form__checkbox,
#cac-checkout label.cac-form__checkbox {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px !important;
    cursor: pointer !important;
    background: transparent !important;
}

#cac-checkout .cac-form__checkbox input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
    accent-color: #50b68f !important;
}

#cac-checkout .cac-form__checkbox span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 14px !important;
    color: #374151 !important;
    line-height: 1.4 !important;
}

#cac-checkout .cac-form__checkbox svg {
    width: 18px !important;
    height: 18px !important;
    color: #50b68f !important;
    flex-shrink: 0 !important;
}

/* Toggle switch fix */
#cac-checkout .cac-form__toggle-switch,
#cac-checkout label.cac-form__toggle-switch {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    cursor: pointer !important;
}

#cac-checkout .cac-form__toggle-switch-slider {
    width: 48px !important;
    height: 26px !important;
    min-width: 48px !important;
    background: #d1d5db !important;
    border-radius: 13px !important;
    position: relative !important;
    transition: all 0.3s ease !important;
    flex-shrink: 0 !important;
}

#cac-checkout .cac-form__toggle-switch-slider::after {
    content: "" !important;
    position: absolute !important;
    width: 20px !important;
    height: 20px !important;
    background: white !important;
    border-radius: 50% !important;
    top: 3px !important;
    left: 3px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.15) !important;
}

#cac-checkout .cac-form__toggle-switch input:checked + .cac-form__toggle-switch-slider {
    background: #50b68f !important;
}

#cac-checkout .cac-form__toggle-switch input:checked + .cac-form__toggle-switch-slider::after {
    transform: translateX(22px) !important;
}

#cac-checkout .cac-form__toggle-switch-label {
    font-size: 14px !important;
    color: #374151 !important;
}

/* Remove any list styling */
#cac-checkout .cac-form__checkbox::before,
#cac-checkout .cac-form__checkbox::marker,
#cac-checkout .cac-form__toggle-switch::before,
#cac-checkout .cac-form__toggle-switch::marker {
    display: none !important;
    content: none !important;
}

/* ============================================
   FIX ADDRESS BOX PADDING
   ============================================ */

#cac-checkout .cac-address-section,
#cac-checkout .cac-endereco-box,
#cac-checkout [class*="endereco"],
#cac-checkout [class*="address"],
#cac-checkout .cac-form__section {
    padding: 20px !important;
    border-radius: 12px !important;
}

/* Seção de endereço com background roxo claro */
#cac-checkout .cac-form__row--address-section,
#cac-checkout .cac-address-wrapper,
#cac-checkout div[x-show*="endereco"] > div,
#cac-checkout .cac-form__group--endereco-wrapper {
    background: #f8f5fc !important;
    padding: 20px !important;
    border-radius: 12px !important;
    margin-top: 8px !important;
}

/* Container de campos do endereço */
#cac-checkout .cac-form__row:has(.cac-form__group--endereco) {
    padding: 16px !important;
}

/* Fix específico para seção de endereço */
#cac-checkout .cac-form__section {
    background: #f8f5fc !important;
    padding: 24px !important;
    border-radius: 12px !important;
    margin-top: 16px !important;
    margin-bottom: 16px !important;
}

#cac-checkout .cac-form__section h3 {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #5a3487 !important;
    margin-bottom: 16px !important;
}

#cac-checkout .cac-form__section h3 svg {
    width: 20px !important;
    height: 20px !important;
    color: #50b68f !important;
}

/* ============================================
   FIX TOGGLE BUTTONS - Colors definitivo
   ============================================ */

/* Estado normal - cinza */
#cac-checkout .cac-toggle-btn {
    background: #ffffff !important;
    border: 1.5px solid #e5e7eb !important;
}

#cac-checkout .cac-toggle-btn span,
#cac-checkout .cac-toggle-btn .cac-toggle-btn__label,
#cac-checkout .cac-toggle-btn .cac-toggle-btn__icon {
    color: #6b7280 !important;
}

/* Hover - roxo (não branco) */
#cac-checkout .cac-toggle-btn:hover {
    border-color: #6B3FA0 !important;
    background: #faf8fc !important;
}

#cac-checkout .cac-toggle-btn:hover span,
#cac-checkout .cac-toggle-btn:hover .cac-toggle-btn__label,
#cac-checkout .cac-toggle-btn:hover .cac-toggle-btn__icon {
    color: #6B3FA0 !important;
}

/* Ativo/Selecionado - verde */
#cac-checkout .cac-toggle-btn--active,
#cac-checkout .cac-toggle-btn--active:hover {
    border-color: #50b68f !important;
    background: #e8f7f1 !important;
}

#cac-checkout .cac-toggle-btn--active span,
#cac-checkout .cac-toggle-btn--active .cac-toggle-btn__label,
#cac-checkout .cac-toggle-btn--active .cac-toggle-btn__icon,
#cac-checkout .cac-toggle-btn--active:hover span,
#cac-checkout .cac-toggle-btn--active:hover .cac-toggle-btn__label,
#cac-checkout .cac-toggle-btn--active:hover .cac-toggle-btn__icon {
    color: #3d9a77 !important;
}

/* ============================================
   FIX PADDING - Mais compacto
   ============================================ */

/* Seção de endereço - padding menor */
#cac-checkout .cac-form__section {
    padding: 16px 20px !important;
    margin-top: 12px !important;
    margin-bottom: 12px !important;
}

#cac-checkout .cac-form__section h3 {
    margin-bottom: 12px !important;
    font-size: 15px !important;
}

/* Rows mais compactas */
#cac-checkout .cac-form__row {
    margin-bottom: 12px !important;
    gap: 12px !important;
}

/* Labels menores */
#cac-checkout .cac-form__group label {
    margin-bottom: 4px !important;
    font-size: 13px !important;
}

/* Inputs mais compactos */
#cac-checkout .cac-form__group input,
#cac-checkout .cac-form__group select,
#cac-checkout .cac-form__group textarea {
    padding: 10px 12px !important;
    min-height: 40px !important;
}

/* Step card padding */
#cac-checkout .cac-checkout__step {
    padding: 24px !important;
}

/* Título e subtítulo */
#cac-checkout .cac-step__title {
    font-size: 20px !important;
    margin-bottom: 4px !important;
}

#cac-checkout .cac-step__subtitle {
    font-size: 14px !important;
    margin-bottom: 20px !important;
}

/* ============================================
   FIX SPACING - Muito mais compacto
   ============================================ */

#cac-checkout .cac-form__section {
    padding: 16px !important;
}

#cac-checkout .cac-form__section .cac-form__row {
    margin-bottom: 8px !important;
}

#cac-checkout .cac-form__section .cac-form__row:last-child {
    margin-bottom: 0 !important;
}

#cac-checkout .cac-form__row {
    margin-bottom: 10px !important;
    gap: 10px !important;
}

#cac-checkout .cac-form__group {
    margin-bottom: 0 !important;
}

#cac-checkout .cac-form__group label {
    margin-bottom: 3px !important;
}

/* ============================================
   SPACING OVERRIDE - Força compacto
   ============================================ */

#cac-checkout .cac-form__section,
#cac-checkout .cac-form__section.cac-field-animate {
    padding: 12px 16px !important;
    margin-top: 8px !important;
    margin-bottom: 8px !important;
}

#cac-checkout .cac-form__section h3,
#cac-checkout .cac-form__section-title {
    margin-bottom: 8px !important;
    padding: 0 !important;
}

#cac-checkout .cac-form__section .cac-form__row,
#cac-checkout .cac-form__row {
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
}

#cac-checkout .cac-form__group {
    margin: 0 !important;
    padding: 0 !important;
}

#cac-checkout .cac-form__group label {
    margin: 0 0 2px 0 !important;
    padding: 0 !important;
}

#cac-checkout input,
#cac-checkout select,
#cac-checkout textarea {
    margin: 0 !important;
}

/* ============================================
   TOGGLE BUTTON COLORS - Final fix
   ============================================ */

/* Normal - cinza */
#cac-checkout .cac-toggle-btn,
#cac-checkout .cac-toggle-btn span,
#cac-checkout .cac-toggle-btn * {
    color: #6b7280 !important;
}

/* Hover - roxo */
#cac-checkout .cac-toggle-btn:hover,
#cac-checkout .cac-toggle-btn:hover span,
#cac-checkout .cac-toggle-btn:hover * {
    color: #6B3FA0 !important;
    border-color: #6B3FA0 !important;
}

#cac-checkout .cac-toggle-btn:hover {
    background: #faf8fc !important;
}

/* Ativo - verde */
#cac-checkout .cac-toggle-btn--active,
#cac-checkout .cac-toggle-btn--active span,
#cac-checkout .cac-toggle-btn--active *,
#cac-checkout .cac-toggle-btn--active:hover,
#cac-checkout .cac-toggle-btn--active:hover span,
#cac-checkout .cac-toggle-btn--active:hover * {
    color: #3d9a77 !important;
}

#cac-checkout .cac-toggle-btn--active,
#cac-checkout .cac-toggle-btn--active:hover {
    background: #e8f7f1 !important;
    border-color: #50b68f !important;
}

/* ============================================
   PLANOS - Estilo melhorado
   ============================================ */

/* Card do plano */
#cac-checkout .cac-plano {
    background: #ffffff !important;
    border: 2px solid #e5e0ed !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-bottom: 12px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

#cac-checkout .cac-plano:hover {
    border-color: #6B3FA0 !important;
    box-shadow: 0 4px 12px rgba(107, 63, 160, 0.15) !important;
}

#cac-checkout .cac-plano--selected {
    border-color: #50b68f !important;
    background: #f0fdf4 !important;
    box-shadow: 0 0 0 3px rgba(80, 182, 143, 0.2) !important;
}

/* Nome do plano */
#cac-checkout .cac-plano__name,
#cac-checkout .cac-plano h3,
#cac-checkout .cac-plano strong {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #5a3487 !important;
    margin-bottom: 4px !important;
}

/* Preço */
#cac-checkout .cac-plano__price,
#cac-checkout .cac-plano .price {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #50b68f !important;
    margin-bottom: 12px !important;
}

#cac-checkout .cac-plano__price span,
#cac-checkout .cac-plano .price-period {
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #6b7280 !important;
}

/* Lista de benefícios */
#cac-checkout .cac-plano__benefits,
#cac-checkout .cac-plano ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

#cac-checkout .cac-plano__benefits li,
#cac-checkout .cac-plano ul li {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 6px 0 !important;
    font-size: 14px !important;
    color: #374151 !important;
    border-bottom: 1px solid #f3f4f6 !important;
}

#cac-checkout .cac-plano__benefits li:last-child,
#cac-checkout .cac-plano ul li:last-child {
    border-bottom: none !important;
}

#cac-checkout .cac-plano__benefits li::before,
#cac-checkout .cac-plano ul li::before {
    content: "✓" !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    background: #e8f7f1 !important;
    color: #50b68f !important;
    border-radius: 50% !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    flex-shrink: 0 !important;
}

/* Cupom */
#cac-checkout .cac-cupom,
#cac-checkout [class*="cupom"] {
    margin-top: 16px !important;
    padding: 16px !important;
    background: #faf8fc !important;
    border-radius: 10px !important;
}

#cac-checkout .cac-cupom input {
    text-transform: uppercase !important;
}

#cac-checkout .cac-cupom button,
#cac-checkout [class*="cupom"] button {
    background: #ffffff !important;
    border: 1.5px solid #6B3FA0 !important;
    color: #6B3FA0 !important;
    padding: 10px 20px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

#cac-checkout .cac-cupom button:hover {
    background: #6B3FA0 !important;
    color: #ffffff !important;
}

/* Resumo na página */
#cac-checkout .cac-resumo,
#cac-checkout [class*="resumo"] h4,
#cac-checkout [class*="summary"] {
    font-weight: 600 !important;
    color: #5a3487 !important;
}

/* Sidebar */
#cac-checkout .cac-checkout__sidebar {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 20px !important;
    box-shadow: 0 4px 12px rgba(107, 63, 160, 0.08) !important;
    border: 1px solid #e5e0ed !important;
}

#cac-checkout .cac-checkout__sidebar h3,
#cac-checkout .cac-checkout__sidebar h4,
#cac-checkout .cac-sidebar__title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #5a3487 !important;
    margin-bottom: 16px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px solid #e5e0ed !important;
}

/* Pet info na sidebar */
#cac-checkout .cac-sidebar__pet {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px !important;
    background: #faf8fc !important;
    border-radius: 8px !important;
    margin-bottom: 16px !important;
}

#cac-checkout .cac-sidebar__pet-icon {
    font-size: 24px !important;
}

/* Valores na sidebar */
#cac-checkout .cac-sidebar__row {
    display: flex !important;
    justify-content: space-between !important;
    padding: 8px 0 !important;
    font-size: 14px !important;
}

#cac-checkout .cac-sidebar__total {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #5a3487 !important;
    border-top: 2px solid #e5e0ed !important;
    padding-top: 12px !important;
    margin-top: 8px !important;
}

/* Botão continuar na sidebar */
#cac-checkout .cac-checkout__sidebar .cac-btn--primary {
    width: 100% !important;
    margin-top: 16px !important;
}

/* Segurança */
#cac-checkout .cac-sidebar__security {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    margin-top: 12px !important;
    font-size: 12px !important;
    color: #6b7280 !important;
}

/* ============================================
   FIX BUTTONS E SIDEBAR
   ============================================ */

/* Botão normal */
#cac-checkout .cac-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 12px 24px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    min-height: auto !important;
    height: auto !important;
    max-height: 48px !important;
}

#cac-checkout .cac-btn svg {
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0 !important;
}

/* Botão na sidebar - tamanho normal */
#cac-checkout .cac-checkout__sidebar .cac-btn,
#cac-checkout .cac-checkout__sidebar .cac-btn--primary,
#cac-checkout .cac-checkout__sidebar button {
    width: 100% !important;
    padding: 12px 20px !important;
    font-size: 14px !important;
    max-height: 48px !important;
    height: 48px !important;
}

#cac-checkout .cac-checkout__sidebar .cac-btn svg,
#cac-checkout .cac-checkout__sidebar button svg {
    width: 18px !important;
    height: 18px !important;
}

/* Fix lista de benefícios - remove ::before bugado */
#cac-checkout .cac-plano__benefits li::before,
#cac-checkout .cac-plano ul li::before {
    content: "" !important;
    display: none !important;
}

#cac-checkout .cac-plano__benefits li,
#cac-checkout .cac-plano ul li {
    padding-left: 0 !important;
}

/* Checkmark como ícone separado */
#cac-checkout .cac-plano__benefit-check,
#cac-checkout .cac-benefit-icon {
    width: 16px !important;
    height: 16px !important;
    color: #50b68f !important;
    flex-shrink: 0 !important;
}

/* Sidebar mais compacta */
#cac-checkout .cac-checkout__sidebar {
    padding: 16px !important;
}

#cac-checkout .cac-checkout__sidebar > * {
    max-width: 100% !important;
}

/* Pet info sidebar */
#cac-checkout .cac-sidebar-pet,
#cac-checkout [class*="sidebar"] [class*="pet"] {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px !important;
    background: #faf8fc !important;
    border-radius: 8px !important;
    margin-bottom: 12px !important;
}

/* Valores sidebar */
#cac-checkout .cac-checkout__sidebar [class*="row"],
#cac-checkout .cac-checkout__sidebar [class*="line"] {
    display: flex !important;
    justify-content: space-between !important;
    padding: 6px 0 !important;
    font-size: 13px !important;
}

/* Ícone de editar */
#cac-checkout .cac-checkout__sidebar [class*="edit"] svg,
#cac-checkout .cac-checkout__sidebar button[class*="edit"] {
    width: 16px !important;
    height: 16px !important;
    padding: 0 !important;
    background: transparent !important;
}

/* ============================================
   BENEFÍCIOS COM CHECKMARKS
   ============================================ */

#cac-checkout .cac-plano ul li,
#cac-checkout .cac-plano__benefits li {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 4px 0 !important;
    font-size: 13px !important;
    color: #374151 !important;
}

#cac-checkout .cac-plano ul li::before,
#cac-checkout .cac-plano__benefits li::before {
    content: "✓" !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    background: #50b68f !important;
    color: #ffffff !important;
    border-radius: 50% !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    flex-shrink: 0 !important;
}

/* Plano selecionado - checks mais destacados */
#cac-checkout .cac-plano--selected ul li::before,
#cac-checkout .cac-plano--selected .cac-plano__benefits li::before {
    background: #3d9a77 !important;
    box-shadow: 0 2px 4px rgba(80, 182, 143, 0.3) !important;
}

/* ============================================
   FIX RESUMO BOX PADDING
   ============================================ */

#cac-checkout .cac-resumo,
#cac-checkout [class*="resumo"],
#cac-checkout [class*="summary"],
#cac-checkout .cac-order-summary {
    background: #faf8fc !important;
    padding: 16px !important;
    border-radius: 10px !important;
    margin: 16px 0 !important;
}

#cac-checkout .cac-resumo h4,
#cac-checkout [class*="resumo"] h4,
#cac-checkout [class*="resumo"] strong {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #5a3487 !important;
    margin-bottom: 8px !important;
}

#cac-checkout .cac-resumo-row,
#cac-checkout [class*="resumo"] [class*="row"],
#cac-checkout [class*="resumo"] [class*="line"] {
    display: flex !important;
    justify-content: space-between !important;
    padding: 6px 0 !important;
    font-size: 13px !important;
}

#cac-checkout .cac-resumo-total,
#cac-checkout [class*="resumo"] [class*="total"] {
    font-weight: 700 !important;
    color: #5a3487 !important;
    border-top: 1px solid #e5e0ed !important;
    padding-top: 8px !important;
    margin-top: 4px !important;
}

/* ============================================
   FIX CHECKMARK TEXT OVERLAP
   ============================================ */

#cac-checkout .cac-plano ul,
#cac-checkout .cac-plano__benefits {
    padding-left: 0 !important;
    margin: 0 !important;
}

#cac-checkout .cac-plano ul li,
#cac-checkout .cac-plano__benefits li {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 5px 0 !important;
    padding-left: 28px !important;
    position: relative !important;
    font-size: 13px !important;
    color: #374151 !important;
}

#cac-checkout .cac-plano ul li::before,
#cac-checkout .cac-plano__benefits li::before {
    content: "✓" !important;
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    background: #50b68f !important;
    color: #ffffff !important;
    border-radius: 50% !important;
    font-size: 10px !important;
    font-weight: 700 !important;
}

/* ============================================
   HIDE SIDEBAR - Resumo já está no main
   ============================================ */

#cac-checkout .cac-checkout__sidebar {
    display: none !important;
}

#cac-checkout .cac-checkout__layout--with-sidebar {
    display: block !important;
    grid-template-columns: 1fr !important;
    max-width: 600px !important;
    margin: 0 auto !important;
}

/* ============================================
   FIX RESUMO ALIGNMENT E PADDING
   ============================================ */

#cac-checkout .cac-resumo,
#cac-checkout [class*="resumo"],
#cac-checkout [class*="summary"] {
    padding: 12px !important;
    margin: 12px 0 !important;
}

#cac-checkout .cac-resumo h4,
#cac-checkout [class*="resumo"] h4,
#cac-checkout [class*="resumo"] > strong {
    padding: 0 !important;
    margin: 0 0 8px 0 !important;
}

#cac-checkout .cac-resumo-row,
#cac-checkout [class*="resumo"] [class*="row"],
#cac-checkout [class*="resumo"] [class*="line"],
#cac-checkout [class*="resumo"] > div {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 6px 0 !important;
    margin: 0 !important;
    text-indent: 0 !important;
}

#cac-checkout [class*="resumo"] span,
#cac-checkout [class*="resumo"] p {
    padding: 0 !important;
    margin: 0 !important;
    text-indent: 0 !important;
}

/* Cupom box */
#cac-checkout .cac-cupom,
#cac-checkout [class*="cupom"] {
    padding: 12px !important;
    margin: 12px 0 !important;
}

/* ============================================
   FIX ERROR MESSAGE MARGIN
   ============================================ */

#cac-checkout .cac-form__error,
#cac-checkout [class*="error"],
#cac-checkout .error-message,
#cac-checkout .cac-cupom__error,
#cac-checkout [class*="cupom"] [class*="error"] {
    margin: 6px 0 0 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    color: #ef4444 !important;
}

#cac-checkout .cac-cupom,
#cac-checkout [class*="cupom"] {
    padding: 12px !important;
}

#cac-checkout .cac-cupom > *,
#cac-checkout [class*="cupom"] > * {
    margin-bottom: 0 !important;
}

/* ============================================
   CUPOM INPUT + BUTTON ALIGNMENT
   ============================================ */

#cac-checkout .cac-cupom__form,
#cac-checkout [class*="cupom"] form,
#cac-checkout [class*="cupom"] .cac-form__row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: nowrap !important;
}

#cac-checkout .cac-cupom__input,
#cac-checkout [class*="cupom"] input[type="text"] {
    flex: 1 !important;
    min-width: 0 !important;
    margin: 0 !important;
}

#cac-checkout .cac-cupom__btn,
#cac-checkout [class*="cupom"] button {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    margin: 0 !important;
}

/* ============================================
   CUPOM AND RESUMO CONSISTENT ALIGNMENT
   ============================================ */

#cac-checkout .cac-cupom,
#cac-checkout [class*="cupom-section"],
#cac-checkout .cac-plano__cupom {
    padding: 16px !important;
}

#cac-checkout .cac-cupom > *,
#cac-checkout [class*="cupom"] > * {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

#cac-checkout .cac-cupom__title,
#cac-checkout [class*="cupom"] h3,
#cac-checkout [class*="cupom"] h4,
#cac-checkout [class*="cupom"] label,
#cac-checkout [class*="cupom"] p {
    padding: 0 !important;
    margin: 0 0 10px 0 !important;
    text-align: left !important;
}

#cac-checkout .cac-resumo,
#cac-checkout [class*="resumo-box"],
#cac-checkout .cac-sidebar__resumo {
    padding: 16px !important;
}

#cac-checkout .cac-resumo__row,
#cac-checkout [class*="resumo"] [class*="row"] {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 6px 0 !important;
}

#cac-checkout .cac-resumo__label,
#cac-checkout .cac-resumo__value {
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================
   STEP 4 - REVIEW PAGE STYLING
   ============================================ */

/* Main title */
#cac-checkout .cac-review__title,
#cac-checkout [class*="review"] h2 {
    color: #6B3FA0 !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    margin: 0 0 6px 0 !important;
}

#cac-checkout .cac-review__subtitle,
#cac-checkout [class*="review"] h2 + p {
    color: #666 !important;
    font-size: 14px !important;
    margin: 0 0 20px 0 !important;
}

/* Review sections (cards) */
#cac-checkout .cac-review__section,
#cac-checkout [class*="review-section"],
#cac-checkout [class*="review"] > div {
    background: #fff !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 10px !important;
    padding: 16px !important;
    margin-bottom: 16px !important;
}

/* Section headers */
#cac-checkout .cac-review__section-header,
#cac-checkout [class*="review"] [class*="header"] {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
}

#cac-checkout .cac-review__section-title,
#cac-checkout [class*="review"] h3 {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #333 !important;
    margin: 0 !important;
}

/* Edit button */
#cac-checkout .cac-review__edit-btn,
#cac-checkout [class*="review"] [class*="edit"],
#cac-checkout [class*="review"] a[class*="edit"] {
    color: #6B3FA0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    cursor: pointer !important;
}

#cac-checkout [class*="review"] [class*="edit"]:hover {
    text-decoration: underline !important;
}

/* Data grid */
#cac-checkout .cac-review__data,
#cac-checkout [class*="review"] [class*="data"],
#cac-checkout [class*="review"] [class*="grid"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px 24px !important;
}

/* Labels */
#cac-checkout .cac-review__label,
#cac-checkout [class*="review"] [class*="label"],
#cac-checkout [class*="review"] dt,
#cac-checkout [class*="review"] small {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 2px !important;
    display: block !important;
}

/* Values */
#cac-checkout .cac-review__value,
#cac-checkout [class*="review"] [class*="value"],
#cac-checkout [class*="review"] dd {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #333 !important;
    margin: 0 !important;
}

/* Full width field (like address) */
#cac-checkout [class*="review"] [class*="full"],
#cac-checkout [class*="review"] [class*="endereco"] {
    grid-column: 1 / -1 !important;
}

/* Pet section special styling */
#cac-checkout .cac-review__pet,
#cac-checkout [class*="review"] [class*="pet-info"] {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}

#cac-checkout .cac-review__pet-avatar,
#cac-checkout [class*="review"] [class*="pet"] [class*="avatar"],
#cac-checkout [class*="review"] [class*="pet"] [class*="icon"] {
    width: 50px !important;
    height: 50px !important;
    background: linear-gradient(135deg, #f0e6fa 0%, #e6f7f0 100%) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 24px !important;
}

#cac-checkout .cac-review__pet-details {
    flex: 1 !important;
    display: grid !important;
    grid-template-columns: auto auto auto !important;
    gap: 8px 20px !important;
    align-items: center !important;
}

/* Plano section */
#cac-checkout .cac-review__plano,
#cac-checkout [class*="review"] [class*="plano-info"] {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
}

#cac-checkout .cac-review__plano-benefits,
#cac-checkout [class*="review"] [class*="benefits"] {
    list-style: none !important;
    padding: 0 !important;
    margin: 8px 0 0 0 !important;
}

#cac-checkout .cac-review__plano-benefits li,
#cac-checkout [class*="review"] [class*="benefits"] li {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    color: #555 !important;
    padding: 4px 0 !important;
}

#cac-checkout [class*="review"] [class*="benefits"] li::before {
    content: "✓" !important;
    color: #50b68f !important;
    font-weight: bold !important;
}

#cac-checkout .cac-review__plano-price,
#cac-checkout [class*="review"] [class*="price"] {
    text-align: right !important;
}

#cac-checkout .cac-review__plano-price-value {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #50b68f !important;
}

#cac-checkout .cac-review__plano-price-period {
    font-size: 13px !important;
    color: #666 !important;
}

/* Terms checkbox */
#cac-checkout .cac-review__terms,
#cac-checkout [class*="review"] [class*="terms"],
#cac-checkout [class*="review"] [class*="aceite"] {
    background: #f9f9f9 !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 10px !important;
    padding: 14px 16px !important;
    margin-top: 16px !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
}

#cac-checkout [class*="review"] [class*="terms"] input[type="checkbox"],
#cac-checkout [class*="review"] [class*="aceite"] input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    margin: 2px 0 0 0 !important;
    flex-shrink: 0 !important;
}

#cac-checkout [class*="review"] [class*="terms"] label,
#cac-checkout [class*="review"] [class*="aceite"] label,
#cac-checkout [class*="review"] [class*="terms"] span {
    font-size: 13px !important;
    color: #555 !important;
    line-height: 1.5 !important;
    text-transform: none !important;
}

#cac-checkout [class*="review"] [class*="terms"] a,
#cac-checkout [class*="review"] [class*="aceite"] a {
    color: #6B3FA0 !important;
    text-decoration: underline !important;
}

/* Trocar button */
#cac-checkout [class*="review"] [class*="trocar"],
#cac-checkout [class*="review"] button[class*="trocar"] {
    color: #6B3FA0 !important;
    background: none !important;
    border: none !important;
    font-size: 13px !important;
    cursor: pointer !important;
}

/* ============================================
   REVIEW PAGE - SIMPLE STYLE WITH PURPLE BG
   ============================================ */

/* Remove nested boxes */
#cac-checkout .cac-review__section [class*="data"],
#cac-checkout [class*="review-section"] [class*="grid"] > div,
#cac-checkout [class*="review"] [class*="field"] {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

/* Main sections with light purple background */
#cac-checkout .cac-review__section,
#cac-checkout [class*="review-section"],
#cac-checkout [class*="review"] > div[class*="section"] {
    background: #f8f5fc !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-bottom: 16px !important;
    box-shadow: none !important;
}

/* Simple data grid without boxes */
#cac-checkout .cac-review__data,
#cac-checkout [class*="review"] [class*="data"],
#cac-checkout [class*="review"] [class*="grid"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px 32px !important;
    border: none !important;
    background: transparent !important;
}

/* Data items without borders */
#cac-checkout [class*="review"] [class*="item"],
#cac-checkout [class*="review"] [class*="field"] {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Section header simpler */
#cac-checkout [class*="review"] [class*="header"] {
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* Terms section clean */
#cac-checkout [class*="review"] [class*="terms"],
#cac-checkout [class*="review"] [class*="aceite"] {
    background: #f8f5fc !important;
    border: none !important;
}

/* ============================================
   REVIEW - REDUCE PADDING
   ============================================ */

#cac-checkout .cac-review__section,
#cac-checkout [class*="review-section"],
#cac-checkout [class*="review"] > div[class*="section"] {
    padding: 14px 16px !important;
}

#cac-checkout [class*="review"] [class*="header"] {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

#cac-checkout .cac-review__data,
#cac-checkout [class*="review"] [class*="data"],
#cac-checkout [class*="review"] [class*="grid"] {
    gap: 10px 24px !important;
}

#cac-checkout [class*="review"] [class*="label"],
#cac-checkout [class*="review"] small {
    margin-bottom: 2px !important;
}

#cac-checkout [class*="review"] [class*="value"] {
    margin-bottom: 0 !important;
}

/* ============================================
   REVIEW - COMPACT LIKE OTHER SECTIONS
   ============================================ */

#cac-checkout .cac-review__section,
#cac-checkout [class*="review-section"],
#cac-checkout [class*="review"] > div {
    padding: 12px 14px !important;
    margin-bottom: 12px !important;
}

#cac-checkout [class*="review"] [class*="header"] {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

#cac-checkout .cac-review__data,
#cac-checkout [class*="review"] [class*="data"],
#cac-checkout [class*="review"] [class*="grid"] {
    gap: 6px 20px !important;
}

#cac-checkout [class*="review"] [class*="item"],
#cac-checkout [class*="review"] [class*="field"] {
    margin-bottom: 0 !important;
    padding: 0 !important;
}

/* ============================================
   REVIEW - FIX ALIGNMENT
   ============================================ */

#cac-checkout [class*="review"] [class*="data"],
#cac-checkout [class*="review"] [class*="grid"] {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 24px !important;
    align-items: start !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

#cac-checkout [class*="review"] [class*="item"],
#cac-checkout [class*="review"] [class*="field"],
#cac-checkout [class*="review"] [class*="data"] > div {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}

#cac-checkout [class*="review"] [class*="full-width"],
#cac-checkout [class*="review"] [class*="endereco"],
#cac-checkout [class*="review"] [class*="data"] > div:last-child {
    grid-column: 1 / -1 !important;
}

#cac-checkout [class*="review"] [class*="label"],
#cac-checkout [class*="review"] small,
#cac-checkout [class*="review"] [class*="data"] span:first-child {
    font-size: 11px !important;
    color: #888 !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
    letter-spacing: 0.3px !important;
}

#cac-checkout [class*="review"] [class*="value"],
#cac-checkout [class*="review"] [class*="data"] span:last-child,
#cac-checkout [class*="review"] [class*="data"] p {
    font-size: 14px !important;
    color: #333 !important;
    font-weight: 500 !important;
    margin: 0 !important;
}

/* ============================================
   REVIEW - ENHANCED VISUAL DESIGN
   ============================================ */

/* Main review container */
#cac-checkout .cac-review {
    gap: 16px !important;
}

/* Enhanced section cards */
#cac-checkout .cac-review__section {
    background: linear-gradient(135deg, #faf8fc 0%, #f5f0fa 100%) !important;
    border: 1px solid rgba(107, 63, 160, 0.08) !important;
    border-left: 4px solid #6B3FA0 !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-bottom: 0 !important;
    box-shadow: 0 2px 8px rgba(107, 63, 160, 0.06) !important;
    transition: all 0.2s ease !important;
}

#cac-checkout .cac-review__section:hover {
    box-shadow: 0 4px 16px rgba(107, 63, 160, 0.1) !important;
    border-left-color: #8B5FBF !important;
}

/* Section header improvements */
#cac-checkout .cac-review__section-header,
#cac-checkout [class*="review"] [class*="header"] {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    border-bottom: none !important;
}

#cac-checkout .cac-review__section-title {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #4a2a70 !important;
    margin: 0 !important;
}

#cac-checkout .cac-review__section-title svg {
    width: 20px !important;
    height: 20px !important;
    color: #6B3FA0 !important;
    opacity: 0.9 !important;
}

/* Edit button - modern style */
#cac-checkout .cac-review__edit-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 8px 14px !important;
    background: white !important;
    border: 1px solid rgba(107, 63, 160, 0.2) !important;
    border-radius: 8px !important;
    color: #6B3FA0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 1px 3px rgba(107, 63, 160, 0.08) !important;
}

#cac-checkout .cac-review__edit-btn:hover {
    background: linear-gradient(135deg, #6B3FA0 0%, #8B5FBF 100%) !important;
    color: white !important;
    border-color: transparent !important;
    box-shadow: 0 4px 12px rgba(107, 63, 160, 0.25) !important;
    transform: translateY(-1px) !important;
}

#cac-checkout .cac-review__edit-btn:hover svg {
    color: white !important;
}

#cac-checkout .cac-review__edit-btn svg {
    width: 14px !important;
    height: 14px !important;
    transition: color 0.2s ease !important;
}

/* Data grid improvements */
#cac-checkout .cac-review__grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 18px 32px !important;
    align-items: start !important;
}

/* Data items */
#cac-checkout .cac-review__item {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

#cac-checkout .cac-review__item--full {
    grid-column: 1 / -1 !important;
    padding-top: 6px !important;
    margin-top: 4px !important;
    border-top: 1px dashed rgba(107, 63, 160, 0.12) !important;
}

/* Labels - refined style */
#cac-checkout .cac-review__label {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #8B7A9E !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
}

/* Values - better readability */
#cac-checkout .cac-review__value {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #2d2040 !important;
    line-height: 1.4 !important;
}

/* Section content padding */
#cac-checkout .cac-review__section-content {
    padding: 0 !important;
    margin: 0 !important;
}

/* Mobile adjustments for review */
@media (max-width: 640px) {
    #cac-checkout .cac-review__section {
        padding: 16px !important;
        border-left-width: 3px !important;
    }

    #cac-checkout .cac-review__grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    #cac-checkout .cac-review__item--full {
        border-top: none !important;
        padding-top: 0 !important;
        margin-top: 0 !important;
    }

    #cac-checkout .cac-review__section-header {
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    #cac-checkout .cac-review__edit-btn {
        padding: 6px 12px !important;
        font-size: 12px !important;
    }
}

/* ============================================
   REVIEW - PET CARD FIX
   ============================================ */

/* Pet card layout */
#cac-checkout .cac-review__pet-card {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    background: white !important;
    padding: 16px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(107, 63, 160, 0.1) !important;
}

#cac-checkout .cac-review__pet-avatar {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    background: linear-gradient(135deg, #f0e6fa 0%, #e8f5e9 100%) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 28px !important;
}

#cac-checkout .cac-review__pet-info {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

#cac-checkout .cac-review__pet-name {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #2d2040 !important;
    margin: 0 !important;
}

/* Pet details - HORIZONTAL ROW */
#cac-checkout .cac-review__pet-details {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 14px !important;
    color: #666 !important;
}

#cac-checkout .cac-review__pet-details span {
    display: inline !important;
}

/* Pet extra info - horizontal */
#cac-checkout .cac-review__pet-extra {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 4px !important;
    font-size: 13px !important;
    color: #666 !important;
}

#cac-checkout .cac-review__badge {
    background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%) !important;
    color: #2e7d32 !important;
    padding: 4px 10px !important;
    border-radius: 20px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

/* Mobile pet card */
@media (max-width: 480px) {
    #cac-checkout .cac-review__pet-card {
        flex-direction: column !important;
        text-align: center !important;
        gap: 12px !important;
    }

    #cac-checkout .cac-review__pet-details {
        justify-content: center !important;
    }

    #cac-checkout .cac-review__pet-extra {
        justify-content: center !important;
    }
}

/* ============================================
   REVIEW - PET HEADER WITH AVATAR
   ============================================ */

#cac-checkout .cac-review__pet-header,
#cac-checkout .cac-review .cac-review__pet-header,
#cac-checkout [class*="review"] .cac-review__pet-header,
#cac-checkout .cac-review__section-content .cac-review__pet-header,
#cac-checkout .cac-review__section-content > .cac-review__pet-header {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

#cac-checkout .cac-review__pet-avatar,
#cac-checkout .cac-review .cac-review__pet-avatar,
#cac-checkout [class*="review"] .cac-review__pet-avatar,
#cac-checkout [class*="review"] [class*="pet"] [class*="avatar"] {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    background: none !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 32px !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
}

#cac-checkout .cac-review__pet-name-box,
#cac-checkout .cac-review .cac-review__pet-name-box,
#cac-checkout [class*="review"] .cac-review__pet-name-box,
#cac-checkout .cac-review__section-content .cac-review__pet-name-box,
#cac-checkout .cac-review__pet-header .cac-review__pet-name-box {
    flex: 1 !important;
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

#cac-checkout .cac-review__value--name,
#cac-checkout .cac-review__pet-header .cac-review__value--name,
#cac-checkout .cac-review__pet-name-box .cac-review__value--name {
    font-size: 18px !important;
    font-weight: 700 !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    color: #2d2040 !important;
}

/* ============================================
   FINAL OVERRIDE - SECTION HEADER NO SPACING
   ============================================ */
#cac-checkout .cac-review__section-header {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

/* ============================================
   REVIEW - PLANO CARD BONITO
   ============================================ */
#cac-checkout .cac-review__plano-card-box {
    background: white !important;
    border: 2px solid #50b68f !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin: 0 !important;
}

#cac-checkout .cac-review__plano-card-header,
#cac-checkout .cac-review__plano-card-box .cac-review__plano-card-header,
#cac-checkout [class*="review"] .cac-review__plano-card-header {
    margin-bottom: 12px !important;
    padding: 0 0 0 0 !important;
    border: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-style: none !important;
    background: none !important;
    background-color: transparent !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    box-shadow: none !important;
}

#cac-checkout .cac-review__plano-nome {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #6B3FA0 !important;
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
}

#cac-checkout .cac-review__plano-valor {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #50b68f !important;
    margin: 0 !important;
    padding: 0 !important;
}

#cac-checkout .cac-review__plano-lista {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

#cac-checkout .cac-review__plano-lista li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 14px !important;
    color: #333 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}

#cac-checkout .cac-review__plano-lista li svg {
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
}

#cac-checkout .cac-review__plano-lista li span {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================
   REVIEW - TERMS CHECKBOX FIX
   ============================================ */
#cac-checkout .cac-review__terms {
    background: #f8f5fc !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 16px 20px !important;
    margin-top: 8px !important;
}

#cac-checkout .cac-review__terms .cac-form__checkbox {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    background: none !important;
    padding: 0 !important;
    border: none !important;
}

#cac-checkout .cac-review__terms .cac-form__checkbox input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    margin-top: 2px !important;
    flex-shrink: 0 !important;
}

#cac-checkout .cac-review__terms .cac-form__checkbox span {
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: #555 !important;
    display: inline !important;
}

#cac-checkout .cac-review__terms .cac-form__checkbox a {
    color: #6B3FA0 !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
}

/* ============================================
   REVIEW - BUTTONS NO BORDER
   ============================================ */
#cac-checkout .cac-review .cac-form__actions,
#cac-checkout [class*="review"] .cac-form__actions {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 20px 0 0 0 !important;
    margin: 0 !important;
}

/* ============================================
   PAGAMENTO - ESTILOS MELHORADOS
   ============================================ */

/* Resumo da compra */
#cac-checkout .cac-resumo-compra {
    background: #f8f5fc !important;
    border-radius: 12px !important;
    padding: 16px 20px !important;
    margin-bottom: 24px !important;
    border: none !important;
}

#cac-checkout .cac-resumo-compra__item {
    display: flex;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(107, 63, 160, 0.1) !important;
    font-size: 14px !important;
}

#cac-checkout .cac-resumo-compra__item[style*="display: none"],
#cac-checkout .cac-resumo-compra__item[style*="display:none"] {
    display: none !important;
}

#cac-checkout .cac-resumo-compra__item:last-child {
    border-bottom: none !important;
}

#cac-checkout .cac-resumo-compra__label {
    color: #666 !important;
    font-weight: 500 !important;
}

#cac-checkout .cac-resumo-compra__item span:last-child {
    color: #333 !important;
    font-weight: 600 !important;
}

#cac-checkout .cac-resumo-compra__item--total {
    margin-top: 8px !important;
    padding-top: 12px !important;
    border-top: 2px solid rgba(107, 63, 160, 0.2) !important;
    border-bottom: none !important;
}

#cac-checkout .cac-resumo-compra__item--total .cac-resumo-compra__label {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #333 !important;
}

#cac-checkout .cac-resumo-compra__item--total span:last-child {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #50b68f !important;
}

/* Métodos de pagamento */
#cac-checkout .cac-metodos {
    display: flex !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
}

#cac-checkout .cac-metodo {
    flex: 1 !important;
    background: white !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 12px !important;
    padding: 16px 12px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    text-align: center !important;
}

#cac-checkout .cac-metodo:hover {
    border-color: #6B3FA0 !important;
    background: #faf8fc !important;
}

#cac-checkout .cac-metodo.cac-payment-tab--active {
    border-color: #50b68f !important;
    background: linear-gradient(135deg, #f0faf5 0%, #e8f5e9 100%) !important;
    box-shadow: 0 2px 8px rgba(80, 182, 143, 0.2) !important;
}

#cac-checkout .cac-metodo__content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
}

#cac-checkout .cac-metodo__icon {
    font-size: 24px !important;
    line-height: 1 !important;
}

#cac-checkout .cac-metodo__label {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #333 !important;
}

#cac-checkout .cac-metodo__desc {
    font-size: 11px !important;
    color: #888 !important;
    font-weight: 400 !important;
}

/* Info do pagamento */
#cac-checkout .cac-payment-info {
    background: linear-gradient(135deg, #e3f2fd 0%, #e8f5e9 100%) !important;
    border: none !important;
    border-left: 4px solid #50b68f !important;
    border-radius: 8px !important;
    padding: 16px 20px !important;
    margin-bottom: 20px !important;
}

#cac-checkout .cac-payment-info p {
    margin: 0 0 8px 0 !important;
    font-size: 14px !important;
    color: #333 !important;
    line-height: 1.5 !important;
}

#cac-checkout .cac-payment-info p:last-child {
    margin-bottom: 0 !important;
}

/* Formulário do cartão */
#cac-checkout .cac-cartao {
    background: #f8f5fc !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
    border: none !important;
}

#cac-checkout .cac-validade {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

#cac-checkout .cac-validade select {
    flex: 1 !important;
}

#cac-checkout .cac-validade span {
    color: #666 !important;
    font-weight: 600 !important;
}

/* Mobile - métodos em coluna */
@media (max-width: 640px) {
    #cac-checkout .cac-metodos {
        flex-direction: column !important;
    }

    #cac-checkout .cac-metodo {
        padding: 14px !important;
    }

    #cac-checkout .cac-metodo__content {
        flex-direction: row !important;
        justify-content: flex-start !important;
        gap: 12px !important;
    }

    #cac-checkout .cac-metodo__icon {
        font-size: 20px !important;
    }

    #cac-checkout .cac-metodo__label {
        font-size: 14px !important;
    }
}

/* ============================================
   REVIEW - RESUMO DE VALORES
   ============================================ */
#cac-checkout .cac-review__resumo {
    background: linear-gradient(135deg, #f8f5fc 0%, #f0ebf8 100%) !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-top: 20px !important;
    border: 1px solid #e8e0f0 !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-item {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 20px !important;
    padding: 12px 0 !important;
    font-size: 14px !important;
    color: #333 !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-item:not(:last-child) {
    border-bottom: 1px dashed #e0d6eb !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-item > span:first-child {
    text-align: left !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-item > span:last-child {
    text-align: right !important;
    font-weight: 600 !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-desconto {
    color: #50b68f !important;
    background: rgba(80, 182, 143, 0.08) !important;
    margin: 0 -16px !important;
    padding: 12px 18px !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-desconto svg {
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
}

#cac-checkout .cac-review__resumo .cac-review__desconto-valor {
    color: #50b68f !important;
    font-weight: 700 !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-total {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #7c3aed !important;
    padding-top: 16px !important;
    margin-top: 4px !important;
    border-bottom: none !important;
}

#cac-checkout .cac-review__resumo > .cac-review__resumo-total > span:last-child {
    font-size: 18px !important;
    color: #7c3aed !important;
}

/* ============================================
   COMPACT PLAN CARDS
   ============================================ */

.cac-compare-btn-wrapper {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 16px;
}

/* Legacy - kept for backwards compat */
.cac-btn--compare {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    background: transparent;
    border: 1.5px solid #6B3FA0;
    color: #6B3FA0;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.cac-btn--compare:hover {
    background: #6B3FA0;
    color: #fff;
}

.cac-btn--compare svg {
    flex-shrink: 0;
}

.cac-btn--outline {
    background: transparent;
    border: 2px solid var(--cac-primary);
    color: var(--cac-primary);
}

.cac-btn--outline:hover {
    background: var(--cac-primary);
    color: var(--cac-white);
}

.cac-btn--sm {
    padding: 8px 16px;
    font-size: 13px;
}

.cac-btn--block {
    width: 100%;
    display: block;
}

.cac-planos-compact {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px;
}

.cac-plano-compact {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: var(--cac-white);
    border: 2px solid var(--cac-border);
    border-radius: 12px;
    cursor: pointer;
    transition: var(--cac-transition);
    position: relative;
}

.cac-plano-compact:hover {
    border-color: #22c55e;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.cac-plano-compact--selected {
    border-color: #22c55e;
    background: linear-gradient(135deg, rgba(34, 197, 94, 0.08) 0%, rgba(34, 197, 94, 0.03) 100%);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
}

.cac-plano-compact--destaque {
    border-color: var(--cac-warning);
}

#cac-checkout .cac-plano-compact__badge {
    position: absolute;
    top: -10px;
    right: 16px;
    background: linear-gradient(135deg, var(--cac-warning) 0%, #d97706 100%);
    color: var(--cac-white);
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.4;
}

.cac-plano-compact__radio {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border: 2px solid var(--cac-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--cac-transition);
}

.cac-plano-compact--selected .cac-plano-compact__radio {
    border-color: #22c55e;
}

.cac-plano-compact__radio-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: transparent;
    transition: all 0.2s ease;
}

.cac-plano-compact__radio-dot--checked {
    background: #22c55e;
}

.cac-plano-compact__info {
    flex: 1;
    min-width: 0;
}

.cac-plano-compact__nome {
    font-size: 16px;
    font-weight: 700;
    color: var(--cac-text);
    margin: 0 0 2px;
}

.cac-plano-compact__beneficios-count {
    font-size: 13px;
    color: var(--cac-text-light);
}

.cac-plano-compact__valor {
    text-align: right;
    flex-shrink: 0;
}

.cac-plano-compact__preco {
    font-size: 20px;
    font-weight: 800;
    color: #50b68f;
    display: block;
    line-height: 1;
}

.cac-plano-compact__valor small {
    font-size: 12px;
    color: var(--cac-text-light);
    font-weight: 500;
}

.cac-plano-compact__details {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border: 1.5px solid #e5e7eb;
    background: #fff;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6B3FA0;
    transition: all 0.2s ease;
}

.cac-plano-compact__details:hover {
    border-color: #6B3FA0;
    background: #6B3FA0;
    color: #fff;
}

/* ============================================
   COMPARISON MODAL
   ============================================ */

.cac-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    padding: 20px;
    backdrop-filter: blur(4px);
}

.cac-modal--entering {
    animation: cac-fadeIn 0.2s ease-out;
}

.cac-modal--leaving {
    animation: cac-fadeOut 0.2s ease-out;
}

.cac-modal__content {
    background: var(--cac-white);
    border-radius: 16px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    animation: cac-scaleIn 0.3s ease-out;
}

.cac-modal__content--lg {
    width: 100%;
    max-width: 900px;
}

.cac-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--cac-border);
}

.cac-modal__header h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--cac-text);
    margin: 0;
}

.cac-modal__close {
    width: 40px;
    height: 40px;
    border: none;
    background: var(--cac-bg);
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cac-text-light);
    transition: var(--cac-transition);
}

.cac-modal__close:hover {
    background: var(--cac-danger);
    color: var(--cac-white);
}

.cac-modal__body {
    padding: 24px;
    overflow-y: auto;
}

/* ============================================
   COMPARISON GRID
   ============================================ */

.cac-compare-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
}

.cac-compare-card {
    background: var(--cac-white);
    border: 2px solid var(--cac-border);
    border-radius: 16px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: var(--cac-transition);
}

.cac-compare-card--selected {
    border-color: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
}

.cac-compare-card--destaque {
    border-color: var(--cac-warning);
}

.cac-compare-card__badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, var(--cac-warning) 0%, #d97706 100%);
    color: var(--cac-white);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.cac-compare-card__nome {
    font-size: 18px;
    font-weight: 700;
    color: var(--cac-text);
    margin: 0 0 12px;
    text-align: center;
}

.cac-compare-card__valor {
    text-align: center;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--cac-border);
}

.cac-compare-card__valor span {
    font-size: 32px;
    font-weight: 800;
    color: #50b68f;
    line-height: 1;
}

.cac-compare-card__valor small {
    font-size: 14px;
    color: var(--cac-text-light);
    font-weight: 500;
}

.cac-compare-card__descricao {
    font-size: 13px;
    color: var(--cac-text-light);
    text-align: center;
    margin: 0 0 16px;
    line-height: 1.5;
}

.cac-compare-card__beneficios {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    flex: 1;
}

.cac-compare-card__beneficios li {
    padding: 8px 0;
    padding-left: 28px;
    position: relative;
    font-size: 13px;
    color: var(--cac-text);
    border-bottom: 1px solid var(--cac-bg);
}

.cac-compare-card__beneficios li:last-child {
    border-bottom: none;
}

.cac-compare-card__beneficios li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 8px;
    width: 18px;
    height: 18px;
    background: rgba(34, 197, 94, 0.15);
    color: #22c55e;
    border-radius: 50%;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

/* Mobile adjustments for compact plans */
@media (max-width: 600px) {
    .cac-plano-compact {
        flex-wrap: wrap;
        gap: 12px;
    }

    .cac-plano-compact__radio {
        order: 1;
    }

    .cac-plano-compact__info {
        order: 2;
        flex: 1;
    }

    .cac-plano-compact__details {
        order: 3;
    }

    .cac-plano-compact__valor {
        order: 4;
        width: 100%;
        text-align: left;
        padding-left: 40px;
        margin-top: -4px;
    }

    .cac-compare-grid {
        grid-template-columns: 1fr;
    }

    .cac-modal__content--lg {
        max-width: 100%;
        max-height: 100vh;
        border-radius: 0;
    }

    .cac-modal {
        padding: 0;
    }
}

@keyframes cac-fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes cac-fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

/* ============================================
   COMPACT PLANS - HIGH SPECIFICITY OVERRIDES
   ============================================ */

#cac-checkout .cac-plano-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 20px !important;
    gap: 16px !important;
}

#cac-checkout .cac-ciclo-toggle {
    display: inline-flex !important;
    gap: 0 !important;
    background: #f3f4f6 !important;
    padding: 5px !important;
    border-radius: 12px !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06) !important;
    max-width: 240px !important;
    margin: 0 !important;
}

#cac-checkout .cac-ciclo-toggle__option {
    flex: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
}

#cac-checkout .cac-ciclo-toggle__option input {
    display: none !important;
}

#cac-checkout .cac-ciclo-toggle__option span {
    display: block !important;
    padding: 10px 28px !important;
    border-radius: 9px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #6b7280 !important;
    transition: all 0.2s ease !important;
    white-space: nowrap !important;
    background: transparent !important;
    border: none !important;
    line-height: 1.3 !important;
}

#cac-checkout .cac-ciclo-toggle__option input:checked + span {
    background: #fff !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

#cac-checkout .cac-compare-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    font-size: 13px !important;
    color: #6B3FA0 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}

#cac-checkout .cac-compare-link:hover {
    color: #5B2F90 !important;
}

/* Legacy */
#cac-checkout .cac-btn--compare {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 8px 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    background: transparent !important;
    border: 1.5px solid #6B3FA0 !important;
    color: #6B3FA0 !important;
    border-radius: 8px !important;
    cursor: pointer !important;
}

#cac-checkout .cac-btn--compare:hover {
    background: #6B3FA0 !important;
    color: #fff !important;
}

#cac-checkout .cac-plano-compact__preco {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: #50b68f !important;
}

#cac-checkout .cac-plano-compact__details {
    width: 32px !important;
    height: 32px !important;
    border: 1.5px solid #e5e7eb !important;
    background: #fff !important;
    border-radius: 8px !important;
    color: #6B3FA0 !important;
}

#cac-checkout .cac-plano-compact__details:hover {
    border-color: #6B3FA0 !important;
    background: #6B3FA0 !important;
    color: #fff !important;
}

#cac-checkout .cac-plano-compact--selected {
    border-color: #50b68f !important;
    background: linear-gradient(135deg, rgba(80, 182, 143, 0.08) 0%, rgba(80, 182, 143, 0.03) 100%) !important;
    box-shadow: 0 0 0 3px rgba(80, 182, 143, 0.15) !important;
}

#cac-checkout .cac-plano-compact:hover {
    border-color: #50b68f !important;
}

#cac-checkout .cac-plano-compact--selected .cac-plano-compact__radio {
    border-color: #50b68f !important;
}

#cac-checkout .cac-plano-compact__radio-dot--checked {
    background: #50b68f !important;
}

#cac-checkout .cac-compare-card__valor span {
    color: #50b68f !important;
}

#cac-checkout .cac-compare-card--selected {
    border-color: #50b68f !important;
    box-shadow: 0 0 0 3px rgba(80, 182, 143, 0.15) !important;
}

#cac-checkout .cac-compare-card__beneficios li::before {
    background: rgba(80, 182, 143, 0.15) !important;
    color: #50b68f !important;
}

/* Plan Icons */
#cac-checkout .cac-plano-compact__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 4px;
}

#cac-checkout .cac-plano-compact__icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

#cac-checkout .cac-plano-compact {
    padding: 18px 20px !important;
    gap: 14px !important;
}

#cac-checkout .cac-plano-compact__info {
    margin-right: auto;
}

#cac-checkout .cac-plano-compact__valor {
    margin-right: 8px;
}

#cac-checkout .cac-compare-card__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#cac-checkout .cac-compare-card__icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Modal Compare Cards - Better styling */
#cac-checkout .cac-compare-grid {
    gap: 20px !important;
    padding: 8px !important;
}

#cac-checkout .cac-compare-card {
    padding: 24px 20px !important;
    border-radius: 16px !important;
    background: #fff !important;
    border: 2px solid #e5e7eb !important;
}

#cac-checkout .cac-compare-card--selected {
    border-color: #50b68f !important;
    background: linear-gradient(135deg, rgba(80, 182, 143, 0.05) 0%, #fff 100%) !important;
}

#cac-checkout .cac-compare-card__nome {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
    margin: 0 0 8px !important;
    text-align: center !important;
}

#cac-checkout .cac-compare-card__valor {
    text-align: center !important;
    margin-bottom: 16px !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid #e5e7eb !important;
}

#cac-checkout .cac-compare-card__valor span {
    font-size: 28px !important;
    font-weight: 800 !important;
    color: #50b68f !important;
}

#cac-checkout .cac-compare-card__valor small {
    font-size: 14px !important;
    color: #6b7280 !important;
}

#cac-checkout .cac-compare-card__descricao {
    font-size: 13px !important;
    color: #6b7280 !important;
    text-align: center !important;
    margin: 0 0 16px !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid #e5e7eb !important;
}

#cac-checkout .cac-compare-card__beneficios {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 20px !important;
}

#cac-checkout .cac-compare-card__beneficios li {
    padding: 10px 0 !important;
    padding-left: 28px !important;
    position: relative !important;
    font-size: 13px !important;
    color: #374151 !important;
    border-bottom: 1px solid #f3f4f6 !important;
    line-height: 1.4 !important;
}

#cac-checkout .cac-compare-card__beneficios li:last-child {
    border-bottom: none !important;
}

#cac-checkout .cac-compare-card__beneficios li::before {
    content: '✓' !important;
    position: absolute !important;
    left: 0 !important;
    top: 10px !important;
    width: 18px !important;
    height: 18px !important;
    background: rgba(80, 182, 143, 0.15) !important;
    color: #50b68f !important;
    border-radius: 50% !important;
    font-size: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 700 !important;
}

#cac-checkout .cac-modal__body {
    padding: 24px !important;
    max-height: 70vh !important;
    overflow-y: auto !important;
}

#cac-checkout .cac-modal__header {
    padding: 20px 24px !important;
    border-bottom: 1px solid #e5e7eb !important;
}

#cac-checkout .cac-modal__header h3 {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
    margin: 0 !important;
}

/* ============================================
   PASSWORD STRENGTH INDICATOR
   ============================================ */

/* Section description */
.cac-form__section-desc {
    font-size: 13px;
    color: #6b7280;
    margin: -8px 0 16px;
    line-height: 1.5;
}

/* Toggle password button */
.cac-input__toggle-password {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    padding: 4px;
    cursor: pointer;
    color: #9ca3af;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease;
}

.cac-input__toggle-password:hover {
    color: #6B3FA0;
}

/* Password strength bar */
.cac-password-strength {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
}

.cac-password-strength__bar {
    flex: 1;
    height: 6px;
    background: #e5e7eb;
    border-radius: 3px;
    overflow: hidden;
}

.cac-password-strength__fill {
    height: 100%;
    border-radius: 3px;
    transition: all 0.3s ease;
}

.cac-password-strength__fill--weak {
    background: linear-gradient(90deg, #ef4444, #f87171);
}

.cac-password-strength__fill--fair {
    background: linear-gradient(90deg, #f59e0b, #fbbf24);
}

.cac-password-strength__fill--good {
    background: linear-gradient(90deg, #10b981, #34d399);
}

.cac-password-strength__fill--strong {
    background: linear-gradient(90deg, #22c55e, #4ade80);
}

.cac-password-strength__label {
    font-size: 12px;
    font-weight: 600;
    min-width: 60px;
}

.cac-password-strength__label--weak {
    color: #ef4444;
}

.cac-password-strength__label--fair {
    color: #f59e0b;
}

.cac-password-strength__label--good {
    color: #10b981;
}

.cac-password-strength__label--strong {
    color: #22c55e;
}

/* Password requirements */
.cac-password-requirements {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 12px;
    padding: 12px;
    background: #f9fafb;
    border-radius: 8px;
}

.cac-password-req {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #9ca3af;
    transition: color 0.2s ease;
}

.cac-password-req svg {
    color: #d1d5db;
    transition: color 0.2s ease;
}

.cac-password-req--valid {
    color: #22c55e;
}

.cac-password-req--valid svg {
    color: #22c55e;
}

/* High specificity overrides */
#cac-checkout .cac-form__section-desc {
    font-size: 13px !important;
    color: #6b7280 !important;
    margin: -8px 0 16px !important;
}

#cac-checkout .cac-input__toggle-password {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: none !important;
    border: none !important;
    color: #9ca3af !important;
}

#cac-checkout .cac-input__toggle-password:hover {
    color: #6B3FA0 !important;
}

#cac-checkout .cac-password-strength {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 8px !important;
}

#cac-checkout .cac-password-strength__bar {
    flex: 1 !important;
    height: 6px !important;
    background: #e5e7eb !important;
    border-radius: 3px !important;
}

#cac-checkout .cac-password-requirements {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px 16px !important;
    margin-top: 12px !important;
    padding: 12px !important;
    background: #f9fafb !important;
    border-radius: 8px !important;
}

#cac-checkout .cac-password-req {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 12px !important;
    color: #9ca3af !important;
}

#cac-checkout .cac-password-req--valid {
    color: #22c55e !important;
}

#cac-checkout .cac-password-req--valid svg {
    color: #22c55e !important;
}

/* ============================================
   MULTI-PET STYLES
   Pet cards, banners, plano sections, etc.
   ============================================ */

/* Pet Card List */
#cac-checkout .cac-pet-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin: 0 0 20px 0 !important;
}

#cac-checkout .cac-pet-card {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 16px 20px !important;
    background: #fff !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 12px !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}

#cac-checkout .cac-pet-card:hover {
    border-color: var(--cac-primary, #22c55e) !important;
    box-shadow: 0 2px 8px rgba(34, 197, 94, 0.1) !important;
}

#cac-checkout .cac-pet-card__avatar {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 48px !important;
    height: 48px !important;
    background: #f3f4f6 !important;
    border-radius: 50% !important;
    font-size: 24px !important;
    flex-shrink: 0 !important;
}

#cac-checkout .cac-pet-card__info {
    flex: 1 !important;
    min-width: 0 !important;
}

#cac-checkout .cac-pet-card__name {
    display: block !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
    line-height: 1.3 !important;
}

#cac-checkout .cac-pet-card__details {
    display: block !important;
    font-size: 13px !important;
    color: #6b7280 !important;
    line-height: 1.4 !important;
    margin-top: 2px !important;
}

#cac-checkout .cac-pet-card__actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-shrink: 0 !important;
}

#cac-checkout .cac-pet-card__btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    background: #fff !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
    color: #6b7280 !important;
}

#cac-checkout .cac-pet-card__btn:hover {
    background: #f9fafb !important;
}

#cac-checkout .cac-pet-card__btn--edit:hover {
    color: var(--cac-primary, #22c55e) !important;
    border-color: var(--cac-primary, #22c55e) !important;
}

#cac-checkout .cac-pet-card__btn--remove:hover {
    color: #ef4444 !important;
    border-color: #ef4444 !important;
}

/* Multi-Pet Banner */
#cac-checkout .cac-multipet-banner {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 16px 20px !important;
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%) !important;
    border: 1px solid #fbbf24 !important;
    border-radius: 12px !important;
    margin: 0 0 20px 0 !important;
}

#cac-checkout .cac-multipet-banner--active {
    background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%) !important;
    border-color: #34d399 !important;
}

#cac-checkout .cac-multipet-banner__icon {
    font-size: 24px !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
}

#cac-checkout .cac-multipet-banner__text {
    font-size: 14px !important;
    color: #78350f !important;
    line-height: 1.5 !important;
}

#cac-checkout .cac-multipet-banner--active .cac-multipet-banner__text {
    color: #065f46 !important;
}

#cac-checkout .cac-multipet-banner__next {
    display: block !important;
    margin-top: 4px !important;
    font-size: 13px !important;
    opacity: 0.85 !important;
}

/* Empty State */
#cac-checkout .cac-empty-state {
    text-align: center !important;
    padding: 40px 20px !important;
    margin: 0 0 20px 0 !important;
}

#cac-checkout .cac-empty-state__icon {
    font-size: 48px !important;
    margin: 0 0 12px 0 !important;
}

#cac-checkout .cac-empty-state__text {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #6b7280 !important;
    margin: 0 0 4px 0 !important;
}

#cac-checkout .cac-empty-state__hint {
    font-size: 14px !important;
    color: #9ca3af !important;
    margin: 0 !important;
}

/* Add Pet Button */
#cac-checkout .cac-btn--add-pet {
    margin: 0 0 24px 0 !important;
    border-style: dashed !important;
    border-width: 2px !important;
}

/* Plano Section (per-pet plan selection) */
#cac-checkout .cac-plano-section {
    margin: 0 0 24px 0 !important;
    padding: 0 0 24px 0 !important;
    border-bottom: 1px solid #e5e7eb !important;
}

#cac-checkout .cac-plano-section:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

#cac-checkout .cac-plano-section__header {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 0 16px 0 !important;
    padding: 12px 16px !important;
    background: #f9fafb !important;
    border-radius: 10px !important;
}

#cac-checkout .cac-plano-section__avatar {
    font-size: 24px !important;
    line-height: 1 !important;
}

#cac-checkout .cac-plano-section__name {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
    flex: 1 !important;
}

#cac-checkout .cac-plano-section__badge {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 13px !important;
    color: #059669 !important;
    font-weight: 500 !important;
}

/* Multi-payment PIX/Boleto items */
#cac-checkout .cac-pix__multi-item,
#cac-checkout .cac-boleto__multi-item {
    margin: 0 0 24px 0 !important;
    padding: 20px !important;
    background: #f9fafb !important;
    border-radius: 12px !important;
    border: 1px solid #e5e7eb !important;
}

#cac-checkout .cac-pix__multi-header,
#cac-checkout .cac-boleto__multi-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin: 0 0 16px 0 !important;
    padding: 0 0 12px 0 !important;
    border-bottom: 1px solid #e5e7eb !important;
}

#cac-checkout .cac-pix__multi-header strong,
#cac-checkout .cac-boleto__multi-header strong {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
}

#cac-checkout .cac-pix__multi-header span,
#cac-checkout .cac-boleto__multi-header span {
    font-size: 14px !important;
    color: #6b7280 !important;
}

/* PIX waiting area */
#cac-checkout .cac-pix__waiting {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 18px !important;
    padding: 30px !important;
    background: linear-gradient(135deg, var(--cac-primary-lighter) 0%, var(--cac-primary-light) 100%) !important;
    border-radius: 16px !important;
    border: 1px solid var(--cac-primary) !important;
    margin-top: 24px !important;
}

#cac-checkout .cac-pix__waiting .cac-checkout__spinner {
    width: 50px !important;
    height: 50px !important;
    border: 4px solid var(--cac-border) !important;
    border-top-color: var(--cac-primary) !important;
    border-radius: 50% !important;
    animation: cac-spin 0.8s linear infinite !important;
}

#cac-checkout .cac-pix__waiting p {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--cac-text) !important;
    margin: 0 !important;
}

#cac-checkout .cac-pix__timer {
    text-align: center !important;
    margin-bottom: 24px !important;
}

/* PIX paid indicator */
#cac-checkout .cac-pix__multi-item--paid {
    background: #f0fdf4 !important;
    border-color: #86efac !important;
}

#cac-checkout .cac-pix__paid {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    padding: 24px !important;
}

#cac-checkout .cac-pix__paid span {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #10b981 !important;
}

/* QR Code PIX */
#cac-checkout .cac-pix__qrcode {
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    margin-bottom: 16px !important;
}

#cac-checkout .cac-pix__qrcode img {
    max-width: 220px !important;
    width: 100% !important;
    height: auto !important;
    border: 3px solid var(--cac-border) !important;
    border-radius: 16px !important;
    padding: 12px !important;
    background: white !important;
    box-shadow: var(--cac-shadow-lg) !important;
}

/* Sidebar pet plano details */
#cac-checkout .cac-sidebar-resumo__pet-plano {
    display: block !important;
    font-size: 12px !important;
    color: #059669 !important;
    font-weight: 500 !important;
    margin-top: 2px !important;
}

#cac-checkout .cac-sidebar-resumo__empty {
    padding: 20px !important;
    text-align: center !important;
    color: #9ca3af !important;
    font-size: 14px !important;
}

/* Responsive */
@media (max-width: 640px) {
    #cac-checkout .cac-pet-card {
        padding: 12px 16px !important;
        gap: 12px !important;
    }

    #cac-checkout .cac-pet-card__avatar {
        width: 40px !important;
        height: 40px !important;
        font-size: 20px !important;
    }

    #cac-checkout .cac-multipet-banner {
        flex-direction: column !important;
        gap: 8px !important;
        padding: 12px 16px !important;
    }

    #cac-checkout .cac-pix__multi-item,
    #cac-checkout .cac-boleto__multi-item {
        padding: 16px !important;
    }

    #cac-checkout .cac-pix__multi-header,
    #cac-checkout .cac-boleto__multi-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px !important;
    }
}
