/* ── SVG LOCKDOWN: stops WordPress theme from blowing up icons ── */
.cmv2-wrap svg,
.cmv2-card svg {
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    display: inline-block !important;
}

/* ── Variables ── */
.cmv2-wrap {
    --cmv2-red:       #FA320A;
    --cmv2-red-hover: #e02a07;
    --cmv2-red-glow:  rgba(250, 50, 10, 0.20);
    --cmv2-bg:        #0a0a0a;
    --cmv2-card:      #141414;
    --cmv2-border:    rgba(255, 255, 255, 0.07);
    --cmv2-text:      #f0f0f0;
    --cmv2-muted:     rgba(240, 240, 240, 0.78);
    --cmv2-hint:      rgba(240, 240, 240, 0.50);
}

/* ── Outer wrapper ── */
.cmv2-wrap {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 72vh;
    padding: 60px 20px;
    background-color: var(--cmv2-bg) !important;
    font-family: 'Outfit', sans-serif;
    overflow: hidden;
    box-sizing: border-box;
}

.cmv2-bg-grid {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
    background-size: 44px 44px;
}

.cmv2-bg-glow {
    position: absolute;
    top: -20%;
    left: 50%;
    transform: translateX(-50%);
    width: 700px;
    height: 500px;
    background: radial-gradient(ellipse at center, rgba(250,50,10,0.10) 0%, transparent 65%);
    pointer-events: none;
}

/* ── Card ── */
.cmv2-card {
    position: relative;
    background: var(--cmv2-card) !important;
    border: 1px solid var(--cmv2-border) !important;
    border-radius: 18px !important;
    width: 100%;
    max-width: 500px;
    /* Force centering even if Astra makes the parent full-width */
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 44px 42px !important;
    text-align: center;
    box-sizing: border-box;
    box-shadow:
        0 0 0 1px rgba(255,255,255,0.04),
        0 32px 72px rgba(0,0,0,0.55),
        0 0 100px rgba(250,50,10,0.05);
    animation: cmv2-rise 0.65s cubic-bezier(0.16, 1, 0.3, 1) both;
    z-index: 1;
    color: var(--cmv2-text);
}

/* Shorter red accent bar at the top of the card */
.cmv2-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 30% !important;
    right: 30% !important;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--cmv2-red) 40%, var(--cmv2-red) 60%, transparent);
    border-radius: 99px;
}

/* ── Logo ── */
.cmv2-logo-wrap { margin-bottom: 34px; }
.cmv2-logo {
    max-width: 162px !important;
    width: 162px !important;
    height: auto !important;
    display: block;
    margin: 0 auto;
    mix-blend-mode: screen;
}

/* ── Steps ── */
.cmv2-steps {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin-bottom: 42px;
    gap: 0;
}

.cmv2-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
}

.cmv2-step span {
    font-size: 10.5px !important;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--cmv2-hint);
    white-space: nowrap;
    display: block;
}

.cmv2-step--done span,
.cmv2-step--active span { color: var(--cmv2-text) !important; }

.cmv2-dot {
    position: relative;
    width: 30px !important;
    height: 30px !important;
    border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cmv2-hint);
    flex-shrink: 0;
}

.cmv2-dot svg {
    width: 12px !important;
    height: 12px !important;
    display: block !important;
    flex-shrink: 0;
}

.cmv2-step--done .cmv2-dot {
    background: var(--cmv2-red) !important;
    border-color: var(--cmv2-red) !important;
    color: #fff !important;
}

.cmv2-step--active .cmv2-dot {
    border-color: var(--cmv2-red) !important;
    color: var(--cmv2-red) !important;
}

.cmv2-pulse-ring {
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 1.5px solid var(--cmv2-red);
    animation: cmv2-pulse 2.2s ease-in-out infinite;
    opacity: 0;
    display: block !important;
    width: auto !important;
    height: auto !important;
}

.cmv2-connector {
    width: 48px;
    height: 1.5px;
    background: rgba(255,255,255,0.08);
    margin-top: 14px;
    flex-shrink: 0;
}

.cmv2-connector--done {
    background: linear-gradient(90deg, var(--cmv2-red), rgba(250,50,10,0.25));
}

/* ── Envelope Icon ── */
.cmv2-icon-wrap {
    position: relative;
    width: 96px !important;
    height: 96px !important;
    margin: 0 auto 30px;
    flex-shrink: 0;
}

.cmv2-icon-halo {
    position: absolute;
    inset: -12px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(250,50,10,0.18) 0%, transparent 72%);
    animation: cmv2-breathe 3.5s ease-in-out infinite;
    pointer-events: none;
}

.cmv2-icon-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(250,50,10,0.18);
    animation: cmv2-ring-out 3s ease-out infinite;
    pointer-events: none;
    width: auto !important;
    height: auto !important;
    display: block !important;
}

.cmv2-icon-ring--1 { inset: -6px; animation-delay: 0s; }
.cmv2-icon-ring--2 { inset: -16px; opacity: 0.5; animation-delay: 0.9s; }

.cmv2-icon-circle {
    position: relative;
    z-index: 1;
    width: 96px !important;
    height: 96px !important;
    border-radius: 50% !important;
    background: rgba(250,50,10,0.09) !important;
    border: 1px solid rgba(250,50,10,0.22) !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    color: var(--cmv2-red);
    box-sizing: border-box;
}

.cmv2-icon-svg {
    width: 44px !important;
    height: 44px !important;
    display: block !important;
    flex-shrink: 0;
}

.cmv2-check-path {
    stroke-dasharray: 14;
    stroke-dashoffset: 14;
    animation: cmv2-draw 0.45s 0.9s ease forwards;
}

/* ── Text ── */
.cmv2-heading {
    font-family: 'Playfair Display', serif !important;
    font-size: 30px !important;
    font-weight: 800 !important;
    color: var(--cmv2-text) !important;
    letter-spacing: -0.4px;
    line-height: 1.18 !important;
    margin: 0 0 12px !important;
}

.cmv2-body {
    font-size: 17px !important;
    font-weight: 400 !important;
    color: var(--cmv2-muted) !important;
    line-height: 1.68 !important;
    margin: 0 0 28px !important;
}

/* ── Alert ── */
.cmv2-alert {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    background: rgba(250,50,10,0.07) !important;
    border: 1px solid rgba(250,50,10,0.18) !important;
    border-radius: 10px;
    padding: 12px 14px;
    text-align: left;
    margin-bottom: 20px;
    box-sizing: border-box;
    /* Constrain width to match the button */
    width: auto;
    max-width: 65% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.cmv2-alert-icon {
    flex-shrink: 0;
    width: 16px !important;
    height: 16px !important;
    color: var(--cmv2-red);
    margin-top: 1px;
    display: flex;
    align-items: center;
}

.cmv2-alert-icon svg {
    width: 16px !important;
    height: 16px !important;
    display: block !important;
}

.cmv2-alert strong {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--cmv2-red) !important;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 3px !important;
}

.cmv2-alert span {
    font-size: 13px !important;
    color: var(--cmv2-muted) !important;
    line-height: 1.5;
}

/* ── Button — sized to match the alert box, not full screen-width ── */
.cmv2-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px;
    background: var(--cmv2-red) !important;
    color: #ffffff !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 14px 32px !important;
    border-radius: 9px !important;
    text-decoration: none !important;
    /* Constrained width, centered */
    width: 65% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
    box-shadow: 0 4px 22px rgba(250,50,10,0.28) !important;
    letter-spacing: 0.01em;
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
    margin-bottom: 20px;
    border: none !important;
}

.cmv2-btn svg {
    width: 15px !important;
    height: 15px !important;
    display: block !important;
    flex-shrink: 0;
}

.cmv2-btn:hover {
    background: var(--cmv2-red-hover) !important;
    box-shadow: 0 6px 30px rgba(250,50,10,0.44) !important;
    transform: translateY(-2px);
    color: #fff !important;
    text-decoration: none !important;
}

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

/* ── Footer note ── */
.cmv2-footer-note {
    font-size: 12px !important;
    color: rgba(240, 240, 240, 0.62) !important;
    line-height: 1.5;
    margin: 0 !important;
}

/* ── Keyframes ── */
@keyframes cmv2-rise {
    from { opacity: 0; transform: translateY(22px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes cmv2-pulse {
    0%, 100% { opacity: 0; transform: scale(1); }
    45%       { opacity: 0.55; transform: scale(1.08); }
}
@keyframes cmv2-breathe {
    0%, 100% { opacity: 0.55; transform: scale(1); }
    50%       { opacity: 1; transform: scale(1.06); }
}
@keyframes cmv2-ring-out {
    0%   { opacity: 0.55; transform: scale(0.96); }
    100% { opacity: 0; transform: scale(1.18); }
}
@keyframes cmv2-draw {
    to { stroke-dashoffset: 0; }
}

/* ── Mobile ── */
@media (max-width: 520px) {
    .cmv2-card    { padding: 34px 22px !important; }
    .cmv2-heading { font-size: 25px !important; }
    .cmv2-step span { font-size: 9.5px !important; }
    .cmv2-connector { width: 28px; }
}