/* ======================== WEYUU SERVICE PAGES  -  SHARED CSS ======================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --black: #0a0a0a;
    --white: #ffffff;
    --accent: #3b82f6;
    --accent-dark: #2563eb;
    --coral: #e84c2e;
    --text-dark: #1a1a1a;
    --text-mid: #444;
    --text-light: #777;
    --bg-light: #ffffff;
    --border: rgba(0,0,0,0.07);
}

@font-face {
    font-family: 'PP Neue Montreal';
    font-style: normal;
    font-weight: 100;
    font-display: swap;
    src: url('../ppneuemontreal-thin.otf') format('opentype');
}

@font-face {
    font-family: 'PP Neue Montreal';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../ppneuemontreal-book.otf') format('opentype');
}

@font-face {
    font-family: 'PP Neue Montreal';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../ppneuemontreal-medium.otf') format('opentype');
}

@font-face {
    font-family: 'PP Neue Montreal';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../ppneuemontreal-bold.otf') format('opentype');
}

@font-face {
    font-family: 'PP Neue Montreal';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../ppneuemontreal-italic.otf') format('opentype');
}

@font-face {
    font-family: 'PP Neue Montreal';
    font-style: italic;
    font-weight: 600;
    font-display: swap;
    src: url('../ppneuemontreal-semibolditalic.otf') format('opentype');
}

html { scroll-behavior: smooth; }

body {
    font-family: 'PP Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: var(--white);
    color: var(--text-dark);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    position: relative;
}

body::before,
body::after {
    content: '';
    position: fixed;
    border-radius: 50%;
    filter: blur(100px);
    pointer-events: none;
    z-index: -1;
    will-change: transform;
    contain: layout style;
}

body::before {
    top: 10%;
    left: -10%;
    width: 60%;
    height: 50%;
    background:
        radial-gradient(ellipse at 40% 35%, rgba(190, 140, 255, 0.18) 0%, transparent 60%),
        radial-gradient(ellipse at 70% 60%, rgba(80, 190, 255, 0.14) 0%, transparent 55%);
    animation: globalGradientDrift1 25s ease-in-out infinite alternate;
}

body::after {
    bottom: 5%;
    right: -10%;
    width: 55%;
    height: 55%;
    background:
        radial-gradient(ellipse at 50% 40%, rgba(255, 170, 100, 0.16) 0%, transparent 60%),
        radial-gradient(ellipse at 30% 55%, rgba(130, 240, 200, 0.13) 0%, transparent 55%);
    animation: globalGradientDrift2 30s ease-in-out infinite alternate;
}

@keyframes globalGradientDrift1 {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(5%, 8%) scale(1.05); }
    100% { transform: translate(-3%, -5%) scale(0.97); }
}

@keyframes globalGradientDrift2 {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-4%, -6%) scale(1.03); }
    100% { transform: translate(3%, 4%) scale(0.98); }
}

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

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

/* ---- Nav ---- */
.sp-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 2rem;
    background: rgba(255,255,255,0.35);
    backdrop-filter: blur(40px) saturate(2);
    -webkit-backdrop-filter: blur(40px) saturate(2);
    border-bottom: 1px solid rgba(255,255,255,0.3);
    box-shadow: 0 1px 3px rgba(0,0,0,0.03),
               inset 0 1px 0 rgba(255,255,255,0.4);
}

.sp-nav-back {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--type-caption);
    color: var(--text-mid);
    transition: color 0.2s;
}
.sp-nav-back svg { width: 16px; height: 16px; }
.sp-nav-back:hover { color: var(--text-dark); }

.sp-nav-logo img { height: 22px; width: auto; }

.sp-nav-cta {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.3rem;
    background: var(--accent);
    color: #fff;
    font-size: var(--type-caption);
    font-weight: 500;
    border-radius: 100px;
    transition: background 0.2s;
}
.sp-nav-cta:hover { opacity: 0.82; }

/* ---- Hero ---- */
.sp-hero {
    background: transparent;
    padding: 10rem 2rem 5rem;
    text-align: center;
    position: relative;
    overflow: visible;
}

.sp-hero::before {
    content: '';
    position: absolute;
    top: -20%;
    left: 20%;
    width: 60%;
    height: 140%;
    border-radius: 50%;
    background:
        radial-gradient(ellipse at 40% 30%, rgba(80, 170, 255, 0.2) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 60%, rgba(190, 140, 255, 0.16) 0%, transparent 50%);
    filter: blur(70px);
    pointer-events: none;
}

.sp-hero-label {
    display: inline-block;
    font-size: var(--type-eyebrow);
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 1.2rem;
    position: relative;
    z-index: 1;
}

.sp-hero h1 {
    font-size: clamp(2.4rem, 6vw, 4rem);
    font-weight: 300;
    color: var(--text-dark);
    letter-spacing: -2px;
    line-height: 1.1;
    max-width: 760px;
    margin: 0 auto 1.5rem;
    position: relative;
    z-index: 1;
}

.sp-hero-sub {
    font-size: var(--type-body-lg);
    color: var(--text-mid);
    max-width: 560px;
    margin: 0 auto 2.5rem;
    line-height: 1.7;
    position: relative;
    z-index: 1;
}

.sp-cta-group {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}

.sp-btn-primary {
    display: inline-flex;
    align-items: center;
    padding: 0.85rem 2rem;
    background: var(--accent);
    color: #fff;
    font-size: var(--type-body-sm);
    font-weight: 500;
    border-radius: 100px;
    transition: transform 0.2s, opacity 0.2s;
}
.sp-btn-primary:hover {
    transform: translateY(-2px);
    opacity: 0.85;
}

.sp-btn-secondary {
    display: inline-flex;
    align-items: center;
    padding: 0.85rem 2rem;
    border: 1.5px solid rgba(0,0,0,0.15);
    color: var(--text-dark);
    font-size: var(--type-body-sm);
    font-weight: 400;
    border-radius: 100px;
    transition: border-color 0.2s, transform 0.2s, opacity 0.2s;
    position: relative;
    z-index: 1;
}
.sp-btn-secondary:hover { transform: translateY(-1px); opacity: 0.7; }

/* ---- Container ---- */
.sp-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 2rem;
}

/* ---- Sections ---- */
.sp-section {
    padding: 5rem 2rem;
}

.sp-section-dark {
    background: transparent;
    padding: 5rem 2rem;
}

.sp-section-grey {
    background: transparent;
    padding: 5rem 2rem;
}

.sp-section-title {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 600;
    letter-spacing: -0.8px;
    line-height: 1.2;
    margin-bottom: 1rem;
}

.sp-section-sub {
    font-size: var(--type-body);
    color: var(--text-mid);
    max-width: 580px;
    line-height: 1.7;
    margin-bottom: 3rem;
}

.sp-section-dark .sp-section-title { color: var(--text-dark); }
.sp-section-dark .sp-section-sub { color: var(--text-mid); }

body.dark .sp-section,
body.dark .sp-section-dark,
body.dark .sp-section-grey {
    background: transparent;
}

body.dark .sp-section-title,
body.dark .sp-section-sub,
body.dark .sp-hero h1,
body.dark .sp-hero-sub,
body.dark .sp-hero-label,
body.dark .sp-card h3,
body.dark .sp-card p,
body.dark .sp-card-dark h3,
body.dark .sp-card-dark p,
body.dark .sp-card-num,
body.dark .sp-link-pill,
body.dark .sp-faq-q,
body.dark .sp-faq-a {
    color: #f4f7fb;
}

body.dark .sp-hero {
    background: transparent;
}

body.dark .sp-card {
    background: rgba(20, 24, 34, 0.75);
    border-color: rgba(255, 255, 255, 0.06);
}

body.dark .sp-card-dark {
    background: rgba(10, 12, 18, 0.92);
    border-color: rgba(255, 255, 255, 0.08);
}

body.dark .sp-btn-primary,
body.dark .sp-btn-secondary {
    color: #fff;
}

body.dark .sp-btn-secondary {
    border-color: rgba(255, 255, 255, 0.2);
}

/* ---- Grid Cards ---- */
.sp-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

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

.sp-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 2rem;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.4s ease;
    position: relative;
    overflow: hidden;
}

.sp-card::after {
    content: '';
    position: absolute;
    bottom: -20%;
    right: -20%;
    width: 65%;
    height: 65%;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(40px);
    opacity: 0.7;
    transition: opacity 0.4s ease;
    background: radial-gradient(circle, rgba(59, 130, 246, 0.4) 0%, rgba(100, 200, 255, 0.2) 40%, transparent 70%);
}

.sp-card:hover::after {
    opacity: 1;
}

.sp-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
}

.sp-card-dark {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 2rem;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.4s ease;
    position: relative;
    overflow: hidden;
}

.sp-card-dark::after {
    content: '';
    position: absolute;
    bottom: -20%;
    right: -20%;
    width: 65%;
    height: 65%;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(40px);
    opacity: 0.7;
    transition: opacity 0.4s ease;
    background: radial-gradient(circle, rgba(59, 130, 246, 0.4) 0%, rgba(100, 200, 255, 0.2) 40%, transparent 70%);
}

.sp-card-dark:hover::after {
    opacity: 1;
}

.sp-card-dark:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
}

/* Card gradient color variants */
.sp-card--blue::after {
    background: radial-gradient(circle, rgba(59, 130, 246, 0.45) 0%, rgba(100, 200, 255, 0.25) 40%, transparent 70%);
}
.sp-card--orange::after {
    background: radial-gradient(circle, rgba(255, 180, 100, 0.5) 0%, rgba(255, 140, 160, 0.25) 40%, transparent 70%);
}
.sp-card--purple::after {
    background: radial-gradient(circle, rgba(180, 130, 255, 0.45) 0%, rgba(255, 140, 200, 0.25) 40%, transparent 70%);
}
.sp-card--green::after {
    background: radial-gradient(circle, rgba(100, 220, 180, 0.45) 0%, rgba(80, 180, 255, 0.25) 40%, transparent 70%);
}

.sp-card-num {
    font-size: var(--type-eyebrow);
    font-weight: 500;
    color: var(--accent);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 0.8rem;
}

.sp-card h3 {
    font-size: var(--type-body-lg);
    font-weight: 600;
    margin-bottom: 0.6rem;
    letter-spacing: -0.3px;
}

.sp-card-dark h3 { color: var(--text-dark); }

.sp-card p, .sp-card-dark p {
    font-size: var(--type-body-sm);
    color: var(--text-mid);
    line-height: 1.65;
}

.sp-card-dark p { color: var(--text-mid); }

/* ---- Process Steps List ---- */
.sp-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-left: 2px solid var(--border);
    margin-left: 1rem;
}

.sp-step {
    position: relative;
    padding: 0 0 2.5rem 2.5rem;
}
.sp-step:last-child { padding-bottom: 0; }

.sp-step::before {
    content: '';
    position: absolute;
    left: -7px;
    top: 4px;
    width: 12px;
    height: 12px;
    background: var(--accent);
    border-radius: 50%;
    border: 2px solid var(--white);
    box-shadow: 0 0 0 2px var(--accent);
}

.sp-step-num {
    font-size: var(--type-eyebrow);
    color: var(--accent);
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 0.4rem;
}

.sp-step h3 {
    font-size: var(--type-body-lg);
    font-weight: 600;
    margin-bottom: 0.4rem;
    letter-spacing: -0.3px;
}

.sp-step p {
    font-size: var(--type-body-sm);
    color: var(--text-mid);
    line-height: 1.65;
}

/* ---- FAQ ---- */
.sp-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid var(--border);
}

.sp-faq-item {
    border-bottom: 1px solid var(--border);
    padding: 1.5rem 0;
}

.sp-faq-q {
    font-size: var(--type-body);
    font-weight: 500;
    letter-spacing: -0.2px;
    margin-bottom: 0.7rem;
    color: var(--text-dark);
}

.sp-faq-a {
    font-size: var(--type-body-sm);
    color: var(--text-mid);
    line-height: 1.7;
}

/* ---- Internal Link Bar ---- */
.sp-links-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.sp-link-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.1rem;
    background: var(--bg-light);
    border: 1px solid var(--border);
    border-radius: 100px;
    font-size: var(--type-caption);
    color: var(--text-dark);
    transition: background 0.2s, border-color 0.2s;
}
.sp-link-pill:hover {
    transform: translateY(-1px);
    opacity: 0.75;
}

/* ---- CTA Banner ---- */
.sp-cta-banner {
    background: var(--accent);
    padding: 4rem 2rem;
    text-align: center;
    border-radius: 20px;
    margin: 0 auto;
    max-width: 900px;
}

.sp-cta-banner h2 {
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: 600;
    color: #fff;
    letter-spacing: -0.8px;
    margin-bottom: 0.8rem;
}

.sp-cta-banner p {
    font-size: var(--type-body);
    color: rgba(255,255,255,0.8);
    margin-bottom: 2rem;
}

.sp-btn-white {
    display: inline-flex;
    align-items: center;
    padding: 0.85rem 2rem;
    background: #fff;
    color: var(--accent);
    font-size: var(--type-body-sm);
    font-weight: 600;
    border-radius: 100px;
    transition: transform 0.2s, box-shadow 0.2s;
}
.sp-btn-white:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

/* ---- Footer strip ---- */
.sp-footer {
    background: transparent;
    padding: 2.5rem 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    border-top: 1px solid var(--border);
}

.sp-footer-copy {
    font-size: var(--type-body);
    color: var(--text-mid);
}

.sp-footer-links {
    display: flex;
    gap: 1.5rem;
}

.sp-footer-links a {
    font-size: var(--type-caption);
    color: var(--text-mid);
    transition: color 0.2s;
}
.sp-footer-links a:hover { color: var(--text-dark); }

/* ---- Stats row ---- */
.sp-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 4rem;
}

.sp-stat {
    padding: 2rem 1.5rem;
    border-right: 1px solid var(--border);
    text-align: center;
}
.sp-stat:last-child { border-right: none; }

.sp-stat-val {
    font-size: 2rem;
    font-weight: 600;
    color: var(--accent);
    letter-spacing: -1px;
    line-height: 1;
    margin-bottom: 0.4rem;
}

.sp-stat-label {
    font-size: var(--type-caption);
    color: var(--text-mid);
}

/* ========= RESPONSIVE ========= */
@media (max-width: 768px) {
    .sp-nav { padding: 0.8rem 1.25rem; }
    .sp-nav-back span { display: none; }
    .sp-nav-back { min-width: 44px; min-height: 44px; justify-content: center; }
    .sp-nav-cta { min-height: 44px; -webkit-tap-highlight-color: transparent; }

    .sp-hero { padding: 7rem 1.25rem 3rem; }
    .sp-hero h1 { font-size: clamp(1.8rem, 6vw, 2.8rem); letter-spacing: -1px; overflow-wrap: break-word; word-break: normal; hyphens: none; }
    .sp-hero-sub { font-size: var(--type-body); line-height: 1.65; }
    .sp-hero-label { font-size: var(--type-eyebrow); }

    .sp-section, .sp-section-dark, .sp-section-grey { padding: 3rem 1.25rem; }
    .sp-container { padding: 0 1.25rem; }

    .sp-section-title { font-size: clamp(1.3rem, 5vw, 2rem); }
    .sp-section-sub { font-size: var(--type-body-sm); margin-bottom: 2rem; }

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

    .sp-card, .sp-card-dark { padding: 1.5rem; border-radius: 16px; }
    .sp-card h3, .sp-card-dark h3 { font-size: var(--type-body); }
    .sp-card p, .sp-card-dark p { font-size: var(--type-body-sm); line-height: 1.6; }

    .sp-stats { grid-template-columns: repeat(2, 1fr); }
    .sp-stat:nth-child(2) { border-right: none; }
    .sp-stat:nth-child(3) { border-top: 1px solid var(--border); }
    .sp-stat:nth-child(4) { border-top: 1px solid var(--border); border-right: none; }
    .sp-stat { padding: 1.5rem 1rem; }
    .sp-stat-val { font-size: var(--type-h3); }
    .sp-stat-label { font-size: var(--type-caption); }

    .sp-steps { margin-left: 0.5rem; }
    .sp-step { padding: 0 0 2rem 2rem; }
    .sp-step h3 { font-size: var(--type-body); }
    .sp-step p { font-size: var(--type-body-sm); }

    .sp-faq-item { padding: 1.2rem 0; }
    .sp-faq-q { font-size: var(--type-body); }
    .sp-faq-a { font-size: var(--type-body-sm); }

    .sp-links-bar { gap: 0.5rem; }
    .sp-link-pill { font-size: var(--type-caption); padding: 0.45rem 0.9rem; min-height: 38px; }

    .sp-cta-banner { padding: 2.5rem 1.25rem; border-radius: 14px; }
    .sp-cta-banner h2 { font-size: clamp(1.3rem, 5vw, 1.8rem); }
    .sp-cta-banner p { font-size: var(--type-body-sm); }
    .sp-btn-white { min-height: 48px; }

    .sp-btn-primary, .sp-btn-secondary { 
        min-height: 48px; 
        -webkit-tap-highlight-color: transparent;
        font-size: var(--type-body-sm);
    }

    .sp-footer { flex-direction: column; align-items: flex-start; gap: 0.75rem; padding: 2rem 1.25rem; }
    .sp-footer-copy { font-size: var(--type-body); }
}

@media (max-width: 480px) {
    .sp-hero { padding: 6.5rem 1rem 2.5rem; }
    .sp-hero h1 { font-size: clamp(1.5rem, 7vw, 2.2rem); }
    .sp-hero-sub { font-size: var(--type-body-sm); }
    .sp-cta-group { flex-direction: column; align-items: center; width: 100%; }
    .sp-btn-primary, .sp-btn-secondary { width: 100%; max-width: 300px; justify-content: center; }

    .sp-stats { grid-template-columns: repeat(2, 1fr); }
    .sp-stat-val { font-size: 1.4rem; }

    .sp-section, .sp-section-dark, .sp-section-grey { padding: 2.5rem 1rem; }
    .sp-container { padding: 0 1rem; }

    .sp-card-num { font-size: var(--type-eyebrow); }

    /* Reduce background gradients on small devices */
    body::before,
    body::after {
        opacity: 0.4;
        animation: none;
    }

    .sp-hero::before {
        opacity: 0.5;
    }
}
