/* Swap Design site-wide CTA system.
   One shared skin; page templates keep their own copy and destinations. */
:root {
    --sd-cta-plum: #3b1b2b;
    --sd-cta-plum-mid: #1b1323;
    --sd-cta-ink: #0f101c;
    --sd-cta-border: rgba(255, 118, 62, .78);
    --sd-cta-text: #f8fafc;
    --sd-cta-muted: #b3c3d9;
}

/* All existing boxed CTA families: country, service, about, and services v2. */
body[class] [class*="-cta-panel"] {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    max-width: 980px !important;
    margin-left: auto;
    margin-right: auto;
    padding: clamp(2rem, 4vw, 3.4rem) clamp(1.15rem, 4.5vw, 3.7rem) !important;
    border: 1px solid transparent !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 9% 7%, rgba(255, 118, 62, .19), transparent 29%),
        linear-gradient(112deg, var(--sd-cta-plum) 0%, var(--sd-cta-plum-mid) 47%, var(--sd-cta-ink) 100%) padding-box,
        linear-gradient(135deg, rgba(255, 118, 62, .78), rgba(255, 62, 62, .45)) border-box !important;
    box-shadow: 0 22px 58px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .05);
    text-align: left !important;
}

body[class] [class*="-cta-panel"]::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255, 255, 255, .025), transparent 58%);
}

body[class] [class*="-cta-panel"]::after {
    content: '';
    position: absolute;
    z-index: -1;
    top: -136px;
    right: -64px;
    width: 230px;
    height: 230px;
    pointer-events: none;
    border: 1px solid rgba(255, 118, 62, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 16px rgba(255, 118, 62, .035), 0 0 0 32px rgba(255, 62, 62, .025);
}

body[class] [class*="-cta-panel"] > *,
[class*="--cta"] > * {
    position: relative;
    z-index: 1;
}

body[class] [class*="-cta-panel"] > .text-center,
body[class] [class*="-cta-panel"] .text-center {
    text-align: left !important;
}

body[class] [class*="-cta-panel"] .sd-kicker,
body[class] [class*="-cta-panel"] [class*="eyebrow"],
[class*="--cta"] .sd-blog-side-kicker {
    color: var(--secondary);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

body[class] [class*="-cta-panel"] h2,
body[class] [class*="-cta-panel"] h3,
[class*="--cta"] h2 {
    color: var(--white);
    font-weight: 800;
    letter-spacing: -.04em;
}

body[class] [class*="-cta-panel"] h2 span,
body[class] [class*="-cta-panel"] h3 span,
[class*="--cta"] h2 span {
    color: var(--secondary);
}

body[class] [class*="-cta-panel"] > p:not(.sd-kicker),
body[class] [class*="-cta-panel"] p:not(.sd-kicker),
[class*="--cta"] p {
    color: var(--sd-cta-muted);
    font-size: 16px;
    line-height: 1.6;
}

body[class] [class*="-cta-panel"] .mx-auto {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body[class] [class*="-cta-panel"] .sd-btn,
body[class] [class*="-cta-panel"] .sd-btn-accent,
[class*="--cta"] .sd-text-link {
    color: var(--white);
}

body[class] [class*="-cta-panel"] .sd-btn,
body[class] [class*="-cta-panel"] .sd-btn-accent {
    border-color: rgba(255, 210, 194, .42);
    background: linear-gradient(135deg, var(--accent), var(--secondary)) padding-box,
                linear-gradient(90deg, var(--accent), var(--secondary), var(--accent)) border-box;
    background-size: 100% 100%, 300% 100%;
    box-shadow: 0 8px 20px rgba(255, 62, 62, .17);
}

body[class] [class*="-cta-panel"] .sd-btn:hover,
body[class] [class*="-cta-panel"] .sd-btn-accent:hover,
body[class] [class*="-cta-panel"] .sd-btn:focus-visible,
body[class] [class*="-cta-panel"] .sd-btn-accent:focus-visible {
    color: var(--white);
    box-shadow: 0 12px 28px rgba(255, 62, 62, .25);
}

/* Blog project card is a compact CTA, not a newsletter or enquiry form. */
[class*="--cta"] {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid transparent !important;
    border-radius: 18px;
    background:
        radial-gradient(circle at 10% 7%, rgba(255, 118, 62, .14), transparent 31%),
        linear-gradient(112deg, var(--sd-cta-plum), var(--sd-cta-ink)) padding-box,
        linear-gradient(135deg, rgba(255, 118, 62, .65), rgba(255, 62, 62, .3)) border-box !important;
    box-shadow: 0 16px 38px rgba(0, 0, 0, .2);
}

[class*="--cta"]::before {
    content: '';
    position: absolute;
    z-index: -1;
    top: -86px;
    right: -58px;
    width: 160px;
    height: 160px;
    border: 1px solid rgba(255, 118, 62, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 12px rgba(255, 118, 62, .035);
    pointer-events: none;
}

[class*="--cta"] .sd-text-link {
    color: var(--secondary);
}

[class*="--cta"] .sd-text-link:hover,
[class*="--cta"] .sd-text-link:focus-visible {
    color: var(--white);
}

@media (max-width: 767.98px) {
    body[class] [class*="-cta-panel"] {
        border-radius: 16px !important;
        padding: 2rem 1.1rem !important;
    }

    body[class] [class*="-cta-panel"] .sd-btn,
    body[class] [class*="-cta-panel"] .sd-btn-accent {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    body[class] [class*="-cta-panel"] .sd-btn,
    body[class] [class*="-cta-panel"] .sd-btn-accent {
        width: 100%;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    body[class] [class*="-cta-panel"] .sd-btn,
    body[class] [class*="-cta-panel"] .sd-btn-accent {
        animation: none;
    }
}


/* Outlier CTA box on the FAQ page. */
.sd-faq-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid transparent !important;
    border-radius: 18px;
    background:
        radial-gradient(circle at 9% 7%, rgba(255, 118, 62, .15), transparent 31%),
        linear-gradient(112deg, var(--sd-cta-plum), var(--sd-cta-ink)) padding-box,
        linear-gradient(135deg, rgba(255, 118, 62, .65), rgba(255, 62, 62, .3)) border-box !important;
    box-shadow: 0 16px 38px rgba(0, 0, 0, .2);
}

.sd-faq-cta::after {
    content: '';
    position: absolute;
    z-index: -1;
    top: -86px;
    right: -58px;
    width: 160px;
    height: 160px;
    border: 1px solid rgba(255, 118, 62, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 12px rgba(255, 118, 62, .035);
    pointer-events: none;
}

.sd-faq-cta > * { position: relative; z-index: 1; }
.sd-faq-cta .sd-kicker { color: var(--secondary); font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.sd-faq-cta h2 { color: var(--white); font-weight: 800; letter-spacing: -.035em; }
.sd-faq-cta p { color: var(--sd-cta-muted); font-size: 16px; line-height: 1.6; }
.sd-faq-cta .sd-btn { color: var(--white); }

@media (max-width: 575.98px) {
    .sd-faq-cta { border-radius: 16px; }
}
