/* style.css - ChainTaxReport vitrine */

/* ── Reset & base ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --navy:      #1e3a5f;
    --navy-dark: #152c4a;
    --navy-lt:   #e8eef6;
    --accent:    #2d5a9e;
    --accent-lt: #4a7ec7;
    --gold:      #c9a84c;
    --text:      #0f172a;
    --text2:     #475569;
    --text3:     #94a3b8;
    --bg:        #f8fafc;
    --surface:   #ffffff;
    --border:    #e2e8f0;
    --gain:      #0d7c4a;
    --radius:    10px;
    --shadow:    0 1px 3px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.06);
    --shadow-lg: 0 4px 24px rgba(0,0,0,.10), 0 1px 4px rgba(0,0,0,.06);
}

html { scroll-behavior: smooth; }

body {
    font-family: 'Inter', sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

.mono { font-family: 'JetBrains Mono', monospace; }

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

img { max-width: 100%; }

/* ── Layout helpers ───────────────────────────────────────────────────────── */
.container { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }
.section    { padding: 5rem 0; }
.section-sm { padding: 3.5rem 0; }

/* ── Typography ───────────────────────────────────────────────────────────── */
.eyebrow {
    display: inline-block;
    font-size: .7rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--accent);
    background: var(--navy-lt); border-radius: 4px;
    padding: .25rem .65rem; margin-bottom: 1rem;
}
h1 { font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 800; line-height: 1.15; color: var(--text); }
h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 700; line-height: 1.25; }
h3 { font-size: 1.125rem; font-weight: 700; }
h4 { font-size: .9375rem; font-weight: 600; }
.lead { font-size: 1.1rem; color: var(--text2); line-height: 1.7; max-width: 600px; }

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.btn {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .7rem 1.5rem; border-radius: var(--radius);
    font-weight: 600; font-size: .9375rem; cursor: pointer;
    transition: all .18s; border: none; text-decoration: none;
}
.btn-primary   { background: var(--navy); color: #fff; }
.btn-primary:hover { background: var(--navy-dark); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(30,58,95,.3); }
.btn-outline   { background: transparent; color: var(--navy); border: 1.5px solid var(--navy); }
.btn-outline:hover { background: var(--navy-lt); }
.btn-gold      { background: var(--gold); color: #fff; }
.btn-gold:hover { filter: brightness(1.08); }
.btn-sm        { padding: .45rem 1rem; font-size: .8125rem; }

/* ── Header ───────────────────────────────────────────────────────────────── */
.site-header {
    position: sticky; top: 0; z-index: 100;
    background: rgba(255,255,255,.92); backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: box-shadow .2s;
}
.site-header.scrolled { box-shadow: 0 2px 16px rgba(0,0,0,.08); }

.header-inner {
    max-width: 1100px; margin: 0 auto; padding: 0 1.5rem;
    height: 64px; display: flex; align-items: center; gap: 2rem;
}

.header-logo { display: flex; align-items: center; gap: .625rem; flex-shrink: 0; }
.logo-icon {
    width: 2rem; height: 2rem; background: var(--navy); color: #fff;
    border-radius: 7px; display: flex; align-items: center; justify-content: center;
    font-family: 'JetBrains Mono', monospace; font-weight: 700; font-size: .9rem;
}
.logo-name { font-weight: 800; font-size: 1.0625rem; color: var(--text); }

.header-nav { display: flex; align-items: center; gap: .25rem; flex: 1; }
.nav-link {
    padding: .4rem .75rem; border-radius: 7px;
    font-size: .875rem; font-weight: 500; color: var(--text2);
    transition: all .15s;
}
.nav-link:hover, .nav-link.active { color: var(--navy); background: var(--navy-lt); }

.header-actions { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }

.btn-signin {
    font-size: .875rem; font-weight: 500; color: var(--text2);
    padding: .4rem .75rem; border-radius: 7px; transition: all .15s;
}
.btn-signin:hover { color: var(--navy); background: var(--navy-lt); }

.btn-app {
    font-size: .875rem; font-weight: 600; color: #fff;
    background: var(--navy); padding: .45rem 1rem; border-radius: 7px;
    transition: background .15s;
}
.btn-app:hover { background: var(--navy-dark); }

/* Lang switcher */
.lang-switcher { position: relative; }
.lang-btn {
    display: flex; align-items: center; gap: .35rem;
    font-size: .8125rem; font-weight: 500; color: var(--text2);
    background: transparent; border: 1px solid var(--border);
    border-radius: 7px; padding: .35rem .65rem; cursor: pointer;
    transition: all .15s;
}
.lang-btn:hover { border-color: var(--accent); color: var(--navy); }
.lang-btn span  { font-weight: 600; }
.lang-dropdown {
    display: none; position: absolute; top: calc(100% + 8px); right: 0;
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius); box-shadow: var(--shadow-lg);
    min-width: 160px; overflow: hidden; z-index: 200;
}
.lang-dropdown.open { display: block; }
.lang-option {
    display: flex; align-items: center; gap: .5rem;
    padding: .55rem 1rem; font-size: .8125rem; color: var(--text2);
    transition: background .1s;
}
.lang-option:hover { background: var(--bg); color: var(--navy); }
.lang-option.active { color: var(--navy); font-weight: 600; background: var(--navy-lt); }

/* Burger / mobile nav */
.burger {
    display: none; flex-direction: column; gap: 5px;
    background: none; border: none; cursor: pointer; padding: .25rem;
}
.burger span { display: block; width: 22px; height: 2px; background: var(--text); border-radius: 2px; transition: all .2s; }
.mobile-nav {
    display: none; flex-direction: column; gap: .25rem;
    padding: 1rem 1.5rem 1.25rem; border-top: 1px solid var(--border);
    background: var(--surface); box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.mobile-nav a {
    padding: .6rem .5rem; font-size: .9375rem; font-weight: 500; color: var(--text2);
    border-radius: 7px; transition: all .15s;
}
.mobile-nav a:hover { color: var(--navy); background: var(--navy-lt); padding-left: .75rem; }
.mobile-nav hr { border: none; border-top: 1px solid var(--border); margin: .5rem 0; }
.mobile-nav.open { display: flex; }

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.hero {
    padding: 5rem 0 4rem;
    background: linear-gradient(160deg, #f0f5ff 0%, var(--bg) 60%);
    position: relative; overflow: hidden;
}
.hero::before {
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(circle at 80% 20%, rgba(45,90,158,.07) 0%, transparent 60%),
                      radial-gradient(circle at 10% 80%, rgba(30,58,95,.05) 0%, transparent 50%);
    pointer-events: none;
}
.hero-inner { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.hero-content { position: relative; z-index: 1; }
.hero-content h1 { margin-bottom: 1.25rem; }
.hero-content .lead { margin-bottom: 2rem; }
.hero-ctas { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.hero-badge {
    display: inline-flex; align-items: center; gap: .5rem;
    font-size: .72rem; color: var(--text3); font-family: 'JetBrains Mono', monospace;
}
.hero-badge::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--gain); }

.hero-visual {
    position: relative; z-index: 1;
}
.hero-card {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: 14px; padding: 1.5rem; box-shadow: var(--shadow-lg);
}
.hero-card-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border);
}
.hero-card-title { font-weight: 700; font-size: .9375rem; }
.hero-card-year  { font-size: .72rem; color: var(--text3); font-family: 'JetBrains Mono', monospace; background: var(--bg); border: 1px solid var(--border); border-radius: 5px; padding: .2rem .5rem; }
.hero-stat { margin-bottom: 1rem; }
.hero-stat-label { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); margin-bottom: .2rem; }
.hero-stat-value { font-family: 'JetBrains Mono', monospace; font-size: 1.375rem; font-weight: 700; }
.hero-stat-value.gain  { color: var(--gain); }
.hero-stat-value.navy  { color: var(--navy); }
.hero-bar { background: var(--border); border-radius: 99px; height: 5px; margin-top: .75rem; overflow: hidden; }
.hero-bar-fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--accent), var(--accent-lt)); width: 68%; }
.hero-stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: 1rem; }
.hero-mini-stat { background: var(--bg); border-radius: 8px; padding: .625rem .875rem; }
.hero-mini-label { font-size: .65rem; color: var(--text3); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.hero-mini-value { font-family: 'JetBrains Mono', monospace; font-size: .9375rem; font-weight: 700; margin-top: .15rem; }

/* ── Features ─────────────────────────────────────────────────────────────── */
.features { background: var(--surface); }
.section-header { text-align: center; margin-bottom: 3.5rem; }
.section-header .lead { margin: .75rem auto 0; }
.features-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
.feature-card {
    background: var(--bg); border: 1px solid var(--border);
    border-radius: var(--radius); padding: 1.5rem;
    transition: all .2s;
}
.feature-card:hover { border-color: var(--accent); box-shadow: 0 4px 20px rgba(30,58,95,.08); transform: translateY(-2px); }
.feature-icon {
    width: 2.5rem; height: 2.5rem; border-radius: 8px;
    background: var(--navy-lt); display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; margin-bottom: 1rem;
}
.feature-card h3 { margin-bottom: .5rem; }
.feature-card p  { font-size: .875rem; color: var(--text2); line-height: 1.6; }

/* ── How it works ─────────────────────────────────────────────────────────── */
.how { background: linear-gradient(180deg, var(--bg) 0%, #eef4ff 100%); }
.how-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; position: relative; }
.how-steps::before {
    content: ''; position: absolute; top: 2rem; left: calc(16.66% + 1rem); right: calc(16.66% + 1rem);
    height: 1px; background: var(--border); z-index: 0;
}
.how-step { text-align: center; position: relative; z-index: 1; }
.how-step-num {
    width: 4rem; height: 4rem; border-radius: 50%;
    background: var(--navy); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-family: 'JetBrains Mono', monospace; font-weight: 700; font-size: 1.25rem;
    margin: 0 auto 1.25rem; box-shadow: 0 4px 16px rgba(30,58,95,.25);
}
.how-step h3 { margin-bottom: .5rem; }
.how-step p  { font-size: .875rem; color: var(--text2); line-height: 1.6; }

/* ── Pricing ──────────────────────────────────────────────────────────────── */
.pricing { background: var(--surface); }
.pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 2rem; }
.pricing-section-title {
    font-size: .68rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--text3); margin-bottom: 1rem;
}
.pricing-card {
    border: 1px solid var(--border); border-radius: 14px; overflow: hidden;
    background: var(--bg); transition: box-shadow .2s;
}
.pricing-card:hover { box-shadow: var(--shadow-lg); }
.pricing-card.featured { border-color: var(--navy); background: var(--surface); }
.pricing-card-head {
    padding: 1.5rem; background: var(--surface); border-bottom: 1px solid var(--border);
}
.pricing-card.featured .pricing-card-head { background: var(--navy); color: #fff; }
.pricing-card-name { font-weight: 700; font-size: 1rem; margin-bottom: .25rem; }
.pricing-card.featured .pricing-card-name { color: #fff; }
.pricing-card-tx { font-size: .8125rem; color: var(--text3); }
.pricing-card.featured .pricing-card-tx { color: rgba(255,255,255,.7); }
.pricing-card-price {
    display: flex; align-items: baseline; gap: .35rem;
    margin-top: .75rem;
}
.pricing-price-amount { font-family: 'JetBrains Mono', monospace; font-size: 2rem; font-weight: 800; color: var(--navy); }
.pricing-card.featured .pricing-price-amount { color: #fff; }
.pricing-price-period { font-size: .8125rem; color: var(--text3); }
.pricing-card.featured .pricing-price-period { color: rgba(255,255,255,.6); }
.pricing-card-body { padding: 1.5rem; }
.pricing-card-body .inactive { opacity: .5; font-style: italic; font-size: .8125rem; }

.pricing-contact {
    text-align: center; margin-top: 2rem;
    font-size: .875rem; color: var(--text3);
}
.pricing-contact a { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ── Report section ───────────────────────────────────────────────────────── */
.report-section { background: var(--bg); }
.report-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.report-list { list-style: none; margin-top: 1.5rem; }
.report-list li {
    display: flex; align-items: flex-start; gap: .75rem;
    padding: .625rem 0; border-bottom: 1px solid var(--border);
    font-size: .9375rem; color: var(--text2);
}
.report-list li:last-child { border-bottom: none; }
.report-list li::before {
    content: '✓'; color: var(--gain); font-weight: 700;
    flex-shrink: 0; margin-top: .1rem;
}
.report-preview {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: 14px; overflow: hidden; box-shadow: var(--shadow-lg);
}
.report-preview-header {
    background: var(--navy); color: #fff; padding: 1rem 1.5rem;
    display: flex; align-items: center; justify-content: space-between;
}
.report-preview-title { font-weight: 700; font-size: .9375rem; }
.report-preview-year  { font-family: 'JetBrains Mono', monospace; font-size: .75rem; opacity: .7; }
.report-preview-body  { padding: 1.25rem 1.5rem; }
.report-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: .5rem 0; border-bottom: 1px solid var(--border); font-size: .8125rem;
}
.report-row:last-child { border-bottom: none; }
.report-row-label { color: var(--text2); }
.report-row-value { font-family: 'JetBrains Mono', monospace; font-weight: 700; }
.report-row-value.green { color: var(--gain); }
.report-row-value.red   { color: #be1f3a; }
.report-row-value.navy  { color: var(--navy); }

/* ── Contact ──────────────────────────────────────────────────────────────── */
.contact-section { background: var(--surface); }
.contact-inner { display: grid; grid-template-columns: 1fr 1.2fr; gap: 4rem; align-items: start; }
.contact-info h2 { margin-bottom: .75rem; }
.contact-info .lead { margin-bottom: 2rem; }
.contact-form { background: var(--bg); border: 1px solid var(--border); border-radius: 14px; padding: 2rem; }
.form-field { margin-bottom: 1.1rem; }
.form-field label { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); margin-bottom: .4rem; }
.form-field input, .form-field textarea {
    width: 100%; padding: .625rem .875rem;
    background: var(--surface); border: 1px solid var(--border);
    border-radius: 8px; font-size: .875rem; color: var(--text);
    font-family: 'Inter', sans-serif; outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.form-field input:focus, .form-field textarea:focus {
    border-color: var(--accent); box-shadow: 0 0 0 3px rgba(45,90,158,.1);
}
.form-field textarea { height: 120px; resize: vertical; }

/* ── Footer ───────────────────────────────────────────────────────────────── */
.site-footer { background: var(--navy); color: rgba(255,255,255,.85); padding: 3.5rem 0 0; margin-top: 0; }
.footer-inner { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem 2.5rem; display: grid; grid-template-columns: 1.5fr 1fr; gap: 3rem; }
.footer-logo { display: flex; align-items: center; gap: .5rem; margin-bottom: .875rem; }
.footer-logo .logo-icon-sm {
    width: 1.75rem; height: 1.75rem; background: rgba(255,255,255,.15);
    color: #fff; border-radius: 6px; display: flex; align-items: center; justify-content: center;
    font-family: 'JetBrains Mono', monospace; font-weight: 700; font-size: .8rem;
}
.footer-logo span { font-weight: 800; font-size: .9375rem; color: #fff; }
.footer-tagline { font-size: .8125rem; color: rgba(255,255,255,.5); line-height: 1.6; max-width: 280px; }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.footer-col-title { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.4); margin-bottom: .875rem; }
.footer-links a { display: block; font-size: .8125rem; color: rgba(255,255,255,.65); margin-bottom: .45rem; transition: color .15s; }
.footer-links a:hover { color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 1.25rem 1.5rem; max-width: 1100px; margin: 0 auto; font-size: .75rem; color: rgba(255,255,255,.35); }

/* ── Cookie banner ────────────────────────────────────────────────────────── */
.cookie-banner {
    position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
    background: var(--text); color: #fff; border-radius: var(--radius);
    padding: 1rem 1.5rem; max-width: 640px; width: calc(100% - 3rem);
    box-shadow: 0 8px 32px rgba(0,0,0,.25); z-index: 9999;
    animation: slideUp .3s ease;
}
@keyframes slideUp { from { transform: translateX(-50%) translateY(20px); opacity: 0; } to { transform: translateX(-50%) translateY(0); opacity: 1; } }
.cookie-inner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.cookie-inner p { font-size: .8125rem; color: rgba(255,255,255,.85); flex: 1; min-width: 200px; }
.cookie-inner a { color: var(--accent-lt); text-decoration: underline; }
.cookie-actions { display: flex; gap: .5rem; flex-shrink: 0; }
.cookie-btn-accept {
    background: var(--accent); color: #fff; border: none;
    padding: .45rem 1rem; border-radius: 7px; font-size: .8125rem;
    font-weight: 600; cursor: pointer; transition: background .15s;
}
.cookie-btn-accept:hover { background: var(--accent-lt); }
.cookie-btn-decline {
    background: rgba(255,255,255,.1); color: rgba(255,255,255,.75); border: none;
    padding: .45rem 1rem; border-radius: 7px; font-size: .8125rem;
    font-weight: 500; cursor: pointer; transition: background .15s;
}
.cookie-btn-decline:hover { background: rgba(255,255,255,.2); }

/* ── Doc page ─────────────────────────────────────────────────────────────── */
.doc-layout { display: grid; grid-template-columns: 260px 1fr; gap: 3rem; padding: 3rem 0 5rem; max-width: 1100px; margin: 0 auto; }
.doc-sidebar {
    position: sticky; top: 80px; height: fit-content;
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius); padding: 1.25rem;
    max-height: calc(100vh - 100px); overflow-y: auto;
}
.doc-nav-group { margin-bottom: 1.25rem; }
.doc-nav-group-title { font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text3); padding: 0 .5rem; margin-bottom: .4rem; }
.doc-nav-link { display: block; padding: .35rem .5rem; font-size: .8125rem; color: var(--text2); border-radius: 6px; transition: all .1s; }
.doc-nav-link:hover { color: var(--navy); background: var(--navy-lt); }
.doc-nav-link.active { color: var(--navy); background: var(--navy-lt); font-weight: 600; }
.doc-nav-sub { padding-left: .75rem; }

.doc-content h1 { margin-bottom: .5rem; }
.doc-content .doc-intro { font-size: 1.0625rem; color: var(--text2); margin-bottom: 3rem; }
.doc-section { margin-bottom: 3.5rem; scroll-margin-top: 90px; }
.doc-section h2 { font-size: 1.375rem; margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 2px solid var(--navy-lt); color: var(--navy); }
.doc-section h3 { font-size: 1rem; margin: 1.5rem 0 .5rem; color: var(--text); }
.doc-section p  { font-size: .9375rem; color: var(--text2); line-height: 1.7; margin-bottom: .875rem; }
.doc-section ul { margin: .5rem 0 .875rem 1.25rem; }
.doc-section li { font-size: .9375rem; color: var(--text2); line-height: 1.7; margin-bottom: .25rem; }

.doc-callout {
    background: var(--navy-lt); border-left: 3px solid var(--navy);
    border-radius: 0 8px 8px 0; padding: 1rem 1.25rem; margin: 1.25rem 0;
    font-size: .875rem; color: var(--navy);
}
.doc-callout strong { font-weight: 700; }

.doc-table { width: 100%; border-collapse: collapse; margin: 1.25rem 0; font-size: .875rem; }
.doc-table th {
    background: var(--navy); color: #fff; padding: .625rem .875rem;
    text-align: left; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.doc-table td { padding: .625rem .875rem; border-bottom: 1px solid var(--border); color: var(--text2); }
.doc-table tr:hover td { background: var(--bg); }

.doc-example {
    background: #0f172a; color: #e2e8f0; border-radius: 10px;
    padding: 1.25rem 1.5rem; margin: 1.25rem 0; font-family: 'JetBrains Mono', monospace;
    font-size: .8125rem; line-height: 1.7; overflow-x: auto;
}
.doc-example .green { color: #34d399; }
.doc-example .blue  { color: #60a5fa; }
.doc-example .gold  { color: #fbbf24; }
.doc-example .gray  { color: #64748b; }

/* ── Legal pages ──────────────────────────────────────────────────────────── */
.legal-page { max-width: 760px; margin: 4rem auto; padding: 0 1.5rem 5rem; }
.legal-page h1 { margin-bottom: 2rem; }
.legal-page h2 { font-size: 1.125rem; margin: 2rem 0 .75rem; color: var(--navy); }
.legal-page p, .legal-page li { font-size: .9375rem; color: var(--text2); line-height: 1.7; margin-bottom: .75rem; }
.legal-page ul { margin-left: 1.25rem; margin-bottom: 1rem; }
.legal-date { font-size: .8125rem; color: var(--text3); margin-bottom: 2rem; font-style: italic; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .hero-inner       { grid-template-columns: 1fr; }
    .hero-visual      { display: none; }
    .features-grid    { grid-template-columns: 1fr 1fr; }
    .how-steps        { grid-template-columns: 1fr; }
    .how-steps::before{ display: none; }
    .pricing-grid     { grid-template-columns: 1fr; }
    .report-inner     { grid-template-columns: 1fr; gap: 2rem; }
    .report-preview   { margin-top: 1rem; }
    .contact-inner    { grid-template-columns: 1fr; gap: 2rem; }
    .doc-layout       { grid-template-columns: 1fr; }
    .doc-sidebar      { position: static; }
    .footer-inner     { grid-template-columns: 1fr; gap: 2rem; }
    .footer-links     { grid-template-columns: 1fr 1fr; }
    .hero             { padding: 4rem 0 3.5rem; }
    .pricing-grid     { gap: 1rem; }
    .features-grid    { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .header-nav       { display: none; }
    .btn-signin       { display: none; }
    .btn-app          { display: none; }
    .burger           { display: flex; }
    .features-grid    { grid-template-columns: 1fr; }
    .pricing-grid     { grid-template-columns: 1fr; }
    .section          { padding: 3rem 0; }
    .hero             { padding: 3.5rem 0 3rem; }
    .hero-content h1  { font-size: 1.875rem; }
    .hero-ctas        { flex-direction: column; }
    .hero-ctas .btn   { width: 100%; justify-content: center; }
    .cookie-banner    { bottom: 0; left: 0; right: 0; transform: none; width: 100%; border-radius: 12px 12px 0 0; }
    .cookie-inner     { flex-direction: column; gap: .75rem; }
    .pricing-card-price .pricing-price-amount { font-size: 1.5rem; }
    .doc-layout       { padding: 1.5rem 0 3rem; }
    .legal-page       { margin: 2rem auto; }
    .footer-links     { grid-template-columns: 1fr; }
    .footer-inner     { gap: 1.5rem; }
    .contact-inner    { gap: 2rem; }
    .how-step-num     { width: 3rem; height: 3rem; font-size: 1rem; }
    .report-inner     { gap: 2rem; }
}

/* == Hero anime (particules) - ChainTaxReport ============================== */
.site-header { box-shadow: 0 4px 20px rgba(3,12,28,.06); }

.hero {
    padding: 6.5rem 0 5rem;
    background:
        radial-gradient(1200px 700px at 78% 12%, #24467a 0%, transparent 55%),
        radial-gradient(900px 600px at 8% 88%, #1a3a66 0%, transparent 50%),
        linear-gradient(160deg, #14294a 0%, #0d2140 55%, #0b1c33 100%);
}
.hero::before { background-image: radial-gradient(600px 380px at 72% 42%, rgba(74,126,199,.20), transparent 60%); }
#heroParticles { position: absolute; inset: 0; z-index: 1; display: block; }
.hero-glow { position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background: radial-gradient(680px 420px at 70% 45%, rgba(74,126,199,.16), transparent 62%); }
.hero .hero-inner { position: relative; z-index: 2; }

.hero .eyebrow { color: var(--accent-lt); background: rgba(74,126,199,.10);
    border: 1px solid rgba(74,126,199,.32); padding: .35rem .85rem; border-radius: 99px; }
.hero .hero-content h1 { color: #fff; }
.hero .hero-content .lead { color: #a9bad4; }
.hero .hero-badge { color: #6f83a6; }

.hero .btn-primary { background: linear-gradient(135deg, var(--accent-lt), var(--accent));
    box-shadow: 0 10px 30px rgba(45,90,158,.45); }
.hero .btn-primary:hover { filter: brightness(1.05); transform: translateY(-2px);
    box-shadow: 0 16px 40px rgba(45,90,158,.55); }
.hero .btn-outline { color: #eaf1fb; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.04); }
.hero .btn-outline:hover { background: rgba(255,255,255,.10); }

.hero-card { box-shadow: 0 30px 80px rgba(3,12,28,.5), 0 0 0 1px rgba(255,255,255,.05);
    animation: ctr-float 7s ease-in-out infinite; will-change: transform; }
@keyframes ctr-float { 0%,100% { transform: translateY(0) rotate(-.35deg); } 50% { transform: translateY(-13px) rotate(.35deg); } }
.hero-bar-fill { width: 0; transition: width 1.6s cubic-bezier(.22,1,.36,1) .4s; }

.hero .hero-content > * { opacity: 0; transform: translateY(20px); animation: ctr-rise .85s cubic-bezier(.22,1,.36,1) forwards; }
.hero .hero-content > *:nth-child(1){animation-delay:.05s}
.hero .hero-content > *:nth-child(2){animation-delay:.14s}
.hero .hero-content > *:nth-child(3){animation-delay:.23s}
.hero .hero-content > *:nth-child(4){animation-delay:.32s}
.hero .hero-content > *:nth-child(5){animation-delay:.41s}
.hero .hero-visual { opacity: 0; animation: ctr-rise .9s cubic-bezier(.22,1,.36,1) .3s forwards; }
@keyframes ctr-rise { to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
    .hero-card, .hero .hero-content > *, .hero .hero-visual { animation: none !important; }
    .hero .hero-content > *, .hero .hero-visual { opacity: 1; transform: none; }
    .hero-bar-fill { transition: none; width: 68%; }
}

/* =====================================================================
   LANDING 'OUFFISSIME' - theme sombre premium, scope body.landing
   (doc / contact / legal restent en theme clair)
   ===================================================================== */
@property --a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

body.landing { background: #070f1f; color: #e6edf8; overflow-x: hidden; }
.landing section, .landing .ticker, .landing .trust, .landing footer { position: relative; z-index: 1; }
.landing h1, .landing h2, .landing h3 { color: #fff; }
.landing p, .landing .lead { color: #a9bad4; }
.landing .features, .landing .how, .landing .pricing, .landing .report-section, .landing .contact-section, .landing .faq { background: transparent; }
.landing .eyebrow { color: #7fb6ff; background: rgba(74,126,199,.10); border: 1px solid rgba(74,126,199,.30); padding: .35rem .85rem; border-radius: 99px; display: inline-flex; align-items: center; }

/* --- FX globaux --- */
.landing .fx-aurora { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.landing .orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .55; mix-blend-mode: screen; animation: ctr-orb 24s ease-in-out infinite alternate; will-change: transform; }
.landing .o1 { width: 560px; height: 560px; background: #2d5a9e; top: -160px; left: -160px; }
.landing .o2 { width: 500px; height: 500px; background: #1f6fb8; top: 38%; right: -180px; animation-delay: -9s; }
.landing .o3 { width: 420px; height: 420px; background: #0e8f8f; bottom: -160px; left: 28%; animation-delay: -16s; opacity: .4; }
@keyframes ctr-orb { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(70px,-50px) scale(1.14); } 100% { transform: translate(-50px,60px) scale(.94); } }
.landing .fx-grid { position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background-image: radial-gradient(rgba(140,180,255,.11) 1px, transparent 1px); background-size: 28px 28px;
    -webkit-mask-image: radial-gradient(ellipse at center, #000 25%, transparent 78%); mask-image: radial-gradient(ellipse at center, #000 25%, transparent 78%); }
.landing .fx-cursor { position: fixed; top: 0; left: 0; width: 520px; height: 520px; border-radius: 50%; pointer-events: none; z-index: 0; opacity: 0; transition: opacity .4s;
    background: radial-gradient(circle, rgba(110,170,255,.15), transparent 60%); will-change: transform; }

/* --- Header en verre sombre --- */
.landing .site-header { background: rgba(9,20,38,.72); border-bottom: 1px solid rgba(255,255,255,.07); box-shadow: 0 1px 0 rgba(110,170,255,.14), 0 10px 30px rgba(0,0,0,.35); }
.landing .logo-name { color: #fff; }
.landing .logo-icon { background: linear-gradient(135deg,#4a7ec7,#2d5a9e); box-shadow: 0 4px 16px rgba(74,126,199,.5); }
.landing .nav-link { color: #b6c5dc; }
.landing .nav-link:hover, .landing .nav-link.active { color: #fff; background: rgba(255,255,255,.06); }
.landing .lang-btn { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); color: #dbe6f6; }
.landing .lang-dropdown { background: #0f2140; border-color: rgba(255,255,255,.12); }
.landing .lang-option { color: #dbe6f6; } .landing .lang-option:hover { background: rgba(255,255,255,.06); color: #fff; } .landing .lang-option.active { background: rgba(74,126,199,.2); color: #fff; }
.landing .btn-app { background: linear-gradient(135deg,#4a7ec7,#2d5a9e); box-shadow: 0 8px 24px rgba(45,90,158,.45); }
.landing .mobile-nav { background: #0f2140; border-color: rgba(255,255,255,.1); } .landing .mobile-nav a { color: #dbe6f6; } .landing .mobile-nav hr { border-top-color: rgba(255,255,255,.1); }

/* --- Boutons --- */
.landing .btn-primary { background: linear-gradient(135deg,#4a7ec7,#2d5a9e); box-shadow: 0 10px 30px rgba(45,90,158,.45); }
.landing .btn-primary:hover { filter: brightness(1.06); transform: translateY(-2px); box-shadow: 0 16px 40px rgba(45,90,158,.55); }
.landing .btn-outline { color: #eaf1fb; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.04); }
.landing .btn-outline:hover { background: rgba(255,255,255,.10); }
.landing .btn-gold { box-shadow: 0 10px 30px rgba(201,168,76,.35); }
.landing .btn-glow { position: relative; overflow: hidden; }
.landing .btn-glow::after { content: ''; position: absolute; top: 0; left: -120%; width: 60%; height: 100%; background: linear-gradient(110deg, transparent, rgba(255,255,255,.38), transparent); transform: skewX(-20deg); animation: ctr-sweep 3.4s ease-in-out infinite; }
@keyframes ctr-sweep { 0%, 55% { left: -120%; } 100% { left: 170%; } }

/* --- Verre + spotlight + bordure animee + reveal --- */
.landing .glass { background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.08); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.landing .spot { position: relative; overflow: hidden; }
.landing .spot::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .35s;
    background: radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(110,170,255,.17), transparent 45%); }
.landing .spot:hover::after { opacity: 1; }
.landing .glow-border { position: relative; isolation: isolate; }
.landing .glow-border::before { content: ''; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; z-index: -1;
    background: conic-gradient(from var(--a), transparent 0%, #4a7ec7 16%, #8fdcff 28%, transparent 44%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
    animation: ctr-spin 5s linear infinite; }
@keyframes ctr-spin { to { --a: 360deg; } }
.landing .reveal { opacity: 0; transform: translateY(26px); transition: opacity .85s cubic-bezier(.22,1,.36,1) var(--d,0ms), transform .85s cubic-bezier(.22,1,.36,1) var(--d,0ms); }
.landing .reveal.in { opacity: 1; transform: none; }

/* --- Hero plein ecran --- */
.landing .hero { min-height: 100vh; display: flex; align-items: center; padding: 7rem 0 5rem;
    background: radial-gradient(900px 520px at 72% 30%, rgba(45,90,158,.22), transparent 62%); }
.landing .hero .hero-inner { width: 100%; }
.landing .live-dot { width: 7px; height: 7px; border-radius: 50%; background: #34d39a; box-shadow: 0 0 12px #34d39a; display: inline-block; margin-right: .55rem; animation: ctr-pulse 2.2s ease-in-out infinite; }
@keyframes ctr-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .45; transform: scale(.75); } }
.landing .hero h1.shine { font-size: clamp(2.7rem, 5.4vw, 4.2rem); line-height: 1.04; letter-spacing: -.025em;
    background: linear-gradient(100deg, #fff 0%, #e2ecff 38%, #7fb6ff 50%, #fff 62%, #fff 100%); background-size: 220% 100%;
    -webkit-background-clip: text; background-clip: text; color: transparent; animation: ctr-rise .85s cubic-bezier(.22,1,.36,1) .14s forwards, ctr-shine 7s linear infinite; }
@keyframes ctr-shine { to { background-position: -220% 0; } }
.landing .hero .lead { color: #a9bad4; font-size: 1.1rem; }
.landing .hero .hero-badge { color: #6f83a6; }
.landing .hero-card { border-radius: 18px; }
.landing .hero-mini-value.navy { color: var(--navy); } .landing .hero-mini-value.gain { color: var(--gain); } .landing .hero-mini-value.loss { color: #be1f3a; }
.landing .scroll-cue { position: absolute; bottom: 1.4rem; left: 50%; transform: translateX(-50%); width: 22px; height: 34px; border: 1.5px solid rgba(255,255,255,.28); border-radius: 12px; z-index: 3; }
.landing .scroll-cue span { position: absolute; top: 6px; left: 50%; width: 3px; height: 6px; margin-left: -1.5px; border-radius: 2px; background: #7fb6ff; box-shadow: 0 0 8px #7fb6ff; animation: ctr-cue 1.8s ease-in-out infinite; }
@keyframes ctr-cue { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(10px); } }

/* --- Ticker --- */
.landing .ticker { overflow: hidden; border-top: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.02); padding: .95rem 0;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.landing .ticker-track { display: flex; align-items: center; gap: 2.5rem; width: max-content; animation: ctr-ticker 40s linear infinite; font-family: 'JetBrains Mono', monospace; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: #8fa6c8; }
.landing .ticker-track span { white-space: nowrap; }
.landing .ticker-track i { width: 4px; height: 4px; border-radius: 50%; background: #4a7ec7; box-shadow: 0 0 8px #4a7ec7; display: inline-block; }
@keyframes ctr-ticker { to { transform: translateX(-50%); } }

/* --- Features bento --- */
.landing .bento { grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.landing .bento .feature-card:first-child { grid-column: span 2; }
.landing .feature-card { background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; padding: 1.6rem; transition: transform .35s, border-color .35s, box-shadow .35s; }
.landing .feature-card:hover { transform: translateY(-4px); border-color: rgba(127,182,255,.38); box-shadow: 0 22px 55px rgba(0,0,0,.4), 0 0 0 1px rgba(127,182,255,.15), 0 0 40px rgba(74,126,199,.18); }
.landing .feature-card h3 { color: #fff; } .landing .feature-card p { color: #a9bad4; }
.landing .feature-icon { width: 2.75rem; height: 2.75rem; border-radius: 12px; background: linear-gradient(135deg, rgba(74,126,199,.38), rgba(127,215,255,.14)); border: 1px solid rgba(127,182,255,.32); color: #9fd0ff; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 26px rgba(74,126,199,.35); margin-bottom: 1rem; font-size: 0; }
.landing .feature-icon svg { width: 1.35rem; height: 1.35rem; }
.landing .feature-card:hover .feature-icon { box-shadow: 0 0 36px rgba(127,182,255,.6); color: #fff; }

/* --- How : beam anime + orbes --- */
.landing .how-steps::before { display: none; }
.landing .how-beam { position: absolute; top: 2rem; left: calc(16.66% + 1rem); right: calc(16.66% + 1rem); height: 2px; background: rgba(255,255,255,.08); overflow: hidden; border-radius: 2px; z-index: 0; }
.landing .how-beam::after { content: ''; position: absolute; top: 0; left: -30%; width: 30%; height: 100%; background: linear-gradient(90deg, transparent, #7fb6ff, #fff, #7fb6ff, transparent); box-shadow: 0 0 14px #7fb6ff; animation: ctr-beam 2.8s ease-in-out infinite; }
@keyframes ctr-beam { to { left: 100%; } }
.landing .how-step-num { background: radial-gradient(circle at 30% 30%, #4a7ec7, #1e3a5f); box-shadow: 0 0 0 6px rgba(74,126,199,.12), 0 0 44px rgba(74,126,199,.55); position: relative; }
.landing .how-step-num::before { content: ''; position: absolute; inset: -10px; border-radius: 50%; border: 1px solid rgba(127,182,255,.4); animation: ctr-ring 2.4s ease-out infinite; }
@keyframes ctr-ring { 0% { transform: scale(.8); opacity: 1; } 100% { transform: scale(1.55); opacity: 0; } }
.landing .how-step h3 { color: #fff; } .landing .how-step p { color: #a9bad4; }

/* --- Pricing --- */
.landing .pricing-section-title { color: #7fa0cc; }
.landing .pricing-card { background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; }
.landing .pricing-card:hover { box-shadow: 0 20px 50px rgba(0,0,0,.4); }
.landing .pricing-card.featured { border-color: rgba(201,168,76,.5); box-shadow: 0 0 0 1px rgba(201,168,76,.22), 0 20px 60px rgba(0,0,0,.45), 0 0 55px rgba(201,168,76,.18); }
.landing .pricing-card-head { background: rgba(255,255,255,.03); border-bottom: 1px solid rgba(255,255,255,.08); }
.landing .pricing-card-name, .landing .pricing-card-price { color: #fff; }
.landing .pricing-card-tx, .landing .pricing-card-body, .landing .pricing-card-body li { color: #a9bad4; }
.landing .pricing-card-body .inactive { color: #6f83a6; }
.landing .pricing-contact { color: #a9bad4; } .landing .pricing-contact a { color: #7fb6ff; }
.landing .pay-banner { border-radius: 16px; padding: 1.75rem 2rem; margin-bottom: 2rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; background: linear-gradient(135deg, rgba(45,90,158,.38), rgba(74,126,199,.14)); }
.landing .pay-banner-title { display: flex; align-items: center; gap: .65rem; font-weight: 700; font-size: 1.02rem; color: #fff; margin-bottom: .35rem; }
.landing .pay-icon { width: 2rem; height: 2rem; border-radius: 9px; background: rgba(127,182,255,.15); border: 1px solid rgba(127,182,255,.32); display: inline-flex; align-items: center; justify-content: center; color: #9fd0ff; }
.landing .pay-icon svg { width: 1.1rem; height: 1.1rem; }
.landing .pay-banner-sub { font-size: .8125rem; color: #b6c5dc; max-width: 480px; margin: 0; }

/* --- Trust --- */
.landing .trust { padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06); }
.landing .trust-inner { display: flex; justify-content: center; flex-wrap: wrap; gap: .9rem; }
.landing .trust-pill { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem 1rem; border-radius: 99px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); font-size: .8125rem; font-weight: 600; color: #dbe6f6; }
.landing .trust-pill svg { width: 1rem; height: 1rem; color: #7fd7a8; flex-shrink: 0; }

/* --- Report --- */
.landing .report-includes { font-size: .8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #7fa0cc; margin: 1.5rem 0 .5rem; }
.landing .report-list li { color: #dbe6f6; }
.landing .report-preview { border-radius: 16px; background: rgba(255,255,255,.035); }
.landing .report-preview-header { border-bottom-color: rgba(255,255,255,.08); background: transparent; }
.landing .report-preview-title { color: #fff; } .landing .report-preview-year { color: #8fa6c8; }
.landing .report-row { border-bottom-color: rgba(255,255,255,.06); }
.landing .report-row-label { color: #a9bad4; } .landing .report-row-value { color: #fff; }
.landing .report-row-value.green { color: #34d39a; } .landing .report-row-value.red { color: #ff7a8a; } .landing .report-row-value.navy { color: #9fd0ff; }

/* --- Contact --- */
.landing .contact-form { border-radius: 16px; padding: 1.75rem; }
.landing .form-field label { color: #b6c5dc; }
.landing .form-field input, .landing .form-field textarea { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); color: #fff; }
.landing .form-field input:focus, .landing .form-field textarea:focus { border-color: #7fb6ff; box-shadow: 0 0 0 3px rgba(127,182,255,.22); outline: none; }
.landing .form-field input::placeholder, .landing .form-field textarea::placeholder { color: #6f83a6; }
.landing .contact-ok { text-align: center; padding: 2rem 0; }
.landing .contact-ok-icon { width: 58px; height: 58px; border-radius: 50%; margin: 0 auto 1rem; background: rgba(52,211,154,.15); border: 1px solid rgba(52,211,154,.45); display: flex; align-items: center; justify-content: center; color: #34d39a; box-shadow: 0 0 32px rgba(52,211,154,.4); }
.landing .contact-ok-icon svg { width: 26px; height: 26px; }
.landing .contact-ok p { font-weight: 600; color: #34d39a; font-size: 1rem; }
.landing .contact-err { background: rgba(190,31,58,.15); border: 1px solid rgba(255,122,138,.35); color: #ff9aa8; border-radius: 8px; padding: .75rem 1rem; margin-bottom: 1rem; font-size: .8125rem; }

/* --- FAQ --- */
.landing .faq-list { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: .75rem; }
.landing .faq-item { border-radius: 12px; overflow: hidden; transition: border-color .3s; }
.landing .faq-item[open] { border-color: rgba(127,182,255,.35); }
.landing .faq-item summary { padding: 1rem 1.25rem; font-weight: 600; font-size: .95rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; color: #fff; }
.landing .faq-item summary::-webkit-details-marker { display: none; }
.landing .faq-chev { width: 10px; height: 10px; border-right: 2px solid #7fb6ff; border-bottom: 2px solid #7fb6ff; transform: rotate(45deg); transition: transform .3s; flex-shrink: 0; margin-left: 1rem; }
.landing .faq-item[open] .faq-chev { transform: rotate(-135deg); }
.landing .faq-a { padding: .25rem 1.25rem 1.1rem; font-size: .875rem; color: #a9bad4; line-height: 1.65; border-top: 1px solid rgba(255,255,255,.06); }

/* --- Footer --- */
.landing footer, .landing .site-footer { background: #050c1a; border-top: 1px solid rgba(255,255,255,.06); color: #8fa6c8; }
.landing footer a, .landing .site-footer a { color: #b6c5dc; } .landing footer a:hover, .landing .site-footer a:hover { color: #fff; }
.landing footer h4, .landing .site-footer h4, .landing .site-footer strong { color: #fff; }

/* --- Responsive --- */
@media (max-width: 1000px) { .landing .bento { grid-template-columns: repeat(2, 1fr); } .landing .bento .feature-card:first-child { grid-column: span 2; } }
@media (max-width: 640px)  { .landing .bento { grid-template-columns: 1fr; } .landing .bento .feature-card:first-child { grid-column: auto; } .landing .hero { min-height: auto; padding: 6rem 0 4rem; } .landing .fx-cursor { display: none; } }

/* --- Reduced motion --- */
@media (prefers-reduced-motion: reduce) {
    .landing .orb, .landing .ticker-track, .landing .how-beam::after, .landing .how-step-num::before, .landing .btn-glow::after, .landing .glow-border::before, .landing .hero h1.shine, .landing .live-dot, .landing .scroll-cue span { animation: none !important; }
    .landing .reveal { opacity: 1; transform: none; transition: none; }
    .landing .fx-cursor { display: none; }
}

/* ===== SPLIT : hero + ticker sombres / corps blanc / contact sombre / footer navy ===== */
.landing .features, .landing .pricing, .landing .report-section, .landing .trust { background: #fff; }
.landing .how, .landing .faq { background: #f6f8fb; }
.landing .features h2, .landing .how h2, .landing .pricing h2, .landing .report-section h2, .landing .faq h2,
.landing .features h3, .landing .how h3, .landing .pricing h3, .landing .report-section h3, .landing .faq h3 { color: var(--text); }
.landing .features p, .landing .how p, .landing .pricing p, .landing .report-section p, .landing .faq p,
.landing .features .lead, .landing .how .lead, .landing .pricing .lead, .landing .report-section .lead, .landing .faq .lead { color: var(--text2); }
.landing .features .eyebrow, .landing .how .eyebrow, .landing .pricing .eyebrow, .landing .report-section .eyebrow, .landing .faq .eyebrow { color: var(--accent); background: #eef4ff; border-color: rgba(45,90,158,.22); }
.landing .feature-card { background: #fff; border: 1px solid var(--border); box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.landing .feature-card:hover { border-color: rgba(45,90,158,.35); box-shadow: 0 18px 40px rgba(15,23,42,.10), 0 0 0 1px rgba(45,90,158,.12); }
.landing .feature-card h3 { color: var(--text); } .landing .feature-card p { color: var(--text2); }
.landing .spot::after { background: radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(74,126,199,.13), transparent 45%); }
.landing .feature-icon { background: linear-gradient(135deg,#1e3a5f,#2d5a9e); border-color: transparent; color: #fff; box-shadow: 0 8px 20px rgba(45,90,158,.35); }
.landing .feature-card:hover .feature-icon { box-shadow: 0 12px 28px rgba(45,90,158,.5); color: #fff; }
.landing .how-beam { background: rgba(45,90,158,.12); }
.landing .how-beam::after { background: linear-gradient(90deg, transparent, #4a7ec7, #1e3a5f, #4a7ec7, transparent); box-shadow: 0 0 12px rgba(74,126,199,.7); }
.landing .how-step-num::before { border-color: rgba(45,90,158,.35); }
.landing .pricing-section-title { color: var(--text3); }
.landing .pricing-card { background: #fff; border: 1px solid var(--border); }
.landing .pricing-card.featured { border-color: rgba(201,168,76,.6); box-shadow: 0 0 0 1px rgba(201,168,76,.25), 0 20px 50px rgba(15,23,42,.12), 0 0 40px rgba(201,168,76,.18); }
.landing .pricing-card-head { background: #f8fafc; border-bottom: 1px solid var(--border); }
.landing .pricing-card-name, .landing .pricing-card-price { color: var(--text); }
.landing .pricing-card-tx, .landing .pricing-card-body, .landing .pricing-card-body li { color: var(--text2); }
.landing .pricing-contact { color: var(--text2); } .landing .pricing-contact a { color: var(--accent); }
.landing .pay-banner { background: linear-gradient(135deg,#1e3a5f,#2d5a9e); border: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.landing .trust { border-color: var(--border); }
.landing .trust-pill { background: #f8fafc; border: 1px solid var(--border); color: var(--text2); } .landing .trust-pill svg { color: var(--gain); }
.landing .report-includes { color: var(--text3); } .landing .report-list li { color: var(--text); }
.landing .report-preview { background: #fff; border: 1px solid var(--border); -webkit-backdrop-filter: none; backdrop-filter: none; }
.landing .report-preview-header { border-bottom: 1px solid var(--border); } .landing .report-preview-title { color: var(--text); } .landing .report-preview-year { color: var(--text3); }
.landing .report-row { border-bottom: 1px solid #f1f5f9; } .landing .report-row-label { color: var(--text2); } .landing .report-row-value { color: var(--text); }
.landing .report-row-value.green { color: var(--gain); } .landing .report-row-value.red { color: #be1f3a; } .landing .report-row-value.navy { color: var(--navy); }
.landing .faq-item { background: #fff; border: 1px solid var(--border); -webkit-backdrop-filter: none; backdrop-filter: none; } .landing .faq-item[open] { border-color: rgba(45,90,158,.35); }
.landing .faq-item summary { color: var(--text); } .landing .faq-chev { border-color: var(--accent); } .landing .faq-a { color: var(--text2); border-top-color: #f1f5f9; }
.landing .features .btn-outline, .landing .faq .btn-outline, .landing .pricing .btn-outline { color: var(--navy); border-color: var(--navy); background: transparent; }
.landing .features .btn-outline:hover, .landing .faq .btn-outline:hover { background: var(--navy-lt); }
.landing .contact-section { background: linear-gradient(160deg, #14294a 0%, #0d2140 60%, #0b1c33 100%); }

.pricing-ttc{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin-left:.35rem}

/* ===== HERO VISUEL v2 : carte sombre de l'affiche + pastilles flottantes ===== */
.landing .hero-visual{position:relative;padding:2.5rem 1rem 5.5rem}
.hv-card{position:relative;z-index:2;border-radius:22px;padding:1.6rem 1.7rem 1.4rem;color:#e6edf8;
  background:linear-gradient(160deg,rgba(33,58,102,.72) 0%,rgba(16,33,62,.78) 55%,rgba(11,26,48,.82) 100%);
  border:1px solid rgba(127,182,255,.28);box-shadow:0 30px 80px rgba(3,12,28,.55),inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px rgba(255,255,255,.03);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:perspective(1100px) rotateY(-7deg) rotateX(3deg);
  animation:hv-float 7s ease-in-out infinite;will-change:transform}
@keyframes hv-float{0%,100%{transform:perspective(1100px) rotateY(-7deg) rotateX(3deg) translateY(0)}50%{transform:perspective(1100px) rotateY(-5deg) rotateX(2deg) translateY(-12px)}}
.hv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem}
.hv-title{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:#fff}.hv-sub{font-size:.76rem;color:#8fa6c8;margin-top:.15rem}
.hv-tag{font-size:.72rem;font-weight:700;color:#7fb6ff;border:1px solid rgba(127,182,255,.45);background:rgba(74,126,199,.15);border-radius:7px;padding:.2rem .5rem}
.hv-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:.92rem;color:#c3d0e4}
.hv-row b{font-size:1rem;font-weight:700;color:#fff;white-space:nowrap}.hv-row b.hv-gain{color:#34d39a}.hv-row b.hv-loss{color:#ff7a8a}
.hv-total{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0 .6rem;font-weight:600;color:#fff}
.hv-total b{font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:800;letter-spacing:-.02em;background:linear-gradient(95deg,#fff 0%,#dbeaff 45%,#7fdcff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
.hv-lots{display:flex;justify-content:space-between;gap:1rem;font-size:.66rem;color:#6f83a6;margin:.3rem 0 .45rem}
.hv-bar{display:flex;gap:6px;height:8px}.hv-bar i{display:block;height:100%;border-radius:999px;width:0;transition:width 1.4s cubic-bezier(.22,1,.36,1)}
.hv-bar i.a{background:linear-gradient(90deg,#4a7ec7,#8fdcff);box-shadow:0 0 12px rgba(127,182,255,.5)}.hv-bar i.b{background:#34d39a;box-shadow:0 0 12px rgba(52,211,154,.45);transition-delay:.25s}.hv-bar i.c{background:rgba(255,255,255,.1);flex:1;transition-delay:.4s}
.hv-card.go .hv-bar i.a{width:34%}.hv-card.go .hv-bar i.b{width:20%}.hv-card.go .hv-bar i.c{width:auto}
.hv-chip{position:absolute;z-index:3;display:flex;align-items:center;gap:.7rem;padding:.65rem .95rem;border-radius:14px;color:#fff;
  background:rgba(16,33,62,.78);border:1px solid rgba(127,182,255,.28);box-shadow:0 14px 34px rgba(3,12,28,.45);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap}
.hv-chip small{display:block;font-size:.68rem;color:#8fa6c8}.hv-chip b{display:block;font-size:.86rem;font-weight:700}
.hv-ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:none;background:rgba(74,126,199,.18);border:1px solid rgba(127,182,255,.35);color:#9cc4ff}
.hv-ic.ok{background:rgba(52,211,154,.14);border-color:rgba(52,211,154,.4);color:#34d39a}
.hv-chip-1{left:-3.2rem;bottom:2.4rem;animation:hv-bob 6s ease-in-out infinite}
.hv-chip-2{right:1.5rem;bottom:-.2rem;animation:hv-bob 7s ease-in-out -2s infinite}
.hv-chip-3{right:-2.6rem;top:-1.1rem;animation:hv-bob 6.5s ease-in-out -4s infinite}
@keyframes hv-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media (max-width:1100px){.hv-chip-1{left:-1rem}.hv-chip-3{right:-.4rem}}
@media (max-width:900px){.landing .hero-visual{display:block;padding:1.5rem 0 0;margin-top:1rem}.hv-card{transform:none;animation:none}
  .hv-chip{position:static;animation:none;margin:.6rem .4rem 0 0;display:inline-flex}.hv-chips-m{display:flex;flex-wrap:wrap;gap:.5rem}}
@media (prefers-reduced-motion:reduce){.hv-card,.hv-chip{animation:none!important}.hv-bar i{transition:none}}
