

:root {
    /* Colors */
    --color-primary: #06B6D4;
    --color-on-primary: #02222A;
    --color-secondary: #0891B2;
    --color-on-secondary: #E6FCFF;
    --color-accent: #22D3EE;
    --color-on-accent: #03222A;
    --color-background: #0A1320;
    --color-foreground: #E6F3FF;
    --color-card: #111E30;
    --color-card-foreground: #E6F3FF;
    --color-muted: #16253B;
    --color-muted-foreground: #9DB2CC;
    --color-border: #253650;
    --color-destructive: #EF4444;

    /* Typography */
    --font-heading: 'JetBrains Mono', sans-serif;
    --font-body: 'JetBrains Mono', sans-serif;

    /* Spacing */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 3.5rem;

    /* Border radius (archetype: Sharp Corporate) */
    --radius-sm: 0;
    --radius-md: 2px;
    --radius-lg: 3px;
    --radius-xl: 4px;
    --radius-full: 9999px;
    --btn-radius: 2px;
    --card-radius: 3px;

    /* Shadows (archetype: Sharp Corporate) */
    --shadow-sm: 0 1px 0 rgba(0,0,0,0.06);
    --shadow-md: 0 1px 3px rgba(0,0,0,0.12);
    --shadow-lg: 0 4px 12px rgba(0,0,0,0.12);
    --shadow-xl: 0 8px 24px rgba(0,0,0,0.14);

    /* Component style tokens (archetype: Sharp Corporate) */
    --border-width: 1px;
    --btn-hover-transform: none;
    --btn-hover-shadow: none;
    --btn-weight: 700;
    --btn-text-transform: uppercase;
    --btn-letter-spacing: 0.05em;
    --card-hover-transform: none;
    --card-hover-shadow: var(--shadow-md);
    --hero-bg: var(--color-background);
    --hero-align: left;
    --heading-weight: 800;
    --heading-transform: none;
    --heading-spacing: -0.02em;
    --body-line-height: 1.65;
    --navbar-bg: var(--color-card);
    --navbar-border: 2px solid var(--color-foreground);

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 200ms ease;
    --transition-slow: 300ms ease;

    /* Layout */
    --max-width: 1140px;
    --container-padding: 1.5rem;
}

/* ── Base ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
    font-family: var(--font-body);
    color: var(--color-foreground);
    background-color: var(--color-background);
    line-height: var(--body-line-height);
    font-size: 1rem;
}
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: var(--heading-weight);
    line-height: 1.2;
    letter-spacing: var(--heading-spacing);
    text-transform: var(--heading-transform);
    color: var(--color-foreground);
}
h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
a { color: var(--color-primary); text-decoration: none; transition: color var(--transition-fast); }
a:hover { color: var(--color-accent); }
img { max-width: 100%; height: auto; display: block; }

/* ── Container ── */
.container {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

/* ── Buttons ── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: var(--btn-radius);
    font-family: var(--font-heading);
    font-weight: var(--btn-weight);
    font-size: 1rem;
    text-transform: var(--btn-text-transform);
    letter-spacing: var(--btn-letter-spacing);
    cursor: pointer;
    border: none;
    transition: all var(--transition-base);
    text-decoration: none;
}
.btn:hover { transform: var(--btn-hover-transform); box-shadow: var(--btn-hover-shadow); }
.btn:active { transform: translateY(0); }
.btn-primary {
    background: var(--color-primary);
    color: var(--color-on-primary);
}
.btn-primary:hover { background: var(--color-secondary); color: var(--color-on-secondary); }
.btn-accent {
    background: var(--color-accent);
    color: var(--color-on-accent);
}
.btn-outline {
    background: transparent;
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
}
.btn-outline:hover { background: var(--color-primary); color: var(--color-on-primary); }

/* ── Cards ── */
.card {
    background: var(--color-card);
    color: var(--color-card-foreground);
    border: var(--border-width) solid var(--color-border);
    border-radius: var(--card-radius);
    padding: var(--space-xl);
    transition: all var(--transition-base);
    box-shadow: var(--shadow-sm);
}
.card:hover { box-shadow: var(--card-hover-shadow); transform: var(--card-hover-transform); }

/* ── Hero ── */
.hero {
    padding: var(--space-3xl) 0;
    text-align: var(--hero-align);
    background: var(--hero-bg);
}
.hero h1 {
    margin-bottom: var(--space-lg);
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
.hero p {
    font-size: 1.25rem;
    color: var(--color-muted-foreground);
    max-width: 600px;
    margin: 0 auto var(--space-xl);
}

/* ── Section ── */
.section {
    padding: var(--space-3xl) 0;
}
.section-header {
    text-align: center;
    margin-bottom: var(--space-2xl);
}
.section-header h2 { margin-bottom: var(--space-sm); }
.section-header p { color: var(--color-muted-foreground); font-size: 1.1rem; max-width: 600px; margin: 0 auto; }

/* ── Grid ── */
.grid { display: grid; gap: var(--space-xl); }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* ── Navigation ── */
.navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--container-padding);
    max-width: var(--max-width);
    margin: 0 auto;
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--navbar-bg);
    backdrop-filter: blur(10px);
    border-bottom: var(--navbar-border);
}
.navbar-brand {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--color-primary);
}
.navbar-links { display: flex; gap: var(--space-lg); list-style: none; }
.navbar-links a {
    color: var(--color-foreground);
    font-weight: 500;
    transition: color var(--transition-fast);
}
.navbar-links a:hover { color: var(--color-primary); }

/* ── Footer ── */
.footer {
    background: var(--color-foreground);
    color: var(--color-muted);
    padding: var(--space-3xl) 0 var(--space-xl);
}
.footer a { color: var(--color-muted); }
.footer a:hover { color: var(--color-on-primary); }
.footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-2xl); }
.footer-bottom {
    margin-top: var(--space-2xl);
    padding-top: var(--space-lg);
    border-top: 1px solid rgba(255,255,255,0.1);
    text-align: center;
    color: var(--color-muted-foreground);
    font-size: 0.875rem;
}

/* ── Article ── */
.article {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--space-2xl) var(--container-padding);
}
.article h1 { margin-bottom: var(--space-lg); }
.article h2 { margin-top: var(--space-2xl); margin-bottom: var(--space-md); }
.article h3 { margin-top: var(--space-xl); margin-bottom: var(--space-sm); }
.article p { margin-bottom: var(--space-md); }
.article ul, .article ol { margin: var(--space-md) 0; padding-left: var(--space-xl); }
.article li { margin-bottom: var(--space-xs); }
.article img {
    border-radius: var(--radius-lg);
    margin: var(--space-xl) 0;
    box-shadow: var(--shadow-md);
}
.article blockquote {
    border-left: 4px solid var(--color-primary);
    padding: var(--space-md) var(--space-lg);
    margin: var(--space-xl) 0;
    background: var(--color-muted);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    font-style: italic;
}
.article table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--space-xl) 0;
}
.article th, .article td {
    padding: var(--space-sm) var(--space-md);
    border: 1px solid var(--color-border);
    text-align: left;
}
.article th {
    background: var(--color-muted);
    font-weight: 600;
}

/* ── FAQ ── */
.faq-item {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-sm);
    overflow: hidden;
}
.faq-question {
    padding: var(--space-md) var(--space-lg);
    font-weight: 600;
    cursor: pointer;
    background: var(--color-card);
}
.faq-answer {
    padding: 0 var(--space-lg) var(--space-md);
    color: var(--color-muted-foreground);
}

/* ── Badges / Tags ── */
.badge {
    display: inline-block;
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--color-muted);
    color: var(--color-foreground);
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .navbar-links { display: none; /* hamburger menu needed */ }
    .hero { padding: var(--space-2xl) 0; }
    .grid-3 { grid-template-columns: 1fr; }
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .grid-2 { grid-template-columns: 1fr; }
    .grid-4 { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr; }
}

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

/* ══════════════════════════════════════════════════════════════════
 * chrome.css
 * Site skin : header, nav, footer, article, cards, forms, CTA.
 * Ce fichier est STATIQUE entre les sites. Les couleurs/fonts sont
 * dans style.css (generated design system, CSS vars).
 * ══════════════════════════════════════════════════════════════════ */

/* ── Header ── */
.site-header{position:sticky;top:0;z-index:100;background:var(--navbar-bg, var(--color-background));backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid rgba(148,163,184,0.24);transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}
.site-header.scrolled{border-bottom-color:rgba(148,163,184,0.3);box-shadow:0 8px 22px -16px rgba(2,6,23,0.85)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:0.9rem var(--container-padding);max-width:var(--max-width);margin:0 auto;gap:1rem}
.logo{font-family:var(--font-heading);font-size:1.3rem;font-weight:800;color:var(--color-foreground);text-decoration:none;display:inline-flex;align-items:center;gap:0.6rem;letter-spacing:-0.02em}
.logo:hover{color:var(--color-primary)}
.logo-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));display:inline-flex;align-items:center;justify-content:center;color:var(--color-on-primary);font-weight:800;font-size:0.95rem;letter-spacing:0.02em;box-shadow:0 4px 14px -4px color-mix(in srgb,var(--color-primary) 55%,transparent);position:relative;overflow:hidden}
.logo-icon::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.25),transparent 45%);mix-blend-mode:overlay;pointer-events:none}
.nav{display:flex;align-items:center;gap:0.15rem}
.site-header .nav a:not(.btn){padding:0.55rem 1rem;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:500;color:var(--color-foreground) !important;text-decoration:none;transition:background-color var(--transition-base),color var(--transition-base);position:relative;opacity:1 !important;visibility:visible !important;white-space:nowrap}
.site-header .nav a:not(.btn):hover{color:var(--color-primary) !important;background:color-mix(in srgb, var(--color-primary) 8%, transparent)}
.site-header .nav a.active:not(.btn){color:var(--color-primary) !important;font-weight:700}
.site-header .nav a.active::before{content:"";position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);width:18px;height:2px;border-radius:2px;background:var(--color-primary)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:0.5rem;color:var(--color-foreground);z-index:110}
.nav-toggle svg{width:24px;height:24px}
.nav-overlay{position:fixed;inset:0;background:rgba(15,23,42,0.45);backdrop-filter:blur(4px);z-index:104;opacity:0;pointer-events:none;transition:opacity .25s ease}
.nav-overlay.open{opacity:1;pointer-events:auto}

/* ── Hero base ── */
.hero{position:relative;overflow:hidden;padding:clamp(3.5rem,8vw,6rem) 0 clamp(3rem,6vw,5rem);isolation:isolate}
.hero .container{position:relative;z-index:2}
.hero-badge{display:inline-flex;align-items:center;gap:0.5rem;padding:0.4rem 0.95rem;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-primary);font-size:0.8rem;font-weight:600;margin-bottom:1.25rem;border:1px solid color-mix(in srgb,var(--color-primary) 18%,transparent);letter-spacing:0.02em}
.hero-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 0 color-mix(in srgb,var(--color-primary) 55%,transparent);animation:pulse-dot 2s ease-in-out infinite}
.hero h1{max-width:18ch;margin-bottom:1.25rem;letter-spacing:-0.03em}
.hero-lede{font-size:clamp(1.05rem,1.8vw,1.2rem);color:var(--color-muted-foreground);max-width:60ch;margin-bottom:2rem;line-height:1.7}
.hero-actions{display:flex;gap:0.9rem;flex-wrap:wrap;align-items:center}

/* ── Sections ── */
.section{padding:clamp(3rem,6vw,5rem) 0}
.section-alt{background:var(--color-muted)}
.section-header{text-align:center;max-width:720px;margin:0 auto 2.5rem}
.section-header .overline{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--color-primary);margin-bottom:0.75rem}
.section-header h2{margin-bottom:0.9rem;letter-spacing:-0.02em}
.section-header p{color:var(--color-muted-foreground);font-size:1.05rem;line-height:1.7}

/* ── Grids ── */
.grid{display:grid;gap:var(--space-xl)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.85rem 1.6rem;border-radius:var(--radius-md);font-family:var(--font-heading);font-weight:600;font-size:0.95rem;line-height:1;cursor:pointer;border:none;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base),color var(--transition-base);text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 4px 14px -4px color-mix(in srgb,var(--color-primary) 65%,transparent)}
.btn-primary:hover{background:var(--color-secondary);color:var(--color-on-secondary);transform:translateY(-1px);box-shadow:0 8px 20px -6px color-mix(in srgb,var(--color-primary) 65%,transparent)}
.btn-outline{background:transparent;color:var(--color-foreground);border:1.5px solid var(--color-border)}
.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 5%,transparent)}
.btn-ghost{background:transparent;color:var(--color-foreground);padding-left:0.5rem;padding-right:0.5rem}
.btn-ghost:hover{color:var(--color-primary)}
.btn-cta{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-on-primary);padding:1rem 2rem;border-radius:var(--radius-full);font-weight:700;box-shadow:0 6px 24px -6px color-mix(in srgb,var(--color-primary) 70%,transparent);position:relative;overflow:hidden}
.btn-cta::after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.25),transparent);transition:left .6s ease}
.btn-cta:hover::after{left:100%}
.btn-cta:hover{transform:translateY(-2px);box-shadow:0 10px 30px -8px color-mix(in srgb,var(--color-primary) 75%,transparent)}
.btn-cta-white{background:var(--color-card);color:var(--color-primary);padding:0.9rem 1.8rem;border-radius:var(--radius-full);font-weight:700;box-shadow:0 6px 24px -8px rgba(15,23,42,0.25)}
.btn-cta-white:hover{transform:translateY(-2px);color:var(--color-secondary);box-shadow:0 10px 30px -8px rgba(15,23,42,0.3)}
.btn-arrow{transition:transform var(--transition-base);display:inline-block}
.btn:hover .btn-arrow{transform:translateX(3px)}

/* ── Cards ── */
.card{background:var(--color-card);color:var(--color-card-foreground);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1),border-color .3s ease;position:relative}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 40px -16px rgba(15,23,42,0.18);border-color:color-mix(in srgb,var(--color-primary) 30%,var(--color-border))}
.feature-card{text-align:left;padding:2rem}
.feature-card .feature-icon{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 12%,transparent),color-mix(in srgb,var(--color-primary) 4%,transparent));display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.1rem;color:var(--color-primary);position:relative}
.feature-card .feature-icon svg{width:26px;height:26px;stroke-width:1.8}
.feature-card .feature-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;margin-bottom:0.5rem;letter-spacing:-0.01em}
.feature-card .feature-desc{color:var(--color-muted-foreground);line-height:1.7;font-size:0.95rem}
/* Generic fallbacks so .feature-title/.feature-desc/.feature-icon stay readable outside .feature-card scope (benefits, guarantees, about, etc.) */
.feature-icon{color:var(--color-primary)}
.feature-icon svg{width:26px;height:26px;stroke-width:1.8}
.feature-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;letter-spacing:-0.01em;color:inherit}
.feature-desc{color:var(--color-muted-foreground);line-height:1.7;font-size:0.95rem}

/* ── Stats ── */
.stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:2rem;padding:2rem 0;text-align:center}
.stat-item .stat-number,.stat-highlight .stat-number{font-family:var(--font-heading);font-size:clamp(2rem,3.5vw,2.8rem);font-weight:800;color:var(--color-primary);line-height:1.05;letter-spacing:-0.02em;display:block;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.stat-item .stat-label,.stat-highlight .stat-label{font-size:0.88rem;color:var(--color-muted-foreground);margin-top:0.3rem;display:block}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem;margin:2rem 0}
.stat-highlight{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.75rem 1.25rem;text-align:center;transition:transform .3s ease,box-shadow .3s ease}
.stat-highlight:hover{transform:translateY(-3px);box-shadow:0 12px 32px -12px rgba(15,23,42,0.15)}

/* ── CTA banner ── */
.cta-banner{position:relative;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));padding:clamp(2.5rem,5vw,4rem) clamp(1.5rem,4vw,3rem);border-radius:var(--radius-xl);text-align:center;overflow:hidden;isolation:isolate;box-shadow:0 24px 60px -24px color-mix(in srgb,var(--color-primary) 60%,transparent)}
.cta-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 120%,rgba(255,255,255,0.18),transparent 40%),radial-gradient(circle at 80% -20%,rgba(255,255,255,0.12),transparent 45%);pointer-events:none;z-index:0}
.cta-banner > *{position:relative;z-index:1}
.cta-banner h3{color:#fff;font-size:clamp(1.4rem,2.6vw,2rem);margin-bottom:0.7rem;letter-spacing:-0.02em}
.cta-banner p{color:rgba(255,255,255,0.9);margin-bottom:1.5rem;font-size:1.05rem;max-width:48ch;margin-left:auto;margin-right:auto}

/* ── Testimonials ── */
.testimonial-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;position:relative;box-shadow:0 4px 20px -8px rgba(15,23,42,0.08);transition:transform .3s ease,box-shadow .3s ease}
.testimonial-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px -16px rgba(15,23,42,0.15)}
.testimonial-card::before{content:"\201C";position:absolute;top:-18px;left:18px;font-size:5rem;color:var(--color-primary);opacity:0.12;font-family:Georgia,serif;line-height:1}
.testimonial-card .stars{color:#f59e0b;font-size:0.95rem;margin-bottom:0.65rem;letter-spacing:0.1em}
.review-card .stars{color:#facc15;font-size:1rem;margin-bottom:0.75rem;letter-spacing:0.08em}
/* ── Reviews 3-column grid ── */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
/* ── Vertical review card (3-col grid) ── */
.review-card-v{display:flex;flex-direction:column;gap:0.6rem;padding:1.5rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:box-shadow .3s ease,border-color .3s ease;height:100%}
.review-card-v:hover{border-color:color-mix(in srgb,var(--color-primary) 25%,var(--color-border));box-shadow:0 8px 24px -12px rgba(15,23,42,0.18)}
.review-card-v .stars{color:#facc15;font-size:1.05rem;letter-spacing:0.08em;line-height:1;flex-shrink:0}
.review-card-v .review-title{font-weight:700;font-size:0.97rem;color:var(--color-foreground);line-height:1.35}
.review-card-v .review-text{color:var(--color-muted-foreground);line-height:1.65;font-size:0.9rem;flex:1}
.review-card-v .review-footer{margin-top:auto;padding-top:0.85rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:0.2rem}
.review-card-v .reviewer-name{font-weight:700;font-size:0.88rem;color:var(--color-foreground)}
.review-card-v .review-product{font-size:0.75rem;color:var(--color-muted-foreground);font-style:italic}
.review-card-v .review-date{font-size:0.72rem;color:var(--color-muted-foreground)}
@media(max-width:900px){.reviews-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.reviews-grid{grid-template-columns:1fr}}
.testimonial-card p{font-size:1rem;line-height:1.7;margin-bottom:1.25rem;color:var(--color-foreground)}
.testimonial-card cite{display:flex;align-items:center;gap:0.75rem;font-style:normal;font-weight:600;color:var(--color-foreground)}
.testimonial-card .reviewer-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));display:flex;align-items:center;justify-content:center;color:var(--color-on-primary);font-weight:700;flex-shrink:0}
.testimonial-card .reviewer-role{font-weight:400;font-size:0.82rem;color:var(--color-muted-foreground);display:block;margin-top:2px}

/* ── FAQ ── */
.faq-section{max-width:760px;margin:2rem auto 0}
.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:0.75rem;overflow:hidden;transition:box-shadow .3s ease,border-color .3s ease;background:var(--color-card)}
.faq-item:hover{border-color:color-mix(in srgb,var(--color-primary) 30%,var(--color-border));box-shadow:0 6px 20px -8px rgba(15,23,42,0.08)}
.faq-question{padding:1.15rem 1.4rem;font-family:var(--font-heading);font-weight:600;font-size:1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--color-foreground)}
.faq-question::after{content:"";width:12px;height:12px;border-right:2px solid var(--color-primary);border-bottom:2px solid var(--color-primary);transform:rotate(45deg) translateY(-2px);transition:transform .3s ease;flex-shrink:0}
.faq-item.open .faq-question::after{transform:rotate(-135deg) translateY(2px)}
.faq-answer{padding:0 1.4rem;color:var(--color-muted-foreground);line-height:1.75;max-height:0;overflow:hidden;transition:max-height .35s ease,padding .3s ease}
.faq-item.open .faq-answer{padding:0 1.4rem 1.25rem;max-height:1000px}

/* ── Callouts ── */
.callout-box{display:flex;gap:1rem;align-items:flex-start;padding:1.5rem;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 5%,transparent),color-mix(in srgb,var(--color-accent) 5%,transparent));border:1px solid color-mix(in srgb,var(--color-primary) 12%,transparent);border-radius:var(--radius-lg);margin:1.75rem 0}
.callout-icon{font-size:1.4rem;flex-shrink:0;margin-top:0.1rem;color:var(--color-primary)}
.callout-box p{margin:0;line-height:1.7}

/* ── Check list ── */
.check-list{list-style:none;padding:0;margin:1.25rem 0}
.check-list li{position:relative;padding:0.5rem 0 0.5rem 2rem;line-height:1.7}
.check-list li::before{content:"";position:absolute;left:0;top:0.7rem;width:1.3rem;height:1.3rem;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));box-shadow:0 2px 6px -2px color-mix(in srgb,var(--color-primary) 60%,transparent)}
.check-list li::after{content:"";position:absolute;left:0.45rem;top:0.95rem;width:0.35rem;height:0.65rem;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}

/* ── Trust signals ── */
.trust-badges{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:1.75rem}
.trust-badge{display:inline-flex;align-items:center;gap:0.45rem;padding:0.45rem 0.9rem;background:var(--color-card);color:var(--color-foreground);border-radius:var(--radius-full);font-size:0.82rem;font-weight:600;border:1px solid var(--color-border);box-shadow:0 2px 6px -2px rgba(15,23,42,0.06)}
.trust-badge svg{width:14px;height:14px;color:#10b981;stroke-width:3}

/* ── Article cards ── */
.article-card{overflow:hidden;padding:0;display:flex;flex-direction:column}
.article-card .card-image{overflow:hidden;position:relative;aspect-ratio:16/10;background:var(--color-muted)}
.article-card .card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.article-card:hover .card-image img{transform:scale(1.06)}
.article-card .card-body{padding:1.5rem 1.75rem 1.75rem;flex:1;display:flex;flex-direction:column}
.article-card .card-tag{display:inline-block;padding:0.3rem 0.8rem;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-primary);font-size:0.76rem;font-weight:600;margin-bottom:0.85rem;align-self:flex-start;letter-spacing:0.02em}
.article-card h3{font-size:1.15rem;font-weight:700;line-height:1.35;margin-bottom:0.6rem;letter-spacing:-0.01em}
.article-card h3 a{color:var(--color-foreground);text-decoration:none}
.article-card h3 a:hover{color:var(--color-primary)}
.article-card .excerpt{color:var(--color-muted-foreground);font-size:0.92rem;line-height:1.6;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.article-card .card-meta{display:flex;align-items:center;gap:0.9rem;font-size:0.8rem;color:var(--color-muted-foreground);margin-top:auto}

/* ── Breadcrumb ── */
.breadcrumb{padding:1rem 0;font-size:0.85rem;color:var(--color-muted-foreground)}
.breadcrumb a{color:var(--color-muted-foreground);text-decoration:none;transition:color var(--transition-base)}
.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 0.5rem;opacity:0.5}

/* ── Article content ── */
.article-content{font-size:1.05rem;line-height:1.8;color:var(--color-foreground)}
.article-content h2{font-family:var(--font-heading);font-size:clamp(1.45rem,2.5vw,1.8rem);font-weight:700;margin:2.75rem 0 1rem;letter-spacing:-0.02em;position:relative;padding-left:1rem}
.article-content h2::before{content:"";position:absolute;left:0;top:0.4em;bottom:0.4em;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--color-primary),var(--color-secondary))}
.article-content h3{font-family:var(--font-heading);font-size:clamp(1.15rem,1.9vw,1.35rem);font-weight:700;margin:2rem 0 0.8rem;color:var(--color-foreground)}
.article-content p{margin-bottom:1.15rem}
.article-content ul,.article-content ol{margin:1rem 0 1rem 1.5rem}
.article-content li{margin-bottom:0.4rem;line-height:1.75}
.article-content blockquote{border-left:4px solid var(--color-primary);padding:1.1rem 1.5rem;margin:1.75rem 0;background:var(--color-muted);border-radius:0 var(--radius-md) var(--radius-md) 0;font-style:italic;color:var(--color-foreground)}
.article-content code{background:var(--color-muted);padding:0.12rem 0.4rem;border-radius:4px;font-size:0.88em;font-family:ui-monospace,"SF Mono",Menlo,monospace}
.article-content img{border-radius:var(--radius-lg);margin:1.75rem 0}
.article-content table{width:100%;border-collapse:collapse;margin:1.75rem 0;font-size:0.95rem}
.article-content th,.article-content td{padding:0.75rem 1rem;border:1px solid var(--color-border);text-align:left}
.article-content th{background:var(--color-muted);font-weight:600}
.article-content figure{margin:1.75rem 0}
.article-content figcaption{font-size:0.85rem;color:var(--color-muted-foreground);text-align:center;margin-top:0.5rem}
.article-content a{color:var(--color-primary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-primary) 35%,transparent);text-underline-offset:3px;transition:text-decoration-color .2s ease}
.article-content a:hover{text-decoration-color:var(--color-primary)}
.article-tldr{margin:0 0 2rem;padding:1.1rem 1.25rem;background:color-mix(in srgb,var(--color-primary) 6%,var(--color-muted));border-left:4px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0}
.article-tldr .tldr-label{display:inline-block;font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:0.4rem}
.article-tldr .tldr-text{margin:0;font-size:1rem;line-height:1.6;color:var(--color-foreground)}
.aio-answer{margin:0 0 2rem;padding:1.25rem 1.5rem;border:1px solid color-mix(in srgb,var(--color-primary) 25%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 4%,var(--color-background));border-radius:var(--radius-md)}
.aio-answer .aio-label{display:inline-block;font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:0.5rem}
.aio-answer .aio-answer-text{margin:0;font-size:1.05rem;line-height:1.65;color:var(--color-foreground);font-weight:500}
.aio-answer .aio-keypoints{margin:0.85rem 0 0;padding:0;list-style:none}
.aio-answer .aio-keypoints li{margin-bottom:0.4rem;padding-left:1.2rem;position:relative;font-size:0.95rem;line-height:1.55;color:var(--color-foreground)}
.aio-answer .aio-keypoints li::before{content:"✓";position:absolute;left:0;color:var(--color-primary);font-weight:700}
.article-toc{margin:0 0 2.5rem;padding:1rem 1.25rem;background:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:0.95rem}
.article-toc summary{cursor:pointer;list-style:none;color:var(--color-muted-foreground);font-size:0.78rem;letter-spacing:0.06em;text-transform:uppercase}
.article-toc summary::-webkit-details-marker{display:none}
.article-toc summary strong{color:var(--color-foreground);margin-right:0.4rem}
.article-toc .toc-list{margin:0.85rem 0 0 1.2rem;padding:0;line-height:1.55}
.article-toc .toc-list li{margin-bottom:0.35rem}
.article-toc .toc-list a{color:var(--color-foreground);text-decoration:none;border-bottom:1px dashed color-mix(in srgb,var(--color-primary) 35%,transparent)}
.article-toc .toc-list a:hover{color:var(--color-primary);border-bottom-color:var(--color-primary)}
.key-passage{background:var(--color-muted);padding:1rem 1.25rem;border-radius:var(--radius-md);border-left:3px solid var(--color-accent);margin:1.25rem 0;font-weight:500}

.article-tag{display:inline-block;padding:0.3rem 0.9rem;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-primary);font-size:0.8rem;font-weight:600;margin-bottom:1rem;border:1px solid color-mix(in srgb,var(--color-primary) 18%,transparent);letter-spacing:0.02em}
.article-title{font-size:clamp(1.9rem,4.2vw,2.75rem);font-weight:800;line-height:1.15;letter-spacing:-0.02em;margin-bottom:1rem}
.article-meta{display:flex;align-items:center;gap:0.9rem;color:var(--color-muted-foreground);font-size:0.88rem;flex-wrap:wrap}
.article-meta .dot-sep{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:0.5}
.article-footer{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}

/* ── Forms ── */
.form-group{margin-bottom:1.25rem}
.form-group label{display:block;font-size:0.85rem;font-weight:600;margin-bottom:0.4rem;color:var(--color-foreground)}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:0.8rem 1rem;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);font-size:0.95rem;font-family:var(--font-body);color:var(--color-foreground);background:var(--color-card);transition:border-color var(--transition-base),box-shadow var(--transition-base);outline:none}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 12%,transparent)}
.form-group textarea{min-height:120px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

/* ── Footer ── */
.site-footer{background:#0b1020;color:rgba(255,255,255,0.62);padding:4rem 0 0;margin-top:4rem;position:relative;overflow:hidden}
.site-footer::before{content:"";position:absolute;top:-120px;left:50%;transform:translateX(-50%);width:900px;height:300px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--color-primary) 22%,transparent) 0%,transparent 60%);pointer-events:none;opacity:0.7}
.site-footer .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;position:relative;z-index:1}
.site-footer .logo{color:#fff;margin-bottom:1rem}
.site-footer .logo:hover{color:#fff}
.footer-brand p{font-size:0.9rem;line-height:1.7;color:rgba(255,255,255,0.45);max-width:320px}
.footer-col h3{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:rgba(255,255,255,0.95);margin-bottom:1.1rem;font-family:var(--font-heading)}
.footer-col a{display:block;font-size:0.88rem;color:rgba(255,255,255,0.5);padding:0.32rem 0;text-decoration:none;transition:color var(--transition-base),transform var(--transition-base)}
.footer-col a:hover{color:#fff;transform:translateX(3px)}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.08);padding:1.5rem 0;text-align:center;font-size:0.82rem;color:rgba(255,255,255,0.35);position:relative;z-index:1}

/* ── WhatsApp float ── */
.whatsapp-float{position:fixed;bottom:24px;right:24px;z-index:999;display:flex;align-items:center;gap:.6rem;padding:.75rem 1.25rem;background:#25D366;color:#fff;border-radius:var(--radius-full);font-size:.9rem;font-weight:600;text-decoration:none;box-shadow:0 8px 28px -4px rgba(37,211,102,.5);transition:all .3s cubic-bezier(.22,1,.36,1)}
.whatsapp-float:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 36px -4px rgba(37,211,102,.55);color:#fff}
.whatsapp-float:active{transform:translateY(0) scale(.97)}
.whatsapp-float svg{flex-shrink:0}

/* ── Responsive ── */
@media(max-width:1024px){
    .site-footer .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
}
@media(max-width:768px){
    /* Important: disable header backdrop-filter on mobile —
       it makes position:fixed children constrained to the header box,
       which breaks the slide-in mobile nav (appears blurry/cropped).
       The header must also sit ABOVE the overlay: it is a sticky/z-index
       stacking context, so its child .nav is trapped at the header level.
       Raising the header above the overlay lets the menu paint over it
       (otherwise the overlay's blur + pointer-events cover the links). */
    .site-header{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:var(--color-background) !important;z-index:130 !important}
    .nav{position:fixed;top:0;right:-100%;width:min(86vw,320px);height:100vh;height:100dvh;background:var(--color-background);background-color:var(--color-background);flex-direction:column;justify-content:flex-start;padding:5rem 1.5rem 2rem;gap:0.4rem;box-shadow:-12px 0 40px rgba(0,0,0,0.55);transition:right .3s cubic-bezier(.22,1,.36,1);z-index:120;align-items:stretch;overflow-y:auto;isolation:isolate}
    .nav.open{right:0}
    .site-header .nav a:not(.btn){font-size:1.05rem;padding:0.95rem 1rem;width:100%;border-radius:var(--radius-sm);color:var(--color-foreground) !important;background:color-mix(in srgb, var(--color-foreground) 3%, transparent);border:1px solid var(--color-border)}
    .site-header .nav a:hover,.site-header .nav a.active:not(.btn){background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary) !important;border-color:var(--color-primary)}
    .site-header .nav .btn{margin-left:0 !important;margin-top:0.4rem;justify-content:center;font-size:0.95rem !important;padding:0.85rem 1rem !important}
    .nav-toggle{display:block;color:#ffffff;z-index:130}
    .nav-overlay{z-index:115}
    .card-grid{grid-template-columns:1fr}
    .form-row{grid-template-columns:1fr}
    .site-footer .footer-grid{grid-template-columns:1fr;gap:2rem}
    .stats-bar{grid-template-columns:repeat(2,1fr) !important;gap:1.5rem}
    main .btn{white-space:normal;text-align:center;max-width:100%}
    .whatsapp-float span{display:none}
    .whatsapp-float{padding:.9rem;border-radius:50%}
    .article-content h2{padding-left:0.85rem}
}

/* ============================================================
   Corporate family overrides (tf-corporate)
   Utility top-bar, sober square skin, structured split hero,
   authority stat strip.
   ============================================================ */
body.tf-corporate { --tf-edge: color-mix(in srgb, var(--color-foreground,#0b1020) 12%, transparent); }
.corp-topbar { background: var(--color-primary, #1E3A8A); color: #fff; font-size: 0.82rem; }
.corp-topbar-inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.5rem 0; }
.corp-topbar-tag { opacity: 0.9; text-transform: capitalize; }
.corp-topbar-contacts { display: flex; gap: 1.25rem; }
.corp-topbar-contacts a { color: #fff; opacity: 0.92; font-weight: 600; }
.corp-topbar-contacts a:hover { opacity: 1; text-decoration: underline; }
body.tf-corporate .site-header { border-bottom: 2px solid var(--color-primary, #1E3A8A); }
body.tf-corporate .logo-icon { border-radius: 3px; }
body.tf-corporate .nav > a:not(.btn) { font-weight: 600; font-size: 0.9rem; }
body.tf-corporate .nav-cta-quote { margin-left: 0.8rem; border-radius: 3px; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.8rem; padding: 0.6rem 1.2rem; }
body.tf-corporate .btn, body.tf-corporate .card, body.tf-corporate .feature-card, body.tf-corporate .review-card { border-radius: 4px; }
/* Split hero */
body.tf-corporate .co-hero { padding: clamp(2.5rem,5vw,4.5rem) 0; border-bottom: 1px solid var(--tf-edge); }
body.tf-corporate .co-hero-inner { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(1.5rem,4vw,3rem); align-items: center; }
body.tf-corporate .co-eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.78rem; font-weight: 700; color: var(--color-primary); padding-left: 0.8rem; border-left: 3px solid var(--color-primary); margin-bottom: 1.1rem; }
body.tf-corporate .co-hero-title { font-size: clamp(2.1rem, 4.5vw, 3.4rem); line-height: 1.1; letter-spacing: -0.01em; margin: 0 0 1rem; }
body.tf-corporate .co-hero-lede { font-size: 1.12rem; line-height: 1.65; color: var(--color-muted-foreground,#555); max-width: 46ch; }
body.tf-corporate .co-hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; margin: 1.5rem 0; }
body.tf-corporate .co-hero-trust { list-style: none; margin: 1.2rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem 1.5rem; }
body.tf-corporate .co-hero-trust li { position: relative; padding-left: 1.4rem; font-size: 0.9rem; font-weight: 600; color: var(--color-foreground,#222); }
body.tf-corporate .co-hero-trust li::before { content: "\2714"; position: absolute; left: 0; color: var(--color-primary); font-weight: 700; }
body.tf-corporate .co-hero-media { margin: 0; }
body.tf-corporate .co-hero-media img { width: 100%; height: auto; display: block; border-radius: 4px; border: 1px solid var(--tf-edge); }
@media (max-width: 860px) { body.tf-corporate .co-hero-inner { grid-template-columns: 1fr; } body.tf-corporate .corp-topbar-tag { display: none; } }

/* ══════════════════════════════════════════════════════════════════
 * motion.css
 * Motion-graphics layer : animated mesh gradient, blob decorations,
 * scroll reveals, counters, marquee, text split, magnetic buttons.
 * ══════════════════════════════════════════════════════════════════ */

/* ── Keyframes ── */
@keyframes fadeInUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(48px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.92)}to{opacity:1;transform:scale(1)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:translateX(0)}}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-primary) 55%,transparent)}50%{box-shadow:0 0 0 8px transparent}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes blob-drift-a{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.08)}66%{transform:translate(-30px,20px) scale(0.95)}}
@keyframes blob-drift-b{0%,100%{transform:translate(0,0) scale(1) rotate(0deg)}50%{transform:translate(-40px,30px) scale(1.1) rotate(12deg)}}
@keyframes blob-drift-c{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(25px,35px) rotate(-10deg)}}
@keyframes gradient-shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes marquee-slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes grid-fade{0%,100%{opacity:0.35}50%{opacity:0.55}}
@keyframes float-y{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes chip-pop{from{opacity:0;transform:scale(0.85) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* ── Scroll reveal primitives ── */
.animate-fade-in,.animate-slide-up,.animate-scale-in,.animate-fade-left,.animate-fade-right{opacity:0;will-change:opacity,transform}
.animate-fade-in.visible{animation:fadeInUp .75s cubic-bezier(.22,1,.36,1) forwards}
.animate-slide-up.visible{animation:slideUp .85s cubic-bezier(.22,1,.36,1) forwards}
.animate-scale-in.visible{animation:scaleIn .7s cubic-bezier(.22,1,.36,1) forwards}
.animate-fade-left.visible{animation:fadeInLeft .8s cubic-bezier(.22,1,.36,1) forwards}
.animate-fade-right.visible{animation:fadeInRight .8s cubic-bezier(.22,1,.36,1) forwards}
[data-delay="1"].visible{animation-delay:.08s}
[data-delay="2"].visible{animation-delay:.16s}
[data-delay="3"].visible{animation-delay:.24s}
[data-delay="4"].visible{animation-delay:.32s}
[data-delay="5"].visible{animation-delay:.4s}
[data-delay="6"].visible{animation-delay:.48s}

/* ── Animated mesh gradient backdrop (hero default) ── */
.mesh-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.mesh-bg .mesh-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:0.55;mix-blend-mode:multiply;will-change:transform}
.mesh-bg .blob-a{top:-12%;left:-8%;width:52vw;max-width:680px;height:52vw;max-height:680px;background:radial-gradient(circle at 30% 30%,var(--color-primary),transparent 65%);animation:blob-drift-a 18s ease-in-out infinite}
.mesh-bg .blob-b{top:30%;right:-10%;width:46vw;max-width:620px;height:46vw;max-height:620px;background:radial-gradient(circle at 60% 40%,var(--color-secondary),transparent 65%);animation:blob-drift-b 22s ease-in-out infinite}
.mesh-bg .blob-c{bottom:-20%;left:25%;width:40vw;max-width:540px;height:40vw;max-height:540px;background:radial-gradient(circle at 40% 60%,var(--color-accent),transparent 70%);animation:blob-drift-c 26s ease-in-out infinite;opacity:0.35}

/* Dark theme adjustment */
[data-theme="dark"] .mesh-bg .mesh-blob{mix-blend-mode:screen;opacity:0.45}

/* Dotted grid overlay (optional) */
.hero.with-grid::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,color-mix(in srgb,var(--color-foreground) 14%,transparent) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 50%,#000 30%,transparent 75%);opacity:0.4;animation:grid-fade 8s ease-in-out infinite;z-index:0;pointer-events:none}

/* Hero aurora variant */
.hero.aurora{background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 7%,var(--color-background)),color-mix(in srgb,var(--color-accent) 5%,var(--color-background)) 50%,color-mix(in srgb,var(--color-secondary) 8%,var(--color-background)));background-size:200% 200%;animation:gradient-shift 14s ease-in-out infinite}

/* ── Text reveal (split word) ── */
.text-reveal{display:inline-block}
.text-reveal .word{display:inline-block;overflow:hidden;vertical-align:bottom}
.text-reveal .word span{display:inline-block;transform:translateY(100%);opacity:0;transition:transform .75s cubic-bezier(.22,1,.36,1),opacity .6s ease}
.text-reveal.visible .word span{transform:translateY(0);opacity:1}
.text-reveal.visible .word:nth-child(1) span{transition-delay:.05s}
.text-reveal.visible .word:nth-child(2) span{transition-delay:.12s}
.text-reveal.visible .word:nth-child(3) span{transition-delay:.19s}
.text-reveal.visible .word:nth-child(4) span{transition-delay:.26s}
.text-reveal.visible .word:nth-child(5) span{transition-delay:.33s}
.text-reveal.visible .word:nth-child(6) span{transition-delay:.4s}
.text-reveal.visible .word:nth-child(7) span{transition-delay:.47s}
.text-reveal.visible .word:nth-child(8) span{transition-delay:.54s}
.text-reveal.visible .word:nth-child(9) span{transition-delay:.61s}
.text-reveal.visible .word:nth-child(10) span{transition-delay:.68s}
.text-reveal .accent{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

/* ── Counters ── */
.counter{display:inline-block;font-variant-numeric:tabular-nums}

/* ── Marquee (trust logos / chips) ── */
.marquee{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;width:max-content;gap:3rem;animation:marquee-slide 30s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{flex:0 0 auto;display:inline-flex;align-items:center;gap:0.6rem;padding:0.6rem 1.1rem;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-card);font-size:0.85rem;font-weight:600;color:var(--color-foreground)}
.marquee-item svg{width:16px;height:16px;color:var(--color-primary)}

/* ── Process steps (numbered) ── */
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;position:relative}
.process-step{position:relative;padding:1.5rem;border-radius:var(--radius-lg);background:var(--color-card);border:1px solid var(--color-border);transition:transform .3s ease,box-shadow .3s ease}
.process-step:hover{transform:translateY(-4px);box-shadow:0 16px 40px -16px rgba(15,23,42,0.15)}
.process-num{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-on-primary);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:800;font-size:1.05rem;margin-bottom:1rem;box-shadow:0 6px 16px -4px color-mix(in srgb,var(--color-primary) 55%,transparent)}
.process-step h3{font-family:var(--font-heading);font-size:1.05rem;font-weight:700;margin-bottom:0.4rem}
.process-step p{color:var(--color-muted-foreground);line-height:1.7;font-size:0.92rem;margin:0}

/* ── Keyword chips ── */
.chip-cloud{display:flex;flex-wrap:wrap;gap:0.6rem;justify-content:center}
.chip{display:inline-flex;align-items:center;padding:0.5rem 1.15rem;border-radius:var(--radius-full);font-size:0.88rem;font-weight:600;border:1px solid var(--color-border);background:var(--color-card);color:var(--color-foreground);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;animation:chip-pop .5s ease both}
.chip.primary{background:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 22%,transparent)}
.chip:hover{transform:translateY(-2px);border-color:var(--color-primary);box-shadow:0 6px 16px -6px color-mix(in srgb,var(--color-primary) 40%,transparent)}

/* ── Magnetic button subtle ── */
.magnetic{transition:transform .2s cubic-bezier(.22,1,.36,1)}

/* ── Hover reveal link (arrow) ── */
.arrow-link{display:inline-flex;align-items:center;gap:0.3rem;font-weight:600;color:var(--color-primary);text-decoration:none}
.arrow-link .arrow{transition:transform .3s cubic-bezier(.22,1,.36,1);display:inline-block}
.arrow-link:hover .arrow{transform:translateX(4px)}

/* ── Parallax layer ── */
.parallax{will-change:transform}

/* ── Decorative floating icon ── */
.float-icon{animation:float-y 5s ease-in-out infinite}

/* ── Prefers-reduced-motion ── */
@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}
    .mesh-bg .mesh-blob,.marquee-track,.hero.aurora{animation:none!important}
    .text-reveal .word span{transform:none;opacity:1}
}

/* ══════════════════════════════════════════════════════════════════
 * Carousel (testimonials / any horizontal slider)
 * ══════════════════════════════════════════════════════════════════ */
.testi-carousel{position:relative}
.testi-viewport{overflow:hidden;border-radius:var(--radius-lg,14px)}
.testi-track{display:flex;gap:1.5rem;will-change:transform;transition:transform .6s cubic-bezier(.22,1,.36,1);touch-action:pan-y}
.testi-slide{flex:0 0 calc((100% - 3rem) / 3);min-width:0;margin:0}
@media (max-width:980px){.testi-slide{flex-basis:calc((100% - 1.5rem) / 2)}}
@media (max-width:640px){.testi-track{gap:1rem}.testi-slide{flex-basis:100%}}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.75rem}
.carousel-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full,9999px);border:1px solid var(--color-border);background:var(--color-card);color:var(--color-foreground);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease}
.carousel-btn svg{width:20px;height:20px}
.carousel-btn:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px);box-shadow:0 8px 20px -8px color-mix(in srgb,var(--color-primary) 45%,transparent)}
.carousel-btn:disabled{opacity:0.4;cursor:default;transform:none;box-shadow:none;border-color:var(--color-border);color:var(--color-foreground)}
.carousel-dots{display:inline-flex;align-items:center;gap:0.5rem}
.carousel-dot{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:color-mix(in srgb,var(--color-foreground) 22%,transparent);cursor:pointer;transition:transform .25s ease,background .25s ease}
.carousel-dot.active{background:var(--color-primary);transform:scale(1.35)}

/* ══════════════════════════════════════════════════════════════════
 * Per-archetype motion personalities — the reveal "feel" differs by site
 * so two builds never animate identically. Keyed on <body data-archetype>.
 * ══════════════════════════════════════════════════════════════════ */
@keyframes popHard{0%{opacity:0;transform:translateY(18px) scale(.96)}60%{opacity:1;transform:translateY(-3px) scale(1.01)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes revealBlur{from{opacity:0;transform:translateY(26px) scale(.97);filter:blur(10px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes revealFade{from{opacity:0}to{opacity:1}}
@keyframes clipUp{from{opacity:0;clip-path:inset(100% 0 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}

/* Neo Brutalist — snappy, hard pop, no soft easing. */
[data-archetype="neo-brutalist"] .animate-fade-in.visible,
[data-archetype="neo-brutalist"] .animate-slide-up.visible,
[data-archetype="neo-brutalist"] .animate-scale-in.visible{animation:popHard .42s cubic-bezier(.5,1.6,.4,1) forwards}
[data-archetype="neo-brutalist"] .testi-track{transition-timing-function:cubic-bezier(.7,0,.3,1);transition-duration:.35s}

/* Elevated Glow — cinematic blur-in, longer. */
[data-archetype="elevated-glow"] .animate-fade-in.visible,
[data-archetype="elevated-glow"] .animate-slide-up.visible,
[data-archetype="elevated-glow"] .animate-scale-in.visible{animation:revealBlur 1s cubic-bezier(.22,1,.36,1) forwards}

/* Editorial Ruled — restrained, fade only (no movement). */
[data-archetype="editorial-ruled"] .animate-fade-in.visible,
[data-archetype="editorial-ruled"] .animate-slide-up.visible,
[data-archetype="editorial-ruled"] .animate-scale-in.visible{animation:revealFade .9s ease forwards}

/* Sharp Corporate — clip wipe up, crisp. */
[data-archetype="sharp-corporate"] .animate-fade-in.visible,
[data-archetype="sharp-corporate"] .animate-slide-up.visible{animation:clipUp .7s cubic-bezier(.4,0,.2,1) forwards}

/* Pill Airy — gentle, slow, extra travel handled by base; just slow it. */
[data-archetype="pill-airy"] .animate-fade-in.visible,
[data-archetype="pill-airy"] .animate-slide-up.visible,
[data-archetype="pill-airy"] .animate-scale-in.visible{animation-duration:1.05s}

@media (prefers-reduced-motion:reduce){
    .testi-track{transition:none!important}
    [data-archetype] .animate-fade-in.visible,
    [data-archetype] .animate-slide-up.visible,
    [data-archetype] .animate-scale-in.visible{animation:none!important;opacity:1!important;filter:none!important;clip-path:none!important;transform:none!important}
}

/* ══════════════════════════════════════════════════════════════════
 * premium.css
 * Premium 2026 layer: glass auto-hide header · fullscreen mobile menu ·
 * animated nav underline · gradient text · border beam · bento grid ·
 * marquee · dot patterns · layered shadows · spring hovers.
 * Loaded after chrome.css — overrides with same or higher specificity.
 * ══════════════════════════════════════════════════════════════════ */

/* ── Premium tokens (fallbacks if design system lacks them) ─────── */
:root {
    --pm-gradient: linear-gradient(135deg, var(--color-primary), var(--color-accent, var(--color-secondary)));
    --pm-glass-bg: color-mix(in srgb, var(--color-background) 78%, transparent);
    --pm-glow: 0 8px 32px color-mix(in srgb, var(--color-primary) 28%, transparent);
    --pm-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05), 0 2px 8px rgba(15, 23, 42, 0.05);
    --pm-shadow-md: 0 2px 4px rgba(15, 23, 42, 0.05), 0 8px 24px rgba(15, 23, 42, 0.08);
    --pm-shadow-lg: 0 4px 8px rgba(15, 23, 42, 0.05), 0 16px 48px rgba(15, 23, 42, 0.12);
    --pm-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    --pm-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ── Glass auto-hide header ─────────────────────────────────────── */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--pm-glass-bg);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    backdrop-filter: blur(16px) saturate(180%);
    border-bottom: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
    transition: transform 0.45s var(--pm-ease), box-shadow 0.3s ease;
}
.site-header.scrolled {
    box-shadow: 0 1px 0 var(--color-border), 0 8px 24px rgba(15, 23, 42, 0.06);
}
.site-header.header-hidden { transform: translateY(-110%); }

/* ── Desktop nav: animated underline + visible CTA ──────────────── */
@media (min-width: 861px) {
    .nav a:not(.btn) {
        position: relative;
        padding: 0.4rem 0.15rem;
        font-weight: 600;
        transition: color 0.25s ease;
    }
    .nav a:not(.btn)::after {
        content: "";
        position: absolute;
        left: 0; right: 0; bottom: 0;
        height: 2px;
        border-radius: 2px;
        background: var(--pm-gradient);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 0.3s var(--pm-ease);
    }
    .nav a:not(.btn):hover::after,
    .nav a:not(.btn).active::after { transform: scaleX(1); }
    .nav .btn.btn-primary {
        border-radius: 9999px;
        padding: 0.6rem 1.4rem;
        background: var(--pm-gradient);
        box-shadow: var(--pm-glow);
        transition: transform 0.3s var(--pm-spring), box-shadow 0.3s ease;
    }
    .nav .btn.btn-primary:hover { transform: translateY(-2px) scale(1.03); }
}

/* ── Fullscreen mobile menu (agency-grade) ──────────────────────── */
@media (max-width: 860px) {
    .nav#mainNav {
        position: fixed;
        inset: 0;
        z-index: 200;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: 0.4rem;
        padding: 6rem 2rem 3rem;
        background: color-mix(in srgb, var(--color-background) 88%, transparent);
        -webkit-backdrop-filter: blur(24px) saturate(160%);
        backdrop-filter: blur(24px) saturate(160%);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-2%);
        transition: opacity 0.35s var(--pm-ease), transform 0.35s var(--pm-ease), visibility 0.35s;
    }
    .nav#mainNav.open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .nav#mainNav a:not(.btn) {
        font-size: clamp(1.6rem, 7vw, 2.4rem);
        font-weight: 800;
        letter-spacing: -0.02em;
        line-height: 1.25;
        opacity: 0;
        transform: translateY(18px);
        transition: opacity 0.4s var(--pm-ease), transform 0.4s var(--pm-ease);
    }
    .nav#mainNav.open a:not(.btn) { opacity: 1; transform: translateY(0); }
    .nav#mainNav.open a:nth-child(1) { transition-delay: 0.06s; }
    .nav#mainNav.open a:nth-child(2) { transition-delay: 0.11s; }
    .nav#mainNav.open a:nth-child(3) { transition-delay: 0.16s; }
    .nav#mainNav.open a:nth-child(4) { transition-delay: 0.21s; }
    .nav#mainNav.open a:nth-child(5) { transition-delay: 0.26s; }
    .nav#mainNav.open a:nth-child(6) { transition-delay: 0.31s; }
    .nav#mainNav.open a:nth-child(7) { transition-delay: 0.36s; }
    .nav#mainNav .btn.btn-primary {
        margin-top: 1.6rem;
        border-radius: 9999px;
        padding: 0.9rem 2.2rem;
        font-size: 1.05rem;
        background: var(--pm-gradient);
        box-shadow: var(--pm-glow);
        opacity: 0;
        transform: translateY(18px);
        transition: opacity 0.4s var(--pm-ease) 0.4s, transform 0.4s var(--pm-ease) 0.4s;
    }
    .nav#mainNav.open .btn.btn-primary { opacity: 1; transform: translateY(0); }
    .nav-toggle { z-index: 300; position: relative; }
}

/* ── Gradient text ──────────────────────────────────────────────── */
.gradient-text,
h1 .accent, h2 .accent,
.hero h1 .accent {
    background: var(--pm-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* ── Cards: layered shadows + spring lift + beam on hover ───────── */
.card, .feature-card, .review-card, .article-card,
.testimonial-card, .process-step, .bento-item {
    position: relative;
    border-radius: var(--card-radius, 1rem);
    border: 1px solid var(--color-border);
    box-shadow: var(--pm-shadow-sm);
    transition: transform 0.45s var(--pm-spring), box-shadow 0.35s ease, border-color 0.3s ease;
}
.card:hover, .feature-card:hover, .review-card:hover,
.article-card:hover, .testimonial-card:hover, .bento-item:hover {
    transform: translateY(-5px);
    box-shadow: var(--pm-shadow-lg);
    border-color: color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
}

/* ── Border beam (magicui-style, pure CSS) ──────────────────────── */
@property --pm-angle {
    syntax: "<angle>";
    initial-value: 0deg;
    inherits: false;
}
.border-beam {
    position: relative;
    overflow: hidden;
}
.border-beam::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1.5px;
    background: conic-gradient(from var(--pm-angle),
        transparent 0%, transparent 70%,
        var(--color-primary) 85%,
        var(--color-accent, var(--color-secondary)) 95%,
        transparent 100%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: pm-beam-spin 5s linear infinite;
    pointer-events: none;
}
@keyframes pm-beam-spin { to { --pm-angle: 360deg; } }

/* ── Bento grid ─────────────────────────────────────────────────── */
.bento-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1.25rem;
}
.bento-item { padding: 1.75rem; background: var(--color-card, var(--color-background)); }
.bento-item.span-4 { grid-column: span 4; }
.bento-item.span-3 { grid-column: span 3; }
.bento-item.span-2 { grid-column: span 2; }
.bento-item.span-6 { grid-column: span 6; }
@media (max-width: 860px) {
    .bento-grid { grid-template-columns: 1fr; }
    .bento-item, .bento-item.span-4, .bento-item.span-3,
    .bento-item.span-2, .bento-item.span-6 { grid-column: span 1; }
}

/* ── Testimonial marquee (double row) ───────────────────────────── */
.pm-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.pm-marquee-track {
    display: flex;
    gap: 1.25rem;
    width: max-content;
    animation: pm-marquee 42s linear infinite;
}
.pm-marquee-track.reverse { animation-direction: reverse; }
.pm-marquee:hover .pm-marquee-track { animation-play-state: paused; }
.pm-marquee .review-card, .pm-marquee .testimonial-card {
    width: min(360px, 82vw);
    flex-shrink: 0;
}
@keyframes pm-marquee { to { transform: translateX(-50%); } }

/* ── Dot pattern background ─────────────────────────────────────── */
.dot-pattern {
    position: relative;
}
.dot-pattern::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(color-mix(in srgb, var(--color-foreground) 12%, transparent) 1px, transparent 1px);
    background-size: 22px 22px;
    -webkit-mask-image: radial-gradient(ellipse 65% 60% at 50% 40%, #000 40%, transparent 100%);
    mask-image: radial-gradient(ellipse 65% 60% at 50% 40%, #000 40%, transparent 100%);
    pointer-events: none;
}

/* ── Hero premium polish ────────────────────────────────────────── */
.hero .hero-badge, .lo-hero .hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 1rem;
    border-radius: 9999px;
    font-size: 0.85rem;
    font-weight: 600;
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
    background: color-mix(in srgb, var(--color-primary) 7%, var(--color-background));
    color: var(--color-primary);
    box-shadow: var(--pm-shadow-sm);
}
.hero-badge .pulse-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--color-accent, var(--color-primary));
    animation: pm-pulse 2s ease-in-out infinite;
}
@keyframes pm-pulse {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-accent, var(--color-primary)) 45%, transparent); }
    50% { box-shadow: 0 0 0 6px transparent; }
}
.scroll-indicator {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 26px; height: 42px;
    border: 2px solid color-mix(in srgb, var(--color-foreground) 30%, transparent);
    border-radius: 14px;
}
.scroll-indicator::before {
    content: "";
    position: absolute;
    top: 7px; left: 50%;
    width: 4px; height: 8px;
    margin-left: -2px;
    border-radius: 2px;
    background: var(--color-primary);
    animation: pm-scroll-hint 1.8s var(--pm-ease) infinite;
}
@keyframes pm-scroll-hint {
    0% { opacity: 1; transform: translateY(0); }
    70% { opacity: 0; transform: translateY(12px); }
    100% { opacity: 0; transform: translateY(0); }
}

/* ── Primary buttons: gradient pill + glow ──────────────────────── */
.btn.btn-primary {
    background: var(--pm-gradient);
    border: none;
    border-radius: var(--btn-radius, 9999px);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--color-primary) 30%, transparent);
    transition: transform 0.35s var(--pm-spring), box-shadow 0.3s ease;
}
.btn.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--pm-glow);
}
.btn.btn-primary:active { transform: translateY(0) scale(0.98); }

/* ── Reduced motion: kill everything ────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .site-header, .nav#mainNav, .nav#mainNav a, .card, .feature-card,
    .review-card, .article-card, .testimonial-card, .bento-item,
    .btn.btn-primary, .pm-marquee-track, .border-beam::before,
    .hero-badge .pulse-dot, .scroll-indicator::before {
        animation: none !important;
        transition: none !important;
    }
    .site-header.header-hidden { transform: none; }
}

