/* =========================================================
   Guidance Voyance — Design System Refonte 2026
   "Mystique éditorial moderne" — parchemin / nuit / or
   Tout est scopé sous .gv-page pour ne pas polluer
   le CSS legacy (variables :root préfixées --gv-*)
   ========================================================= */

/* ====================================================
   A11y essentials — global (chargé en haut de tout)
   ==================================================== */

/* Skip-to-content link (visible only when focused via keyboard) */
.gv-skip-link {
    position: absolute;
    top: -40px;
    left: 16px;
    background: #161330;
    color: #FBF7EE;
    padding: 10px 18px;
    border-radius: 8px;
    text-decoration: none;
    font-family: "DM Sans", system-ui, sans-serif;
    font-size: 14px;
    font-weight: 600;
    z-index: 9999;
    transition: top .15s ease;
}
.gv-skip-link:focus,
.gv-skip-link:focus-visible {
    top: 12px;
    outline: 3px solid #E9D7AC;
    outline-offset: 2px;
}

/* Universal focus-visible — applied to all interactive elements that don't already have a custom focus */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
    outline: 2px solid #B98A3A;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Specific focus for gv-btn (don't break the design) */
.gv-btn:focus-visible {
    outline: 2px solid #B98A3A;
    outline-offset: 3px;
}
.gv-btn-gold:focus-visible {
    outline-color: #161330;
}

/* Reduced motion — respect user preference */
@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;
    }
}

/* sr-only utility (visible only to screen readers) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Touch target minimum 44x44 (WCAG 2.5.5) for interactive icons */
@media (pointer: coarse) {
    .gv-btn,
    .gv-bottom-nav-item,
    .gv-bottom-nav-cta,
    a[href].gv-icon-link {
        min-height: 44px;
    }
}

/* ====================================================
   END A11y essentials
   ==================================================== */


.gv-page {
    /* Couleurs */
    --gv-bg: #F4EFE4;
    --gv-bg-warm: #EDE5D2;
    --gv-bg-deep: #161330;
    --gv-bg-deep-2: #0E0B22;
    --gv-ink: #1A1A2E;
    --gv-ink-soft: #4A4761;
    --gv-ink-faint: #807C92;
    --gv-line: #DDD2BC;
    --gv-line-strong: #C6B998;
    --gv-gold: #B98A3A;
    --gv-gold-deep: #8E6321;
    --gv-gold-soft: #E9D7AC;
    --gv-cream: #FBF7EE;
    --gv-paper: #FFFDF7;
    --gv-sage: #6B7F6A;
    --gv-berry: #8A2E3F;

    /* Type */
    --gv-ff-display: "Cormorant Garamond", "Times New Roman", serif;
    --gv-ff-body: "DM Sans", system-ui, -apple-system, sans-serif;
    --gv-ff-mono: ui-monospace, "JetBrains Mono", monospace;

    /* Radii */
    --gv-r-xs: 6px;
    --gv-r-sm: 10px;
    --gv-r-md: 14px;
    --gv-r-lg: 20px;
    --gv-r-pill: 999px;

    /* Spacing tokens (espacements sémantiques) */
    --gv-space-list-cta: 48px;   /* gap entre une liste de features et un CTA bouton */

    font-family: var(--gv-ff-body);
    color: var(--gv-ink);
    background: var(--gv-bg);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.gv-page * { box-sizing: border-box; }

.gv-page h1,
.gv-page h2,
.gv-page h3,
.gv-page h4 {
    font-family: var(--gv-ff-display);
    font-weight: 500;
    letter-spacing: -0.01em;
    margin: 0;
    color: var(--gv-ink);
    text-wrap: balance;
}

.gv-page p { margin: 0; }
.gv-page ul { list-style: none; padding: 0; margin: 0; }
.gv-page a:not(.gv-btn) { color: inherit; text-decoration: none; }
.gv-page a.gv-btn { text-decoration: none; }

.gv-page em.gv-italic {
    font-family: var(--gv-ff-display);
    font-style: italic;
    color: var(--gv-gold-deep);
}

/* ====================================================
   Container
   ==================================================== */
.gv-container {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 22px;
}

@media (min-width: 900px) {
    .gv-container { padding: 0 60px; }
}

/* ====================================================
   Eyebrow
   ==================================================== */
.gv-eyebrow {
    font-family: var(--gv-ff-body);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gv-gold-deep);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.gv-eyebrow::before {
    content: "";
    width: 18px;
    height: 1px;
    background: var(--gv-gold);
}
.gv-eyebrow.gv-eyebrow-no-rule::before { display: none; }
.gv-eyebrow.gv-eyebrow-center {
    display: inline-flex;
    justify-content: center;
}
.gv-eyebrow.gv-eyebrow-light { color: var(--gv-gold-soft); }
.gv-eyebrow.gv-eyebrow-light::before { background: var(--gv-gold-soft); }

/* ====================================================
   Buttons
   ==================================================== */
.gv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 52px;
    padding: 0 24px;
    border-radius: 12px;
    font-family: var(--gv-ff-body);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.01em;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
    line-height: 1;
}
.gv-btn:hover { transform: translateY(-1px); }
.gv-btn:active { transform: translateY(0); }
.gv-btn-block { width: 100%; }

.gv-btn-gold {
    background: linear-gradient(180deg, #C99548 0%, #A87528 100%);
    color: #1B130A;
    box-shadow:
        0 10px 24px -10px rgba(168, 117, 40, 0.6),
        inset 0 1px 0 rgba(255, 240, 200, 0.4);
}
.gv-btn-gold:hover {
    box-shadow:
        0 14px 30px -10px rgba(168, 117, 40, 0.7),
        inset 0 1px 0 rgba(255, 240, 200, 0.5);
}

.gv-btn-primary {
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    box-shadow: 0 8px 24px -10px rgba(22, 19, 48, 0.55);
}

.gv-btn-ghost {
    background: transparent;
    color: var(--gv-ink);
    border: 1px solid var(--gv-line-strong);
}
.gv-btn-ghost:hover { background: var(--gv-paper); }

.gv-btn-dark-ghost {
    background: rgba(255,255,255,0.06);
    color: var(--gv-cream);
    border: 1px solid rgba(255,255,255,0.18);
}
.gv-btn-dark-ghost:hover { background: rgba(255,255,255,0.1); }

.gv-btn-md { height: 46px; font-size: 14.5px; padding: 0 20px; }
.gv-btn-lg { height: 56px; font-size: 16px; padding: 0 28px; border-radius: 14px; }

/* ====================================================
   Cards
   ==================================================== */
.gv-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    padding: 22px;
}
.gv-card-dark {
    background: var(--gv-bg-deep);
    border-color: var(--gv-bg-deep);
    color: var(--gv-cream);
}

/* ====================================================
   Stars
   ==================================================== */
.gv-stars {
    color: var(--gv-gold);
    letter-spacing: 2px;
    font-size: 13px;
    display: inline-block;
}

/* ====================================================
   Soft pill
   ==================================================== */
.gv-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: var(--gv-r-pill);
    font-size: 11px;
    font-weight: 500;
    background: var(--gv-bg-warm);
    color: var(--gv-ink-soft);
    border: 1px solid var(--gv-line);
}
.gv-pill-gold {
    background: var(--gv-gold-soft);
    color: var(--gv-gold-deep);
    border-color: var(--gv-gold);
}

/* ====================================================
   Ribbon (promo)
   ==================================================== */
.gv-ribbon {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(185, 138, 58, 0.12);
    color: var(--gv-gold-deep);
    border: 1px solid rgba(185, 138, 58, 0.3);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 5px 10px;
    border-radius: var(--gv-r-pill);
}
.gv-ribbon-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--gv-gold);
    box-shadow: 0 0 0 3px rgba(185, 138, 58, 0.18);
}

/* ====================================================
   Sections
   ==================================================== */
.gv-section {
    padding: 48px 0;
    position: relative;
}
.gv-section-sm { padding: 32px 0; }
.gv-section-lg { padding: 64px 0; }
.gv-section-dark {
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    overflow: hidden;
}
.gv-section-dark h1,
.gv-section-dark h2,
.gv-section-dark h3,
.gv-section-dark h4 { color: var(--gv-cream); }
.gv-section-cream { background: var(--gv-cream); border-top: 1px solid var(--gv-line); border-bottom: 1px solid var(--gv-line); }
.gv-section-warm { background: var(--gv-bg-warm); }

@media (min-width: 900px) {
    .gv-section { padding: 80px 0; }
    .gv-section-sm { padding: 48px 0; }
    .gv-section-lg { padding: 100px 0; }
}

/* ====================================================
   Hero — constellation décorative
   ==================================================== */
.gv-constellation {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.4;
    width: 100%;
    height: 100%;
}

/* ====================================================
   Hero structure
   ==================================================== */
.gv-hero {
    position: relative;
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    overflow: hidden;
    padding: 32px 0 40px;
}
.gv-hero h1 {
    color: var(--gv-cream);
    font-size: 38px;
    line-height: 1.08;
    margin-top: 18px;
    margin-bottom: 28px;
    font-weight: 400;
}
.gv-hero h1 em {
    color: var(--gv-gold-soft);
    font-family: var(--gv-ff-display);
    font-style: italic;
    display: inline-block;
    margin-top: 4px;
}
.gv-hero-lead {
    color: rgba(251,247,238,0.78);
    font-size: 15.5px;
    line-height: 1.6;
}
.gv-hero-actions {
    margin-top: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.gv-hero-microproof {
    margin-top: 14px;
    display: flex;
    justify-content: center;
    gap: 16px;
    font-size: 11.5px;
    color: rgba(251,247,238,0.6);
    flex-wrap: wrap;
}
.gv-hero-microproof span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.gv-proof-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 22px;
    padding: 12px 14px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--gv-r-pill);
}
.gv-proof-bar-avatars {
    display: flex;
    flex-shrink: 0;
}
.gv-proof-bar-avatars span {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid var(--gv-bg-deep);
}
.gv-proof-bar-avatars span + span { margin-left: -8px; }
.gv-proof-bar-text {
    font-size: 12.5px;
    color: rgba(251,247,238,0.92);
    line-height: 1.35;
}
.gv-proof-bar-text strong { color: var(--gv-gold-soft); }

@media (min-width: 900px) {
    .gv-hero { padding: 60px 0 80px; }
    .gv-hero h1 { font-size: 72px; line-height: 0.98; margin-top: 22px; margin-bottom: 36px; }
    .gv-hero-lead { font-size: 17.5px; max-width: 540px; line-height: 1.55; }
    .gv-hero-actions { flex-direction: row; align-items: center; gap: 14px; margin-top: 30px; }
    .gv-hero-microproof {
        justify-content: flex-start;
        font-size: 13px;
        gap: 22px;
        margin-top: 20px;
    }
    .gv-proof-bar { margin-top: 36px; }
    .gv-proof-bar-avatars span { width: 36px; height: 36px; }
    .gv-proof-bar-avatars span + span { margin-left: -10px; }
    .gv-proof-bar-text { font-size: 14px; }
}

.gv-hero-grid {
    position: relative;
    display: block;
}
@media (min-width: 900px) {
    .gv-hero-grid {
        display: grid;
        grid-template-columns: 1.15fr 1fr;
        gap: 60px;
        align-items: center;
    }
}

/* Hero aside (desktop floating cards) */
.gv-hero-aside {
    display: none;
}
@media (min-width: 900px) {
    .gv-hero-aside {
        position: relative;
        display: block;
    }
}
.gv-hero-portrait {
    width: 100%;
    aspect-ratio: 3/4;
    border-radius: 16px;
    background:
        repeating-linear-gradient(135deg, transparent 0 6px, rgba(255,255,255,0.04) 6px 7px),
        linear-gradient(180deg, #1F1A3E, #0E0B22);
    border: 1px solid rgba(255,255,255,0.12);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 48px 36px;
    position: relative;
}
.gv-hero-portrait-glyph {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    border: 1px solid var(--gv-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--gv-ff-display);
    font-size: 40px;
    color: var(--gv-gold-soft);
    background: radial-gradient(circle at 50% 50%, rgba(185, 138, 58, 0.18) 0%, transparent 70%);
}
.gv-hero-portrait-quote {
    font-family: var(--gv-ff-display);
    font-style: italic;
    font-size: 22px;
    line-height: 1.35;
    color: var(--gv-cream);
    text-align: center;
    max-width: 320px;
    margin: 0;
}
.gv-hero-portrait-attrib {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gv-gold-soft);
    margin-top: 4px;
}
.gv-hero-floating-testimonial {
    position: absolute;
    bottom: 24px;
    left: 24px;
    right: 24px;
    background: var(--gv-paper);
    color: var(--gv-ink);
    padding: 18px 20px;
    border-radius: 14px;
    box-shadow: 0 24px 60px -20px rgba(0,0,0,0.5);
}
.gv-hero-floating-testimonial p {
    margin: 8px 0 0;
    font-family: var(--gv-ff-display);
    font-size: 16px;
    font-style: italic;
    line-height: 1.35;
}
.gv-hero-floating-testimonial-meta {
    margin-top: 10px;
    font-size: 12px;
    color: var(--gv-ink-faint);
    display: flex;
    justify-content: space-between;
}
.gv-hero-floating-badge {
    position: absolute;
    top: 30px;
    right: -24px;
    background: var(--gv-gold-soft);
    color: var(--gv-ink);
    padding: 12px 16px;
    border-radius: 14px;
    border: 1px solid var(--gv-gold);
}
.gv-hero-floating-badge .gv-tiny {
    font-size: 11px;
    color: var(--gv-gold-deep);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 600;
}
.gv-hero-floating-badge .gv-big {
    font-family: var(--gv-ff-display);
    font-size: 32px;
    line-height: 1;
    margin-top: 2px;
}

/* Mobile stat grid (under hero) */
.gv-hero-mobile-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 24px;
}
.gv-hero-stat {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    padding: 14px;
}
.gv-hero-stat-value {
    font-family: var(--gv-ff-display);
    font-size: 26px;
    line-height: 1;
    color: var(--gv-gold-soft);
}
.gv-hero-stat-label {
    font-size: 11.5px;
    color: rgba(251,247,238,0.65);
    margin-top: 6px;
}
@media (min-width: 900px) {
    .gv-hero-mobile-stats { display: none; }
}

/* ====================================================
   Trust band
   ==================================================== */
.gv-trust-band {
    background: var(--gv-cream);
    border-top: 1px solid var(--gv-line);
    border-bottom: 1px solid var(--gv-line);
    padding: 14px 0;
    overflow: hidden;
}
.gv-trust-band-row {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 0 22px;
}
.gv-trust-band-row::-webkit-scrollbar { display: none; }
.gv-trust-band-row > div {
    display: flex;
    gap: 8px;
    align-items: center;
    flex: 0 0 auto;
    font-size: 12.5px;
    color: var(--gv-ink-soft);
    white-space: nowrap;
}
.gv-trust-band-row svg {
    color: var(--gv-gold-deep);
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}
@media (min-width: 900px) {
    .gv-trust-band { padding: 18px 0; }
    .gv-trust-band-row {
        justify-content: space-between;
        padding: 0 60px;
        overflow: visible;
        gap: 24px;
    }
    .gv-trust-band-row > div { font-size: 14px; }
}

/* ====================================================
   Promo banner
   ==================================================== */
.gv-promo-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: var(--gv-gold-soft);
    border: 1px solid var(--gv-gold);
    border-radius: 14px;
    margin-top: 24px;
}
.gv-promo-banner-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--gv-bg-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--gv-gold-soft);
}
.gv-promo-banner-body { flex: 1; }
.gv-promo-banner-kicker {
    font-size: 11.5px;
    color: var(--gv-gold-deep);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.gv-promo-banner-text {
    font-size: 13.5px;
    color: var(--gv-ink);
    margin-top: 3px;
}
.gv-promo-banner-text strong { font-weight: 700; }

/* ====================================================
   Section heads
   ==================================================== */
.gv-section-head { margin-bottom: 26px; }
.gv-section-head h2 {
    font-size: 30px;
    line-height: 1.1;
    margin-top: 12px;
    font-weight: 400;
}
.gv-section-head p {
    margin-top: 12px;
    color: var(--gv-ink-soft);
    font-size: 15px;
    line-height: 1.55;
}
.gv-section-head-center {
    text-align: center;
}
.gv-section-head-center .gv-eyebrow { justify-content: center; }
.gv-section-head-center p { max-width: 640px; margin-left: auto; margin-right: auto; }

@media (min-width: 900px) {
    .gv-section-head { margin-bottom: 40px; }
    .gv-section-head h2 { font-size: 52px; line-height: 1.02; margin-top: 16px; }
    .gv-section-head p { font-size: 17px; margin-top: 14px; }
}

/* ====================================================
   Process steps
   ==================================================== */
.gv-process-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.gv-process-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    padding: 20px 22px;
    display: flex;
    gap: 18px;
    align-items: flex-start;
}
.gv-process-num {
    font-family: var(--gv-ff-display);
    font-size: 32px;
    color: var(--gv-gold);
    line-height: 1;
    flex-shrink: 0;
    font-style: italic;
}
.gv-process-card h3 {
    font-family: var(--gv-ff-display);
    font-size: 20px;
    color: var(--gv-ink);
    line-height: 1.2;
    font-weight: 500;
}
.gv-process-card p {
    font-size: 14px;
    color: var(--gv-ink-soft);
    margin-top: 8px;
    line-height: 1.5;
}
@media (min-width: 900px) {
    .gv-process-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 22px;
    }
    .gv-process-card {
        flex-direction: column;
        padding: 32px 28px;
    }
    .gv-process-num { font-size: 48px; }
    .gv-process-card h3 { font-size: 24px; margin-top: 18px; }
}

/* ====================================================
   Pricing cards (preview & full)
   ==================================================== */
.gv-pricing-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
@media (min-width: 900px) {
    .gv-pricing-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        align-items: stretch;
        max-width: 1080px;
        margin: 0 auto;
    }
}
.gv-pricing-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    padding: 32px 24px 28px;
    position: relative;
    display: flex;
    flex-direction: column;
}
.gv-pricing-card.is-featured {
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    border-color: var(--gv-bg-deep);
    box-shadow: 0 20px 60px -25px rgba(22,19,48,0.5);
}
@media (min-width: 900px) {
    .gv-pricing-card.is-featured { transform: translateY(-10px); }
}
.gv-pricing-badge {
    position: absolute;
    top: -11px;
    left: 22px;
    background: var(--gv-gold);
    color: var(--gv-bg-deep);
    font-size: 10.5px;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: var(--gv-r-pill);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}
@media (min-width: 900px) {
    .gv-pricing-card.is-featured .gv-pricing-badge {
        left: 50%;
        transform: translateX(-50%);
    }
}
.gv-pricing-name {
    font-family: var(--gv-ff-display);
    font-size: 24px;
    line-height: 1;
    font-weight: 500;
}
.gv-pricing-tagline {
    font-size: 13.5px;
    color: var(--gv-ink-soft);
    margin-top: 10px;
    min-height: 42px;
    line-height: 1.5;
}
.gv-pricing-card.is-featured .gv-pricing-tagline { color: rgba(251,247,238,0.7); }
.gv-pricing-price {
    margin-top: 24px;
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.gv-pricing-amount {
    font-family: var(--gv-ff-display);
    font-size: 38px;
    line-height: 1;
    color: var(--gv-ink);
}
.gv-pricing-card.is-featured .gv-pricing-amount { color: var(--gv-gold-soft); }
.gv-pricing-old {
    font-size: 15px;
    color: var(--gv-ink-faint);
    text-decoration: line-through;
}
.gv-pricing-card.is-featured .gv-pricing-old { color: rgba(251,247,238,0.5); }
.gv-pricing-delay {
    font-size: 12px;
    color: var(--gv-ink-faint);
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.gv-pricing-card.is-featured .gv-pricing-delay { color: rgba(251,247,238,0.6); }
.gv-pricing-features {
    margin: 24px 0 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 12px;
    flex: 1;
}

/* Global : espace garanti entre une liste et un CTA bouton qui suit */
.gv-page ul + a.gv-btn,
.gv-page ul + .gv-btn {
    margin-top: var(--gv-space-list-cta);
}
.gv-pricing-features li {
    display: flex;
    gap: 10px;
    font-size: 13.5px;
    color: var(--gv-ink-soft);
    line-height: 1.45;
    align-items: flex-start;
}
.gv-pricing-card.is-featured .gv-pricing-features li { color: rgba(251,247,238,0.85); }
.gv-pricing-features svg {
    color: var(--gv-gold-deep);
    flex-shrink: 0;
    margin-top: 2px;
}
.gv-pricing-card.is-featured .gv-pricing-features svg { color: var(--gv-gold-soft); }
.gv-pricing-cta {
    width: 100%;
    margin-top: var(--gv-space-list-cta);
}

/* ====================================================
   Testimonials cards
   ==================================================== */
.gv-testimonials-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
@media (min-width: 900px) {
    .gv-testimonials-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 22px;
    }
}
.gv-testimonial {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    padding: 22px;
}
.gv-testimonial.is-featured {
    background: var(--gv-bg-deep);
    border-color: var(--gv-bg-deep);
    color: var(--gv-cream);
}
.gv-testimonial-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.gv-testimonial.is-featured .gv-stars { color: var(--gv-gold-soft); }
.gv-testimonial p {
    font-family: var(--gv-ff-display);
    font-size: 18px;
    line-height: 1.4;
    font-style: italic;
    color: var(--gv-ink);
    margin: 0;
}
.gv-testimonial.is-featured p { color: var(--gv-cream); }
.gv-testimonial-meta {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--gv-line);
    font-size: 12.5px;
    color: var(--gv-ink-faint);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
}
.gv-testimonial-meta strong { color: var(--gv-ink); font-weight: 600; }
.gv-testimonial.is-featured .gv-testimonial-meta {
    color: rgba(251,247,238,0.6);
    border-top-color: rgba(255,255,255,0.12);
}
.gv-testimonial.is-featured .gv-testimonial-meta strong { color: var(--gv-cream); }

/* ====================================================
   Split content (Ici / Notre position)
   ==================================================== */
.gv-split {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
@media (min-width: 900px) {
    .gv-split {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 60px;
        align-items: flex-start;
    }
}
.gv-split-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.gv-split-card h3 {
    font-size: 18px;
    color: var(--gv-gold-deep);
    font-weight: 600;
    margin-bottom: 12px;
    font-family: var(--gv-ff-body);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.gv-split-card ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.gv-split-card ul li {
    padding-left: 18px;
    position: relative;
    font-size: 14px;
    color: var(--gv-ink-soft);
    line-height: 1.5;
}
.gv-split-card ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 8px;
    height: 1px;
    background: var(--gv-gold);
}

/* ====================================================
   Capture (email guide) card
   ==================================================== */
.gv-capture-card {
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    border-radius: 22px;
    padding: 28px 24px;
    position: relative;
    overflow: hidden;
}
.gv-capture-card h2 {
    color: var(--gv-cream);
    font-size: 28px;
    line-height: 1.1;
    margin-top: 12px;
    font-weight: 400;
}
.gv-capture-card p {
    margin-top: 12px;
    color: rgba(251,247,238,0.75);
    font-size: 14.5px;
    line-height: 1.5;
}
.gv-capture-form {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
}
.gv-capture-form input[type="email"] {
    width: 100%;
    height: 50px;
    padding: 0 16px;
    border-radius: 12px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.18);
    color: var(--gv-cream);
    font-family: var(--gv-ff-body);
    font-size: 15px;
    outline: none;
    transition: border-color .15s ease;
}
.gv-capture-form input[type="email"]::placeholder { color: rgba(251,247,238,0.45); }
.gv-capture-form input[type="email"]:focus { border-color: var(--gv-gold-soft); }
.gv-capture-form .gv-capture-optin {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 12.5px;
    color: rgba(251,247,238,0.7);
    line-height: 1.45;
}
.gv-capture-form .gv-capture-optin input[type="checkbox"] {
    margin-top: 3px;
    accent-color: var(--gv-gold);
}
.gv-capture-feedback {
    margin: 0;
    font-size: 12.5px;
    color: var(--gv-gold-soft);
    min-height: 1em;
}
@media (min-width: 900px) {
    .gv-capture-card {
        padding: 56px 60px;
        display: grid;
        grid-template-columns: 1.1fr 1fr;
        gap: 60px;
        align-items: center;
    }
    .gv-capture-card h2 { font-size: 42px; line-height: 1.05; }
}

/* ====================================================
   Final CTA section
   ==================================================== */
.gv-final-cta {
    text-align: center;
    padding: 56px 0;
    position: relative;
    overflow: hidden;
}
.gv-final-cta h2 {
    color: var(--gv-cream);
    font-size: 32px;
    line-height: 1.08;
    margin-top: 16px;
    font-weight: 400;
}
.gv-final-cta h2 em {
    color: var(--gv-gold-soft);
    font-family: var(--gv-ff-display);
    font-style: italic;
}
.gv-final-cta p {
    margin-top: 16px;
    color: rgba(251,247,238,0.7);
    font-size: 14.5px;
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
}
.gv-final-cta-actions {
    margin-top: 26px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: center;
}
.gv-final-cta-payments {
    margin-top: 22px;
    font-size: 11.5px;
    color: rgba(251,247,238,0.5);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
@media (min-width: 900px) {
    .gv-final-cta { padding: 100px 0; }
    .gv-final-cta h2 { font-size: 60px; line-height: 1.02; }
    .gv-final-cta p { font-size: 17px; max-width: 600px; }
    .gv-final-cta-actions {
        flex-direction: row;
        align-items: center;
    }
}

/* ====================================================
   Editorial hero (offers, etc.)
   ==================================================== */
.gv-editorial-hero {
    text-align: center;
    padding: 56px 0 32px;
    position: relative;
}
.gv-editorial-hero h1 {
    font-size: 38px;
    line-height: 1.06;
    margin-top: 16px;
    font-weight: 400;
}
.gv-editorial-hero h1 em {
    font-family: var(--gv-ff-display);
    font-style: italic;
    color: var(--gv-gold-deep);
}
.gv-editorial-hero p {
    margin-top: 18px;
    color: var(--gv-ink-soft);
    font-size: 15.5px;
    line-height: 1.6;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 900px) {
    .gv-editorial-hero { padding: 90px 0 48px; }
    .gv-editorial-hero h1 { font-size: 60px; line-height: 1; margin-top: 20px; }
    .gv-editorial-hero p { font-size: 18px; margin-top: 22px; max-width: 720px; }
}

/* ====================================================
   Guarantees (3 colonnes)
   ==================================================== */
.gv-guarantees-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
@media (min-width: 900px) {
    .gv-guarantees-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 22px;
    }
}
.gv-guarantee-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-left: 3px solid var(--gv-gold);
    border-radius: 14px;
    padding: 22px 24px;
}
.gv-guarantee-card h3 {
    font-family: var(--gv-ff-display);
    font-size: 22px;
    line-height: 1.2;
    color: var(--gv-ink);
    font-weight: 500;
}
.gv-guarantee-card p {
    margin-top: 10px;
    font-size: 14px;
    color: var(--gv-ink-soft);
    line-height: 1.55;
}

/* ====================================================
   Comparison table
   ==================================================== */
.gv-compare-shell {
    overflow-x: auto;
    border-radius: 18px;
    border: 1px solid var(--gv-line);
    background: var(--gv-paper);
    -webkit-overflow-scrolling: touch;
}
.gv-compare-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
    min-width: 640px;
}
.gv-compare-table thead th {
    text-align: left;
    padding: 18px 18px;
    background: var(--gv-bg-warm);
    border-bottom: 1px solid var(--gv-line);
    font-family: var(--gv-ff-display);
    font-size: 16px;
    font-weight: 500;
    color: var(--gv-ink);
}
.gv-compare-table thead th:first-child {
    color: var(--gv-gold-deep);
    font-family: var(--gv-ff-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.gv-compare-table thead th.is-featured {
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
}
.gv-compare-table tbody td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--gv-line);
    color: var(--gv-ink-soft);
    vertical-align: middle;
}
.gv-compare-table tbody td:first-child {
    color: var(--gv-ink);
    font-weight: 500;
}
.gv-compare-table tbody tr:last-child td { border-bottom: none; }
.gv-compare-table tbody td.is-featured {
    background: rgba(22, 19, 48, 0.04);
    color: var(--gv-ink);
}
@media (min-width: 900px) {
    .gv-compare-table { font-size: 14.5px; }
    .gv-compare-table thead th { padding: 22px; font-size: 18px; }
    .gv-compare-table tbody td { padding: 16px 22px; }
}

/* ====================================================
   FAQ accordion
   ==================================================== */
.gv-faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.gv-faq-item {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 14px;
    overflow: hidden;
    transition: border-color .15s ease;
}
.gv-faq-item[open] {
    border-color: var(--gv-line-strong);
    background: var(--gv-cream);
}
.gv-faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 22px;
    font-family: var(--gv-ff-display);
    font-size: 19px;
    font-weight: 500;
    color: var(--gv-ink);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
}
.gv-faq-item summary::-webkit-details-marker { display: none; }
.gv-faq-item summary::after {
    content: "+";
    font-family: var(--gv-ff-body);
    font-size: 22px;
    color: var(--gv-gold-deep);
    line-height: 1;
    flex-shrink: 0;
    transition: transform .15s ease;
}
.gv-faq-item[open] summary::after {
    content: "−";
}
.gv-faq-item p {
    padding: 0 22px 20px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--gv-ink-soft);
    margin: 0;
}
@media (min-width: 900px) {
    .gv-faq-item summary { padding: 22px 28px; font-size: 22px; }
    .gv-faq-item p { padding: 0 28px 24px; font-size: 16px; }
}

/* ====================================================
   Section CTA centered actions
   ==================================================== */
.gv-actions-center {
    margin-top: 32px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
    justify-content: center;
}
@media (min-width: 900px) {
    .gv-actions-center { flex-direction: row; align-items: center; gap: 14px; }
}

/* ====================================================
   Voyant Card (liste)
   ==================================================== */
.gv-voyants-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
@media (min-width: 700px) {
    .gv-voyants-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 22px;
    }
}

.gv-voyant-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 120px 1fr;
    transition: border-color .15s ease, box-shadow .2s ease;
}
.gv-voyant-card:hover {
    border-color: var(--gv-line-strong);
    box-shadow: 0 20px 50px -25px rgba(22,19,48,0.18);
}
.gv-voyant-card-media {
    position: relative;
    overflow: hidden;
    background:
        repeating-linear-gradient(135deg, transparent 0 6px, rgba(0,0,0,0.025) 6px 7px),
        linear-gradient(180deg, var(--gv-bg-warm), var(--gv-gold-soft));
}
.gv-voyant-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.gv-voyant-card-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--gv-ff-display);
    font-size: 46px;
    color: var(--gv-gold-deep);
}
.gv-voyant-card-body {
    padding: 16px 18px 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.gv-voyant-card-role {
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gv-ink-faint);
    font-weight: 600;
}
.gv-voyant-card-name {
    font-family: var(--gv-ff-display);
    font-size: 22px;
    line-height: 1.1;
    color: var(--gv-ink);
    margin: 0;
    font-weight: 500;
}
.gv-voyant-card-desc {
    font-size: 13.5px;
    color: var(--gv-ink-soft);
    line-height: 1.45;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gv-voyant-card-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: auto;
    padding-top: 8px;
}
.gv-voyant-card-actions .gv-btn { width: 100%; }
@media (min-width: 700px) {
    .gv-voyant-card {
        grid-template-columns: 150px 1fr;
    }
    .gv-voyant-card-name { font-size: 24px; }
    .gv-voyant-card-actions { flex-direction: row; }
    .gv-voyant-card-actions .gv-btn { width: auto; flex: 1; }
}

/* "Pas sûr de qui choisir" reassurance card */
.gv-voyants-help-card {
    background: var(--gv-bg-warm);
    border: 1px dashed var(--gv-line-strong);
    border-radius: 18px;
    padding: 28px 24px;
    text-align: center;
}
.gv-voyants-help-card h3 {
    font-size: 22px;
    margin-top: 10px;
    color: var(--gv-ink);
}
.gv-voyants-help-card p {
    margin-top: 8px;
    font-size: 14px;
    color: var(--gv-ink-soft);
    line-height: 1.5;
}
.gv-voyants-help-card .gv-btn {
    margin-top: 16px;
}

/* ====================================================
   Voyant Detail Page
   ==================================================== */
.gv-voyant-hero {
    position: relative;
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    overflow: hidden;
    padding: 32px 0 40px;
}
.gv-voyant-hero-grid {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 18px;
    align-items: flex-end;
    position: relative;
}
.gv-voyant-portrait {
    aspect-ratio: 3/4;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.15);
    background:
        repeating-linear-gradient(135deg, transparent 0 6px, rgba(255,255,255,0.04) 6px 7px),
        linear-gradient(180deg, #1F1A3E, #0E0B22);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gv-voyant-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.gv-voyant-portrait-fallback {
    font-family: var(--gv-ff-display);
    font-size: 64px;
    color: var(--gv-gold-soft);
}
.gv-voyant-hero h1 {
    color: var(--gv-cream);
    font-size: 32px;
    line-height: 1.05;
    margin-top: 8px;
    font-weight: 400;
}
.gv-voyant-hero h1 .gv-honorific {
    font-family: var(--gv-ff-display);
    font-style: italic;
    color: var(--gv-gold-soft);
    font-size: 0.6em;
    margin-left: 4px;
}
.gv-voyant-hero h1 .gv-pseudonym-tag {
    display: inline-block;
    margin-left: 10px;
    font-family: var(--gv-ff-sans, system-ui);
    font-size: 0.36em;
    font-weight: 400;
    color: rgba(251, 247, 238, 0.55);
    letter-spacing: 0.04em;
    vertical-align: middle;
    cursor: help;
    border-bottom: 1px dotted rgba(251, 247, 238, 0.35);
    padding-bottom: 1px;
}
.gv-voyant-hero h1 .gv-pseudonym-tag:hover {
    color: rgba(251, 247, 238, 0.85);
}
.gv-voyant-hero-role {
    font-size: 12px;
    color: rgba(251,247,238,0.65);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-top: 6px;
}
.gv-voyant-hero-lead {
    margin-top: 22px;
    color: rgba(251,247,238,0.78);
    font-size: 15.5px;
    line-height: 1.55;
}
.gv-voyant-hero-actions {
    margin-top: 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
@media (min-width: 900px) {
    .gv-voyant-hero { padding: 60px 0 70px; }
    .gv-voyant-hero-grid {
        grid-template-columns: 280px 1fr;
        gap: 50px;
        align-items: center;
    }
    .gv-voyant-hero h1 { font-size: 56px; margin-top: 14px; }
    .gv-voyant-hero-lead { font-size: 17.5px; max-width: 540px; }
    .gv-voyant-hero-actions { flex-direction: row; gap: 14px; }
}

.gv-voyant-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 18px;
}

/* Bio quote */
.gv-voyant-bio {
    margin-top: 0;
}
.gv-voyant-bio-quote {
    font-family: var(--gv-ff-display);
    font-style: italic;
    font-size: 22px;
    line-height: 1.4;
    color: var(--gv-ink);
    margin: 14px 0 16px;
}
.gv-voyant-bio-text {
    font-size: 14.5px;
    color: var(--gv-ink-soft);
    line-height: 1.6;
}

/* Voyant hero stats (review/consultations row) */
.gv-voyant-hero-stats {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 12px;
    flex-wrap: wrap;
}
.gv-voyant-hero-stats .gv-stars { color: var(--gv-gold-soft); font-size: 15px; }
.gv-voyant-hero-stats-text {
    font-size: 13px;
    color: rgba(251,247,238,0.85);
}
.gv-voyant-hero-stats-sep {
    color: rgba(251,247,238,0.4);
}
.gv-voyant-hero-stats-meta {
    font-size: 12.5px;
    color: rgba(251,247,238,0.65);
}

/* Profile 2-col layout */
.gv-voyant-profile-grid {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
@media (min-width: 900px) {
    .gv-voyant-profile-grid {
        display: grid;
        grid-template-columns: 320px 1fr;
        gap: 56px;
        align-items: flex-start;
    }
    .gv-voyant-profile-sidebar { position: sticky; top: 100px; }
}

/* Info card (key-value grid) */
.gv-voyant-info-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 16px;
    padding: 22px 24px;
}
.gv-voyant-info-card + .gv-voyant-info-card { margin-top: 16px; }
.gv-voyant-info-card h3 {
    font-family: var(--gv-ff-body);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gv-gold-deep);
    font-weight: 600;
    margin: 0 0 14px;
}
.gv-voyant-info-rows {
    display: flex;
    flex-direction: column;
}
.gv-voyant-info-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--gv-line);
    font-size: 14px;
}
.gv-voyant-info-row:last-child { border-bottom: none; }
.gv-voyant-info-row-label {
    color: var(--gv-ink-faint);
    font-size: 12.5px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    flex-shrink: 0;
}
.gv-voyant-info-row-value {
    color: var(--gv-ink);
    text-align: right;
    font-weight: 500;
}

/* Trust badge (SIREN) */
.gv-voyant-trust-badge {
    margin-top: 16px;
    padding: 14px 18px;
    background: var(--gv-bg-warm);
    border: 1px solid var(--gv-line);
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.gv-voyant-trust-badge-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--gv-bg-deep);
    color: var(--gv-gold-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.gv-voyant-trust-badge-text {
    font-size: 12.5px;
    color: var(--gv-ink-soft);
    line-height: 1.4;
}
.gv-voyant-trust-badge-text strong {
    color: var(--gv-ink);
    font-weight: 600;
}

/* Bio narrative */
.gv-voyant-bio-narrative {
    font-size: 16px;
    line-height: 1.65;
    color: var(--gv-ink);
}
.gv-voyant-bio-narrative p { margin-bottom: 14px; }
.gv-voyant-bio-narrative p:last-child { margin-bottom: 0; }

.gv-voyant-pull-quote {
    border-left: 3px solid var(--gv-gold);
    padding-left: 20px;
    margin: 24px 0;
    font-family: var(--gv-ff-display);
    font-style: italic;
    font-size: 22px;
    line-height: 1.4;
    color: var(--gv-ink);
}

/* Final CTA banner (voyant page) */
.gv-voyant-cta-banner {
    position: relative;
    overflow: hidden;
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    padding: 48px 0 56px;
    text-align: center;
}
.gv-voyant-cta-banner h2 {
    color: var(--gv-cream);
    font-size: 30px;
    line-height: 1.1;
    margin-top: 12px;
    font-weight: 400;
}
.gv-voyant-cta-banner h2 em {
    color: var(--gv-gold-soft);
    font-family: var(--gv-ff-display);
    font-style: italic;
}
.gv-voyant-cta-banner p {
    margin-top: 12px;
    color: rgba(251,247,238,0.7);
    font-size: 14.5px;
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
}
.gv-voyant-cta-banner-actions {
    margin-top: 24px;
}
@media (min-width: 900px) {
    .gv-voyant-cta-banner { padding: 80px 0; }
    .gv-voyant-cta-banner h2 { font-size: 48px; }
}

/* Sticky bottom CTA (mobile) */
.gv-voyant-sticky-cta {
    position: sticky;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--gv-bg);
    padding: 12px 18px 16px;
    border-top: 1px solid var(--gv-line);
    box-shadow: 0 -8px 24px -10px rgba(0,0,0,0.1);
    display: flex;
    gap: 12px;
    align-items: center;
    z-index: 50;
}
.gv-voyant-sticky-cta-info {
    flex-shrink: 0;
}
.gv-voyant-sticky-cta-label {
    font-size: 10.5px;
    color: var(--gv-ink-faint);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.gv-voyant-sticky-cta-price {
    font-family: var(--gv-ff-display);
    font-size: 22px;
    line-height: 1;
    color: var(--gv-ink);
    margin-top: 2px;
}
.gv-voyant-sticky-cta-price-old {
    font-size: 13px;
    color: var(--gv-ink-faint);
    text-decoration: line-through;
    margin-right: 4px;
}
.gv-voyant-sticky-cta .gv-btn {
    flex: 1;
    height: 48px;
    font-size: 14.5px;
}
@media (min-width: 900px) {
    .gv-voyant-sticky-cta { display: none; }
}

/* ====================================================
   Landing-specific components
   ==================================================== */

/* Pain points list (cocheD list "Reconnaissez-vous ça?") */
.gv-painpoint-list {
    list-style: none;
    padding: 0;
    margin: 24px 0 0;
}
.gv-painpoint-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 0;
    border-bottom: 1px solid var(--gv-line);
    font-size: 14.5px;
    color: var(--gv-ink-soft);
    line-height: 1.5;
}
.gv-painpoint-list li:last-child { border-bottom: none; }
.gv-painpoint-list li svg {
    color: var(--gv-gold-deep);
    flex-shrink: 0;
    margin-top: 3px;
}

/* Story testimonial (with quote icon) */
.gv-story-testimonial {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    padding: 28px 24px 24px;
    position: relative;
    margin-top: 18px;
}
.gv-story-testimonial-quote-icon {
    color: var(--gv-gold-soft);
    margin-bottom: 8px;
}
.gv-story-testimonial p {
    margin: 8px 0 0;
    font-family: var(--gv-ff-display);
    font-size: 20px;
    line-height: 1.4;
    color: var(--gv-ink);
    font-style: italic;
}
.gv-story-testimonial-author {
    margin-top: 18px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.gv-story-testimonial-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--gv-gold-soft);
    color: var(--gv-gold-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--gv-ff-display);
    font-size: 17px;
    font-weight: 500;
    flex-shrink: 0;
}
.gv-story-testimonial-meta strong {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--gv-ink);
    display: block;
}
.gv-story-testimonial-meta small {
    font-size: 11.5px;
    color: var(--gv-ink-faint);
}

/* Pain card (paper card on dark hero — used as 2nd col in landing hero) */
.gv-hero-pain-card {
    background: var(--gv-paper);
    color: var(--gv-ink);
    border-radius: 20px;
    padding: 26px 24px 24px;
    margin-top: 32px;
    box-shadow: 0 30px 60px -25px rgba(0,0,0,0.5);
    position: relative;
}
.gv-hero-pain-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 24px;
    right: 24px;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, var(--gv-gold) 50%, transparent 100%);
    border-radius: 2px;
}
.gv-hero-pain-card-eyebrow {
    font-family: var(--gv-ff-body);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gv-gold-deep);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.gv-hero-pain-card-eyebrow::before {
    content: "";
    width: 18px;
    height: 1px;
    background: var(--gv-gold);
}
.gv-hero-pain-card-title {
    font-family: var(--gv-ff-display);
    font-size: 21px;
    line-height: 1.25;
    color: var(--gv-ink);
    font-weight: 500;
    margin: 12px 0 16px;
}
.gv-hero-pain-card-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.gv-hero-pain-card-list li {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    padding: 11px 0;
    border-bottom: 1px solid var(--gv-line);
    color: var(--gv-ink-soft);
    font-size: 14px;
    line-height: 1.5;
}
.gv-hero-pain-card-list li:last-child { border-bottom: none; }
.gv-hero-pain-card-list svg {
    color: var(--gv-gold-deep);
    flex-shrink: 0;
    margin-top: 3px;
}
.gv-hero-pain-card-closing {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--gv-line);
    font-family: var(--gv-ff-display);
    font-style: italic;
    font-size: 16px;
    color: var(--gv-gold-deep);
    text-align: center;
}
@media (min-width: 900px) {
    .gv-hero-pain-card {
        margin-top: 0;
        padding: 32px 32px 28px;
    }
    .gv-hero-pain-card-title { font-size: 24px; }
    .gv-hero-pain-card-list li { font-size: 14.5px; }
    .gv-hero-pain-card-closing { font-size: 17px; }
}

/* Offer highlight card (dark, used in landing hero) */
.gv-offer-highlight-card {
    margin-top: 26px;
    padding: 20px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 16px;
}
.gv-offer-highlight-kicker {
    font-size: 11.5px;
    color: var(--gv-gold-soft);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 12px;
}
.gv-offer-highlight-price {
    display: flex;
    align-items: baseline;
    gap: 12px;
}
.gv-offer-highlight-price-main {
    font-family: var(--gv-ff-display);
    font-size: 48px;
    line-height: 1;
    color: var(--gv-cream);
}
.gv-offer-highlight-price-old {
    font-size: 17px;
    color: rgba(251,247,238,0.45);
    text-decoration: line-through;
}
.gv-offer-highlight-price-discount {
    font-size: 12.5px;
    color: var(--gv-gold-soft);
    font-weight: 600;
}
.gv-offer-highlight-meta {
    margin-top: 10px;
    font-size: 13px;
    color: rgba(251,247,238,0.7);
}
.gv-offer-highlight-card .gv-btn {
    margin-top: 18px;
    width: 100%;
}

/* Blog filter pills */
.gv-blog-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 32px;
    justify-content: center;
}
.gv-blog-filter-pill {
    appearance: none;
    border: 1px solid var(--gv-line);
    background: var(--gv-paper);
    color: var(--gv-ink-soft);
    font-family: var(--gv-ff-body);
    font-size: 13px;
    font-weight: 500;
    padding: 8px 14px;
    border-radius: var(--gv-r-pill);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.gv-blog-filter-pill:hover {
    border-color: var(--gv-line-strong);
    color: var(--gv-ink);
}
.gv-blog-filter-pill.is-active {
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    border-color: var(--gv-bg-deep);
}

/* Blog grid */
.gv-blog-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 700px) {
    .gv-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .gv-blog-grid { grid-template-columns: repeat(3, 1fr); }
}

.gv-blog-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 18px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color .15s ease, box-shadow .2s ease, transform .15s ease;
}
.gv-blog-card:hover {
    border-color: var(--gv-line-strong);
    box-shadow: 0 20px 50px -25px rgba(22,19,48,0.18);
    transform: translateY(-2px);
}
.gv-blog-card-media {
    position: relative;
    aspect-ratio: 16/10;
    overflow: hidden;
    background:
        repeating-linear-gradient(135deg, transparent 0 6px, rgba(0,0,0,0.025) 6px 7px),
        linear-gradient(180deg, var(--gv-bg-warm), var(--gv-gold-soft));
    display: flex;
    align-items: center;
    justify-content: center;
}
.gv-blog-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.gv-blog-card-glyph {
    font-family: var(--gv-ff-display);
    font-size: 56px;
    color: var(--gv-gold-deep);
}
.gv-blog-card-pill {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--gv-paper);
    color: var(--gv-gold-deep);
    border: 1px solid var(--gv-line);
    font-size: 10.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: var(--gv-r-pill);
}
.gv-blog-card-body {
    padding: 20px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 10px;
}
.gv-blog-card-meta {
    display: flex;
    gap: 10px;
    font-size: 11.5px;
    color: var(--gv-ink-faint);
    letter-spacing: 0.04em;
}
.gv-blog-card-meta span + span::before {
    content: "·";
    margin-right: 8px;
    color: var(--gv-line-strong);
}
.gv-blog-card-title {
    font-family: var(--gv-ff-display);
    font-size: 20px;
    line-height: 1.25;
    color: var(--gv-ink);
    font-weight: 500;
    margin: 0;
}
.gv-blog-card-title a { color: inherit; }
.gv-blog-card-excerpt {
    font-size: 14px;
    color: var(--gv-ink-soft);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gv-blog-card-readmore {
    margin-top: auto;
    color: var(--gv-gold-deep);
    font-size: 13.5px;
    font-weight: 600;
    align-self: flex-start;
    border-bottom: 1px solid var(--gv-gold);
    padding-bottom: 2px;
}
.gv-blog-card-readmore:hover { color: var(--gv-ink); border-bottom-color: var(--gv-ink); }

/* Article content (single post) */
.gv-article-content {
    font-size: 17px;
    line-height: 1.75;
    color: var(--gv-ink);
}
.gv-article-content h2 {
    font-family: var(--gv-ff-display);
    font-size: 28px;
    line-height: 1.2;
    margin: 32px 0 14px;
    font-weight: 500;
}
.gv-article-content h3 {
    font-family: var(--gv-ff-display);
    font-size: 22px;
    line-height: 1.25;
    margin: 24px 0 10px;
    font-weight: 500;
}
.gv-article-content p { margin-bottom: 16px; color: var(--gv-ink); }
.gv-article-content a { color: var(--gv-gold-deep); border-bottom: 1px solid var(--gv-gold); }
.gv-article-content a:hover { color: var(--gv-ink); border-bottom-color: var(--gv-ink); }
.gv-article-content ul, .gv-article-content ol {
    margin: 14px 0 18px;
    padding-left: 22px;
}
.gv-article-content ul { list-style: disc; }
.gv-article-content ol { list-style: decimal; }
.gv-article-content li { margin-bottom: 8px; color: var(--gv-ink); }
.gv-article-content strong { color: var(--gv-ink); font-weight: 600; }
.gv-article-content blockquote {
    border-left: 3px solid var(--gv-gold);
    padding: 4px 0 4px 22px;
    margin: 22px 0;
    font-family: var(--gv-ff-display);
    font-style: italic;
    font-size: 22px;
    line-height: 1.45;
    color: var(--gv-ink);
}
.gv-article-content img {
    max-width: 100%;
    height: auto;
    border-radius: 14px;
    margin: 22px 0;
}

/* Article tables */
.gv-article-content table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 28px 0;
    font-size: 14.5px;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--gv-line);
    background: var(--gv-paper);
    display: table;
}
.gv-article-content thead { background: var(--gv-bg-warm); }
.gv-article-content th {
    text-align: left;
    padding: 14px 18px;
    font-family: var(--gv-ff-display);
    font-size: 15.5px;
    font-weight: 500;
    color: var(--gv-ink);
    border-bottom: 1px solid var(--gv-line);
    letter-spacing: -0.005em;
}
.gv-article-content td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--gv-line);
    color: var(--gv-ink-soft);
    line-height: 1.5;
    vertical-align: top;
}
.gv-article-content tbody tr:last-child td { border-bottom: none; }
.gv-article-content tbody tr:hover { background: rgba(199, 164, 106, 0.05); }
.gv-article-content tbody td:first-child {
    color: var(--gv-ink);
    font-weight: 500;
}
@media (max-width: 700px) {
    .gv-article-content table {
        font-size: 13px;
        display: block;
        overflow-x: auto;
        white-space: nowrap;
        border-radius: 14px;
    }
    .gv-article-content th, .gv-article-content td {
        padding: 12px 14px;
        white-space: normal;
        min-width: 140px;
    }
}

/* Article layout with sidebar (TOC) */
.gv-article-layout {
    display: block;
}
@media (min-width: 1024px) {
    .gv-article-layout {
        display: grid;
        grid-template-columns: 240px 1fr;
        gap: 56px;
        align-items: start;
    }
}

/* TOC aside */
.gv-article-toc {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 14px;
    padding: 16px 18px;
    margin-bottom: 28px;
}
@media (min-width: 1024px) {
    .gv-article-toc {
        position: sticky;
        top: 110px;
        max-height: calc(100vh - 130px);
        overflow-y: auto;
        margin-bottom: 0;
    }
}
.gv-article-toc-toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    font-family: var(--gv-ff-body);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gv-gold-deep);
    font-weight: 600;
    text-align: left;
}
.gv-article-toc-toggle:hover { color: var(--gv-ink); }
.gv-article-toc-toggle svg {
    transition: transform .2s ease;
    flex-shrink: 0;
    color: var(--gv-gold);
}
.gv-article-toc.is-collapsed .gv-article-toc-toggle svg {
    transform: rotate(-90deg);
}
.gv-article-toc-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--gv-line);
    transition: opacity .2s ease;
}
.gv-article-toc.is-collapsed .gv-article-toc-list {
    display: none;
}
.gv-article-toc-link {
    font-size: 13px;
    color: var(--gv-ink-soft);
    line-height: 1.45;
    text-decoration: none;
    padding: 7px 0 7px 12px;
    border-left: 2px solid transparent;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.gv-article-toc-link:hover {
    color: var(--gv-ink);
    border-left-color: var(--gv-gold-soft);
}
.gv-article-toc-link.is-active {
    color: var(--gv-gold-deep);
    border-left-color: var(--gv-gold);
    font-weight: 600;
}

/* Add scroll-margin to h2s for anchor offset (account for fixed header) */
.gv-article-content h2 {
    scroll-margin-top: 100px;
}

/* Compact 3-cards row (Ce que vous vivez / Ce que vous recevez / Notre cadre) */
.gv-info-cards-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}
@media (min-width: 700px) {
    .gv-info-cards-row {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
}
.gv-info-card {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 14px;
    padding: 22px 24px;
}
.gv-info-card h3 {
    font-family: var(--gv-ff-display);
    font-size: 20px;
    line-height: 1.2;
    color: var(--gv-ink);
    margin: 0 0 10px;
    font-weight: 500;
}
.gv-info-card p {
    font-size: 14px;
    color: var(--gv-ink-soft);
    line-height: 1.5;
    margin: 0;
}

/* ====================================================
   Body background — deep navy so header + footer blend seamlessly,
   parchment lives only inside .gv-page content areas.
   ==================================================== */
body {
    background: var(--gv-bg-deep, #161330) !important;
    color: var(--gv-ink, #1A1A2E);
    font-family: var(--gv-ff-body, "DM Sans", system-ui, sans-serif);
}

/* Header spacer + main area should also be dark navy
   (any flex-grow empty space stays invisible against dark header/footer) */
.header-spacer {
    background: var(--gv-bg-deep, #161330) !important;
}
main {
    background: var(--gv-bg-deep, #161330) !important;
}

/* .gv-page wrapper keeps its parchment bg for the content area */
.gv-page {
    background: var(--gv-bg, #F4EFE4);
}


/* ====================================================
   Footer refonte — match maquette dark editorial style
   ==================================================== */
#footer-contact {
    background: var(--gv-bg-deep-2, #0E0B22) !important;
    color: rgba(251, 247, 238, 0.55) !important;
    padding: 56px 0 28px !important;
    margin-top: 0 !important;
    font-family: var(--gv-ff-body, "DM Sans", system-ui, sans-serif) !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
}

#footer-contact .container {
    max-width: 1240px;
}

/* Footer 4-column grid */
#footer-contact .footer-grid {
    display: grid !important;
    grid-template-columns: 1.6fr 1fr 1fr 1fr !important;
    gap: 50px !important;
    margin-bottom: 32px !important;
}
@media (max-width: 768px) {
    #footer-contact .footer-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 32px !important;
    }
}

/* Footer brand col (first) */
#footer-contact .footer-col:first-child h3 {
    font-family: var(--gv-ff-display, "Cormorant Garamond", serif) !important;
    color: var(--gv-cream, #FBF7EE) !important;
    font-size: 22px !important;
    font-weight: 500 !important;
    margin-bottom: 14px !important;
    letter-spacing: 0.01em;
}
#footer-contact .footer-col:first-child p {
    color: rgba(251, 247, 238, 0.55) !important;
    font-size: 13.5px !important;
    line-height: 1.6 !important;
    max-width: 320px;
}

/* Other columns h3 (link sections) */
#footer-contact .footer-col h3 {
    font-family: var(--gv-ff-body, "DM Sans", system-ui, sans-serif) !important;
    color: var(--gv-cream, #FBF7EE) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    margin-bottom: 16px !important;
}

/* Link lists */
#footer-contact .footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
#footer-contact .footer-col li {
    margin: 0 !important;
}
#footer-contact .footer-col a,
#footer-contact .footer-col .footer-cookie-manage {
    color: rgba(251, 247, 238, 0.6) !important;
    text-decoration: none !important;
    font-size: 13.5px !important;
    transition: color .15s ease;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    cursor: pointer !important;
    font-family: inherit !important;
    text-align: left !important;
    display: inline-block !important;
}
#footer-contact .footer-col a:hover,
#footer-contact .footer-col .footer-cookie-manage:hover {
    color: var(--gv-gold-soft, #E9D7AC) !important;
    padding-left: 0 !important;
}

/* Language switcher in footer */
#footer-contact .footer-lang {
    margin-top: 20px !important;
    padding-top: 16px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}
#footer-contact .footer-lang-label {
    color: rgba(251, 247, 238, 0.5) !important;
    font-size: 11.5px !important;
    letter-spacing: 0.06em !important;
}
#footer-contact .footer-lang .lang-link {
    color: rgba(251, 247, 238, 0.7) !important;
    font-size: 12px !important;
}
#footer-contact .footer-lang .lang-link.is-active {
    color: var(--gv-gold-soft, #E9D7AC) !important;
    font-weight: 600 !important;
}
#footer-contact .footer-lang .lang-separator {
    color: rgba(255, 255, 255, 0.15) !important;
}

/* Payment icons */
#footer-contact .payment-icons-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
#footer-contact .payment-logo {
    opacity: 0.6;
    filter: grayscale(20%);
    transition: opacity .15s ease;
}
#footer-contact .payment-logo:hover {
    opacity: 0.9;
}

/* Footer bottom row */
#footer-contact .footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding-top: 22px !important;
    margin-top: 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 18px;
    text-align: left !important;
    font-size: 12px !important;
    color: rgba(251, 247, 238, 0.4) !important;
    flex-wrap: wrap;
}
#footer-contact .footer-bottom p {
    margin: 0;
    color: rgba(251, 247, 238, 0.4);
}
#footer-contact .footer-bottom-links {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
}
#footer-contact .footer-bottom-links a {
    color: rgba(251, 247, 238, 0.45) !important;
    font-size: 12px !important;
    text-decoration: none !important;
    transition: color .15s ease;
}
#footer-contact .footer-bottom-links a:hover {
    color: var(--gv-gold-soft, #E9D7AC) !important;
}

@media (max-width: 768px) {
    #footer-contact .footer-bottom {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 14px;
    }
}

/* ====================================================
   Header refonte — dark navy theme override (legacy structure preserved)
   ==================================================== */
#site-header {
    box-shadow: 0 6px 28px -16px rgba(14, 11, 34, 0.6) !important;
    border-bottom: 0 !important;
}

#site-header .top-bar {
    background: var(--gv-bg-deep-2, #0E0B22) !important;
    color: rgba(251, 247, 238, 0.7) !important;
    padding: 7px 0 !important;
    font-size: 12px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
#site-header .top-bar span {
    color: rgba(251, 247, 238, 0.7);
    letter-spacing: 0.02em;
}

#site-header .main-header {
    background: var(--gv-bg-deep, #161330) !important;
    padding: 14px 0 !important;
    backdrop-filter: none !important;
}

#site-header .logo {
    color: var(--gv-cream, #FBF7EE) !important;
    font-family: var(--gv-ff-display, "Cormorant Garamond", "Times New Roman", serif) !important;
}
#site-header .logo-text {
    color: var(--gv-cream, #FBF7EE) !important;
    font-family: var(--gv-ff-display, "Cormorant Garamond", "Times New Roman", serif) !important;
    font-size: 1.35rem !important;
    letter-spacing: 0.005em;
    font-weight: 500;
}
#site-header .logo-symbol {
    filter: brightness(1.15);
}

#site-header nav ul {
    gap: 26px;
    align-items: center;
}
#site-header nav ul li a {
    color: rgba(251, 247, 238, 0.78) !important;
    font-family: var(--gv-ff-body, "DM Sans", system-ui, sans-serif) !important;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.005em;
    transition: color .15s ease;
}
#site-header nav ul li a:hover {
    color: var(--gv-gold-soft, #E9D7AC) !important;
}

/* Lang switch — dark theme */
#site-header .lang-switch {
    color: rgba(251, 247, 238, 0.6) !important;
    font-size: 12.5px;
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}
#site-header .lang-switch .lang-link {
    color: rgba(251, 247, 238, 0.65) !important;
    background: transparent !important;
}
#site-header .lang-switch .lang-link:hover {
    color: var(--gv-cream, #FBF7EE) !important;
    background: rgba(255, 255, 255, 0.05) !important;
}
#site-header .lang-switch .lang-link.is-active {
    background: var(--gv-gold-soft, #E9D7AC) !important;
    color: var(--gv-bg-deep, #161330) !important;
    font-weight: 700 !important;
}
#site-header .lang-separator {
    color: rgba(255, 255, 255, 0.18) !important;
}

/* Burger menu (mobile) in dark */
#site-header .menu-toggle span {
    background: var(--gv-cream, #FBF7EE) !important;
}

/* Trust pill in header (small lock + label) */
#site-header .nav-trust-wrap {
    display: flex;
    align-items: center;
}
#site-header .nav-trust-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(251, 247, 238, 0.55);
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.02em;
    padding: 0;
}
#site-header .nav-trust-pill svg {
    color: var(--gv-gold-soft, #E9D7AC);
    flex-shrink: 0;
}

/* Header CTA — gold gradient button (matches gv-btn-gold pattern) */
#site-header .nav-cta,
#site-header .nav-cta-header {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(180deg, #C99548 0%, #A87528 100%) !important;
    color: #1B130A !important;
    font-family: var(--gv-ff-body, "DM Sans", sans-serif) !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    padding: 9px 18px !important;
    border-radius: 10px !important;
    border: 0 !important;
    text-decoration: none !important;
    transition: transform .15s ease, box-shadow .2s ease !important;
    box-shadow:
        0 8px 22px -10px rgba(168, 117, 40, 0.6),
        inset 0 1px 0 rgba(255, 240, 200, 0.4) !important;
    text-transform: none !important;
    letter-spacing: 0.02em;
}
#site-header .nav-cta:hover {
    transform: translateY(-1px) !important;
    box-shadow:
        0 12px 28px -10px rgba(168, 117, 40, 0.7),
        inset 0 1px 0 rgba(255, 240, 200, 0.5) !important;
}

/* Hide trust pill on smaller screens to keep header tidy */
@media (max-width: 1024px) {
    #site-header .nav-trust-wrap { display: none; }
}

/* ====================================================
   Bottom Nav Mobile — fixed, 4 items, hidden on desktop
   ==================================================== */
.gv-bottom-nav {
    display: none;
}

@media (max-width: 768px) {
    /* Override legacy `nav { transform: translateY(-150%); position: absolute; top: 100% }` rule
       that targets ALL nav elements on mobile (intended for header burger menu) */
    .gv-bottom-nav {
        display: flex !important;
        position: fixed !important;
        top: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: auto !important;
        z-index: 990 !important;
        background: var(--gv-paper, #FFFDF7) !important;
        border-top: 1px solid var(--gv-line, #DDD2BC) !important;
        box-shadow: 0 -6px 20px -8px rgba(22, 19, 48, 0.12) !important;
        padding: 8px 4px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
        justify-content: space-around !important;
        align-items: stretch !important;
        font-family: var(--gv-ff-body, "DM Sans", system-ui, sans-serif) !important;
        transform: none !important;
        transition: none !important;
        overflow: visible !important;
    }
    .gv-bottom-nav.active {
        transform: none !important;
    }

    .gv-bottom-nav-item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 6px 2px 4px;
        color: var(--gv-ink-faint, #807C92);
        font-size: 10.5px;
        line-height: 1.2;
        text-decoration: none;
        position: relative;
        transition: color .15s ease;
        letter-spacing: 0.01em;
    }
    .gv-bottom-nav-item svg {
        width: 22px;
        height: 22px;
        flex-shrink: 0;
    }
    .gv-bottom-nav-item:hover {
        color: var(--gv-ink-soft, #4A4761);
    }
    .gv-bottom-nav-item.is-active {
        color: var(--gv-gold-deep, #8E6321);
        font-weight: 600;
    }
    .gv-bottom-nav-item.is-active::before {
        content: "";
        position: absolute;
        top: -8px;
        left: 50%;
        transform: translateX(-50%);
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: var(--gv-gold, #B98A3A);
    }

    /* Central CTA — floating raised gold circle */
    .gv-bottom-nav-cta {
        flex: 0 0 84px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 4px;
        text-decoration: none;
        color: var(--gv-gold-deep, #8E6321);
        padding: 0;
        position: relative;
    }
    .gv-bottom-nav-cta-circle {
        flex: 0 0 auto;
        align-self: center;
        flex-shrink: 0;
        width: 58px;
        height: 58px;
        min-width: 58px;
        min-height: 58px;
        aspect-ratio: 1 / 1;
        border-radius: 50%;
        background: linear-gradient(180deg, #C99548 0%, #A87528 100%);
        color: #1B130A;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: -22px;
        padding: 0;
        box-sizing: border-box;
        box-shadow:
            0 10px 24px -8px rgba(168, 117, 40, 0.55),
            inset 0 1px 0 rgba(255, 240, 200, 0.4),
            0 0 0 4px var(--gv-paper, #FFFDF7);
        transition: transform .15s ease, box-shadow .2s ease;
    }
    .gv-bottom-nav-cta:hover .gv-bottom-nav-cta-circle {
        transform: translateY(-2px);
        box-shadow:
            0 14px 30px -8px rgba(168, 117, 40, 0.7),
            inset 0 1px 0 rgba(255, 240, 200, 0.5),
            0 0 0 4px var(--gv-paper, #FFFDF7);
    }
    .gv-bottom-nav-cta-circle svg {
        width: 26px;
        height: 26px;
    }
    .gv-bottom-nav-cta-label {
        font-size: 10.5px;
        font-weight: 700;
        letter-spacing: 0.04em;
        color: var(--gv-gold-deep, #8E6321);
        text-transform: uppercase;
        margin-top: 4px;
        text-align: center;
        white-space: nowrap;
    }

    /* Push content up so bottom nav doesn't cover footer */
    body {
        padding-bottom: calc(70px + env(safe-area-inset-bottom, 0px));
    }

    /* Hide legacy sticky-consult-cta on mobile — replaced by bottom nav CTA */
    .sticky-consult-cta {
        display: none !important;
    }

    /* Hide bottom nav when checkout modal is open */
    body.order-modal-open .gv-bottom-nav,
    body.review-modal-open .gv-bottom-nav,
    body.lead-popup-open .gv-bottom-nav {
        display: none;
    }
}

/* ====================================================
   Order Modal — Refonte (visual override only, no JS changes)
   Loaded after style.css → wins specificity ties
   ==================================================== */

#order-overlay {
    --gv-bg: #F4EFE4;
    --gv-bg-warm: #EDE5D2;
    --gv-bg-deep: #161330;
    --gv-bg-deep-2: #0E0B22;
    --gv-ink: #1A1A2E;
    --gv-ink-soft: #4A4761;
    --gv-ink-faint: #807C92;
    --gv-line: #DDD2BC;
    --gv-line-strong: #C6B998;
    --gv-gold: #B98A3A;
    --gv-gold-deep: #8E6321;
    --gv-gold-soft: #E9D7AC;
    --gv-cream: #FBF7EE;
    --gv-paper: #FFFDF7;
    --gv-ff-display: "Cormorant Garamond", "Times New Roman", serif;
    --gv-ff-body: "DM Sans", system-ui, sans-serif;
}

/* Backdrop */
#order-overlay .order-overlay-backdrop {
    background: rgba(14, 11, 34, 0.65);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

/* Modal container — light theme bottom-sheet */
#order-overlay .order-modal {
    background: var(--gv-bg);
    color: var(--gv-ink);
    border: 1px solid var(--gv-line);
    border-bottom: none;
    border-radius: 22px 22px 0 0;
    font-family: var(--gv-ff-body);
    box-shadow: 0 -30px 80px -20px rgba(0, 0, 0, 0.4);
}
@media (min-width: 769px) {
    #order-overlay .order-modal {
        max-width: 600px;
    }
}

/* Close button — paper bg + gold accent */
#order-overlay .order-modal-close {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    color: var(--gv-ink-soft);
    width: 30px;
    height: 30px;
    font-size: 1.5rem;
    line-height: 1;
    top: 14px;
    right: 16px;
}
#order-overlay .order-modal-close:hover {
    background: var(--gv-cream);
    color: var(--gv-ink);
}

/* Flow shell + head */
#order-overlay .checkout-flow-shell {
    background: var(--gv-bg);
    color: var(--gv-ink);
}

#order-overlay .checkout-head,
#order-overlay .checkout-head-compact {
    background: var(--gv-bg);
    color: var(--gv-ink);
    border-bottom: 1px solid var(--gv-line);
    padding: 16px 20px 14px;
}

#order-overlay .checkout-head-top {
    color: var(--gv-ink);
    gap: 8px;
}

#order-overlay .checkout-head-lock {
    color: var(--gv-gold-deep);
    background: transparent;
    width: 18px;
    height: 18px;
}

#order-overlay .checkout-head h2,
#order-overlay .checkout-head-compact h2,
.order-overlay .checkout-head-compact h2 {
    font-family: var(--gv-ff-display);
    font-weight: 500;
    font-size: 17px;
    color: var(--gv-ink);
    margin: 0;
    letter-spacing: 0.005em;
}

#order-overlay .checkout-eyebrow {
    font-family: var(--gv-ff-body);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gv-gold-deep);
    font-weight: 600;
}

/* Trust bar */
#order-overlay .checkout-trust {
    color: var(--gv-ink-faint);
    font-size: 12px;
}
#order-overlay .checkout-trust span {
    color: var(--gv-ink-soft);
}

/* Progress kicker (step indicator text) */
#order-overlay .checkout-progress-kicker {
    color: var(--gv-ink-faint);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
#order-overlay .checkout-progress-kicker strong {
    color: var(--gv-ink);
}

#order-overlay .checkout-progress-title {
    font-family: var(--gv-ff-display);
    font-size: 24px;
    line-height: 1.15;
    font-weight: 500;
    color: var(--gv-ink);
    margin: 10px 0 16px;
}

/* Progress bar */
.order-overlay .checkout-progress-bar,
#order-overlay .checkout-progress-bar {
    background: var(--gv-line);
    height: 2px;
    border-radius: 0;
}
#order-overlay .checkout-progress-fill {
    background: var(--gv-gold);
    border-radius: 0;
    transition: width 0.3s ease;
}

/* Progress steps : tabs underline (flex equal, hugged to width) */
#order-overlay .checkout-progress-steps {
    background: transparent;
    padding: 8px 20px 0;
    gap: 0;
    display: flex;
}
#order-overlay .checkout-progress-step {
    flex: 1;
    background: transparent;
    color: var(--gv-ink-faint);
    border: 0;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    font-family: var(--gv-ff-body);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    padding: 0 0 10px;
    text-align: center;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease;
}
#order-overlay .checkout-progress-step:hover:not(:disabled) {
    color: var(--gv-ink);
}
#order-overlay .checkout-progress-step.is-active {
    color: var(--gv-gold-deep);
    border-bottom-color: var(--gv-gold);
}
#order-overlay .checkout-progress-step.is-done {
    color: var(--gv-ink-soft);
    border-bottom-color: var(--gv-line-strong);
}
#order-overlay .checkout-progress-step:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
#order-overlay .checkout-progress-step-num {
    font-family: var(--gv-ff-display);
    font-style: italic;
    font-size: 12px;
    font-weight: 500;
    margin-right: 3px;
    opacity: 0.7;
    letter-spacing: 0;
    text-transform: none;
}
#order-overlay .checkout-progress-step.is-active .checkout-progress-step-num {
    color: var(--gv-gold);
    opacity: 1;
}

/* Steps content */
#order-overlay .checkout-step {
    color: var(--gv-ink);
    padding: 16px 20px 12px;
}
#order-overlay .checkout-step h3 {
    font-family: var(--gv-ff-display);
    font-size: 19px;
    line-height: 1.25;
    font-weight: 500;
    color: var(--gv-ink);
    margin: 0 0 6px;
}
#order-overlay .checkout-step p,
#order-overlay .checkout-step .muted,
#order-overlay .checkout-step .checkout-step-sub {
    color: var(--gv-ink-soft);
    font-size: 13.5px;
    line-height: 1.5;
}
#order-overlay .checkout-step-eyebrow {
    font-size: 10px;
    color: var(--gv-gold-deep);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    margin: 0 0 6px;
}
#order-overlay .checkout-step-promise {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 6px 0 16px !important;
}
#order-overlay .checkout-step-promise span {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    border: 1px solid var(--gv-line) !important;
    background: var(--gv-bg-warm) !important;
    color: var(--gv-ink-soft) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    letter-spacing: 0.01em !important;
}
#order-overlay .checkout-step-promise span + span::before {
    content: none;
}

/* High-specificity fixes for offer-pill text (overrides legacy var(--ink) = cream) */
#order-overlay .offer-pill > span:not(.checkout-offer-badge) {
    font-family: var(--gv-ff-display);
    font-size: 17px;
    color: var(--gv-ink);
    font-weight: 500;
    line-height: 1.2;
}
#order-overlay .offer-pill.is-selected > span:not(.checkout-offer-badge) {
    color: var(--gv-cream);
}

#order-overlay .offer-pill > strong {
    font-family: var(--gv-ff-display);
    font-size: 24px;
    font-weight: 600;
    color: var(--gv-ink);
    letter-spacing: -0.005em;
}
#order-overlay .offer-pill.is-selected > strong {
    color: var(--gv-gold-soft);
}

/* Promo pricing — boosted contrast */
#order-overlay .offer-pill-price.has-promo {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}
#order-overlay .offer-pill-price.has-promo .offer-pill-original {
    font-size: 14px;
    font-weight: 400;
    color: var(--gv-ink-faint);
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}
#order-overlay .offer-pill-price.has-promo .offer-pill-promo {
    font-family: var(--gv-ff-display);
    font-size: 24px;
    font-weight: 600;
    color: var(--gv-ink);
    letter-spacing: -0.005em;
}
#order-overlay .offer-pill.is-selected .offer-pill-price.has-promo .offer-pill-original {
    color: rgba(251,247,238,0.4);
}
#order-overlay .offer-pill.is-selected .offer-pill-price.has-promo .offer-pill-promo {
    color: var(--gv-gold-soft);
}

/* Force em (hint) of offer-pill to span full row */
#order-overlay .offer-pill > em {
    grid-column: 1 / -1;
    margin-top: 6px;
    font-style: normal;
    font-size: 12.5px;
    color: var(--gv-ink-soft);
    line-height: 1.4;
}
#order-overlay .offer-pill.is-selected > em {
    color: rgba(251,247,238,0.72);
}

/* Moment tag — editorial chapter break (gold lines around italic phrase)
   Clearly informational, distinct from buttons */
#order-overlay .order-modal p.checkout-moment-tag,
#order-overlay .checkout-moment-tag {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 14px;
    background: transparent !important;
    color: var(--gv-gold-deep) !important;
    padding: 6px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    text-align: center;
    margin: 8px 0 16px !important;
    font-family: var(--gv-ff-display) !important;
    font-style: italic !important;
    font-size: 16px !important;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.005em;
    box-shadow: none !important;
}
#order-overlay .checkout-moment-tag::before,
#order-overlay .checkout-moment-tag::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gv-gold), transparent);
    max-width: 60px;
    min-width: 20px;
    margin: 0;
    color: transparent;
}
#order-overlay .checkout-moment-tag-star {
    color: var(--gv-gold) !important;
    font-style: normal !important;
    font-family: var(--gv-ff-body);
    font-size: 14px;
    margin-right: 4px;
    display: inline-block;
}

/* Checkout block (form sections) */
#order-overlay .checkout-block {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 12px;
    padding: 14px 16px;
    margin-top: 12px;
}
#order-overlay .checkout-block h4 {
    font-family: var(--gv-ff-display);
    font-size: 16px;
    color: var(--gv-ink);
    font-weight: 500;
    margin: 0 0 12px;
}

/* Offer pills (formula selector) */
#order-overlay .offer-pill {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 12px;
    padding: 14px 18px 14px 18px;
    color: var(--gv-ink);
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
    position: relative;
}
#order-overlay .offer-pill:hover {
    border-color: var(--gv-gold);
}
#order-overlay .offer-pill.is-selected {
    background: var(--gv-bg-deep);
    color: var(--gv-cream);
    border-color: var(--gv-gold);
    box-shadow:
        0 14px 34px -16px rgba(22,19,48,0.5),
        0 0 0 1px var(--gv-gold);
}

/* Checkmark indicator on selected card (top-right corner) */
#order-overlay .offer-pill::after {
    content: "";
    position: absolute;
    top: 14px;
    right: 14px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid var(--gv-line-strong);
    background: var(--gv-paper);
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
    pointer-events: none;
}
#order-overlay .offer-pill.is-selected::after {
    background-color: var(--gv-gold);
    border-color: var(--gv-gold);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23161330' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4 4 10-10'/></svg>");
    background-size: 14px 14px;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: 0 0 0 3px rgba(185, 138, 58, 0.25);
}

/* Reserve right space for the checkmark so price doesn't overlap */
#order-overlay .offer-pill > strong,
#order-overlay .offer-pill .offer-pill-price {
    margin-right: 32px;
}
#order-overlay .offer-pill span {
    font-family: var(--gv-ff-display);
    font-size: 16px;
    color: var(--gv-ink);
    font-weight: 500;
}
#order-overlay .offer-pill.is-selected span { color: var(--gv-cream); }

#order-overlay .offer-pill strong {
    font-family: var(--gv-ff-display);
    font-size: 20px;
    color: var(--gv-ink);
}
#order-overlay .offer-pill.is-selected strong { color: var(--gv-gold-soft); }

#order-overlay .offer-pill em {
    font-style: normal;
    font-size: 12px;
    color: var(--gv-ink-soft);
}
#order-overlay .offer-pill.is-selected em { color: rgba(251,247,238,0.7); }

#order-overlay .offer-pill input[type="radio"] {
    accent-color: var(--gv-gold);
}

/* Promo pricing inside offer-pill */
#order-overlay .offer-pill-price.has-promo .offer-pill-original {
    color: var(--gv-ink-faint);
    text-decoration: line-through;
    font-size: 14px;
    margin-right: 6px;
}
#order-overlay .offer-pill.is-selected .offer-pill-price.has-promo .offer-pill-original {
    color: rgba(251,247,238,0.5);
}
#order-overlay .offer-pill-price.has-promo .offer-pill-promo {
    color: var(--gv-gold-deep);
    font-weight: 600;
}
#order-overlay .offer-pill.is-selected .offer-pill-price.has-promo .offer-pill-promo {
    color: var(--gv-gold-soft);
}

/* Offer badges — solid gold pill with dark text (overrides legacy !important rules) */
#order-overlay .checkout-offer-badge {
    display: inline-block;
    justify-self: start;
    background: var(--gv-gold) !important;
    color: var(--gv-bg-deep) !important;
    border: 0 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 4px 11px !important;
    border-radius: 999px !important;
    margin-bottom: 8px;
    grid-column: 1 / -1;
    width: fit-content;
    position: static;
    top: auto;
    left: auto;
    line-height: 1.4;
}
#order-overlay .checkout-offer-badge-summer {
    background: linear-gradient(90deg, #C99548 0%, #A87528 100%) !important;
    color: #1B130A !important;
    border: 0 !important;
}
#order-overlay .offer-pill.is-selected .checkout-offer-badge {
    background: var(--gv-gold-soft) !important;
    color: var(--gv-bg-deep) !important;
}
#order-overlay .offer-pill.is-selected .checkout-offer-badge-summer {
    background: var(--gv-gold) !important;
    color: var(--gv-bg-deep) !important;
}

/* Inputs / Textareas */
.order-overlay .checkout-form input,
.order-overlay .checkout-form textarea,
.order-overlay .form-input,
#order-overlay .checkout-form input,
#order-overlay .checkout-form textarea,
#order-overlay .form-input {
    background: var(--gv-paper);
    color: var(--gv-ink);
    border: 1px solid var(--gv-line-strong);
    border-radius: 12px;
    padding: 14px;
    font-family: var(--gv-ff-body);
    font-size: 15px;
    line-height: 1.45;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.order-overlay .checkout-form input::placeholder,
.order-overlay .checkout-form textarea::placeholder,
#order-overlay .checkout-form input::placeholder,
#order-overlay .checkout-form textarea::placeholder {
    color: var(--gv-ink-faint);
}
.order-overlay .checkout-form input:focus,
.order-overlay .checkout-form textarea:focus,
.order-overlay .form-input:focus,
#order-overlay .checkout-form input:focus,
#order-overlay .checkout-form textarea:focus,
#order-overlay .form-input:focus {
    border-color: var(--gv-bg-deep);
    outline: none;
    box-shadow: 0 0 0 3px rgba(22,19,48,0.08);
}

/* Field labels & hints */
#order-overlay .field-label,
.order-overlay .field-label {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gv-ink-soft);
    margin-bottom: 6px;
}
#order-overlay .field-hint,
.order-overlay .field-hint {
    font-size: 12.5px;
    color: var(--gv-ink-faint);
    margin-top: 6px;
    line-height: 1.4;
}
#order-overlay .required-mark {
    color: var(--gv-berry);
}

#order-overlay .step-field-group {
    margin-bottom: 16px;
}

/* Step controls (next/prev buttons) */
#order-overlay .step-controls {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}
#order-overlay .step-controls .btn {
    flex: 1;
}

/* Buttons inside the modal */
#order-overlay .btn.primary,
#order-overlay .btn-cta {
    background: linear-gradient(180deg, #C99548 0%, #A87528 100%);
    color: #1B130A;
    border: none;
    border-radius: 12px;
    padding: 14px 22px;
    font-family: var(--gv-ff-body);
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    box-shadow:
        0 10px 24px -10px rgba(168, 117, 40, 0.55),
        inset 0 1px 0 rgba(255, 240, 200, 0.4);
    transition: transform .15s ease, box-shadow .2s ease;
}
#order-overlay .btn.primary:hover,
#order-overlay .btn-cta:hover {
    transform: translateY(-1px);
    box-shadow:
        0 14px 30px -10px rgba(168, 117, 40, 0.65),
        inset 0 1px 0 rgba(255, 240, 200, 0.5);
}

#order-overlay .btn.ghost {
    background: transparent;
    color: var(--gv-ink);
    border: 1px solid var(--gv-line-strong);
    border-radius: 12px;
    padding: 13px 20px;
    font-family: var(--gv-ff-body);
    font-weight: 500;
    font-size: 14px;
    cursor: pointer;
}
#order-overlay .btn.ghost:hover {
    background: var(--gv-paper);
}

#order-overlay .btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none !important;
}

/* Sticky footer */
.order-overlay .checkout-sticky-footer,
#order-overlay .checkout-sticky-footer {
    background: var(--gv-bg);
    border-top: 1px solid var(--gv-line);
    padding: 10px 16px 14px;
}
.order-overlay .checkout-sticky-note,
#order-overlay .checkout-sticky-note {
    color: var(--gv-ink-faint);
    font-size: 11px;
    line-height: 1.4;
    margin: 0 0 6px;
}
#order-overlay .checkout-sticky-actions {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}
#order-overlay .checkout-sticky-actions .btn {
    flex: 1;
    height: 44px;
    padding: 0 16px;
    font-size: 14px;
}

/* Loading + assurance */
#order-overlay .checkout-loading {
    color: var(--gv-ink-soft);
}
#order-overlay .checkout-assurance {
    background: var(--gv-gold-soft);
    border: 1px solid var(--gv-gold);
    border-radius: 12px;
    padding: 16px 18px;
    color: var(--gv-ink);
}
#order-overlay .checkout-assurance strong {
    color: var(--gv-gold-deep);
}

/* Error states */
#order-overlay .checkout-error-inline {
    color: var(--gv-berry);
    font-size: 13px;
    line-height: 1.45;
    margin-top: 8px;
}

/* Collapse (DOB / data de naissance accordion) */
#order-overlay .checkout-collapse {
    background: var(--gv-paper) !important;
    border: 1px solid var(--gv-line) !important;
    border-radius: 12px;
    color: var(--gv-ink) !important;
}
#order-overlay .checkout-collapse summary {
    color: var(--gv-ink) !important;
    background: transparent !important;
    font-weight: 500;
    padding: 14px 18px;
}
#order-overlay .checkout-collapse summary:hover {
    background: var(--gv-bg-warm) !important;
}
#order-overlay .checkout-collapse-body {
    color: var(--gv-ink) !important;
    padding: 14px 18px;
    border-top: 1px solid var(--gv-line);
}
#order-overlay .checkout-collapse-body label,
#order-overlay .checkout-collapse-body input,
#order-overlay .checkout-collapse-body textarea {
    color: var(--gv-ink) !important;
}

/* Recap card — force light background (le legacy mettait --surf2 dark hérité) */
#order-overlay .checkout-recap {
    background: var(--gv-paper) !important;
    border: 1px solid var(--gv-line) !important;
    border-radius: 12px;
    color: var(--gv-ink);
    padding: 16px 18px;
}

/* Recap rows — light bg → dark text */
#order-overlay .checkout-recap-row {
    color: var(--gv-ink-soft) !important;
    font-size: 13.5px;
}
#order-overlay .checkout-recap-row strong { color: var(--gv-ink) !important; }

/* Separator interne */
#order-overlay .checkout-recap-sep {
    background: var(--gv-line) !important;
    height: 1px;
    margin: 10px 0;
}

/* Total ligne */
#order-overlay .checkout-recap-total {
    color: var(--gv-ink) !important;
    font-weight: 500;
}
#order-overlay .checkout-recap-total .total-amount {
    font-family: var(--gv-ff-display);
    color: var(--gv-gold-deep) !important;
    font-size: 22px;
    font-weight: 500;
}

/* Note remboursement */
#order-overlay .checkout-recap-note {
    color: var(--gv-ink-soft) !important;
    font-size: 12.5px;
    line-height: 1.5;
    margin-top: 10px;
}

/* Legacy total line (pour compat) */
#order-overlay [data-checkout-total],
#order-overlay .checkout-total {
    font-family: var(--gv-ff-display);
    color: var(--gv-ink) !important;
}

/* Consent option (checkbox blocks) */
#order-overlay .checkout-consent-option {
    background: var(--gv-paper);
    border: 1px solid var(--gv-line);
    border-radius: 12px;
    padding: 14px 16px;
}
#order-overlay .checkout-consent-option strong { color: var(--gv-ink); }
#order-overlay .checkout-consent-option em { color: var(--gv-ink-soft); font-style: normal; font-size: 12.5px; }
#order-overlay .checkout-consent-option input[type="checkbox"] {
    accent-color: var(--gv-gold);
}

/* Voyant context (already styled in style.css but reinforce a bit) */
#order-overlay .checkout-voyant-context {
    background: rgba(199, 164, 106, 0.08);
    border-color: rgba(199, 164, 106, 0.3);
}
#order-overlay .checkout-voyant-context-body p { color: var(--gv-gold-deep); }
#order-overlay .checkout-voyant-context-body strong { color: var(--gv-ink); }
#order-overlay .checkout-voyant-context-body em,
#order-overlay .checkout-voyant-context-body small { color: var(--gv-ink-soft); }
#order-overlay .checkout-voyant-context-initial {
    background: var(--gv-gold-soft);
    color: var(--gv-gold-deep);
}

/* Legal acceptance block */
#order-overlay .legal-acceptance-block {
    color: var(--gv-ink-faint);
    font-size: 11.5px;
    line-height: 1.5;
}
#order-overlay .legal-acceptance-block a {
    color: var(--gv-gold-deep);
    border-bottom: 1px solid var(--gv-gold);
}

/* Payment logos */
#order-overlay .payment-logo {
    opacity: 0.7;
    filter: grayscale(20%);
}

/* Defensive: ensure [hidden] always wins inside modal */
#order-overlay [hidden] {
    display: none !important;
}

/* Hide step feedback when empty (no message to show) */
#order-overlay .checkout-step-feedback:empty {
    display: none !important;
}
#order-overlay .checkout-step-feedback:not(:empty) {
    background: rgba(138, 46, 63, 0.08);
    color: var(--gv-berry);
    border: 1px solid rgba(138, 46, 63, 0.2);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 13px;
    margin: 0 0 10px;
    text-align: center;
}

/* Hide checkout-error when empty */
#order-overlay .checkout-error:empty {
    display: none !important;
}

/* Alerte erreur paiement (override legacy qui mettait color:#ffe1e1 invisible sur cream) */
#order-overlay .checkout-error:not(:empty),
#order-overlay .checkout-error-inline:not(:empty) {
    margin-top: 18px !important;
    margin-bottom: 8px !important;
    padding: 14px 18px !important;
    background: rgba(138, 46, 63, 0.08) !important;
    border: 1px solid rgba(138, 46, 63, 0.35) !important;
    color: var(--gv-berry) !important;
    border-radius: 12px !important;
    font-size: 13.5px !important;
    line-height: 1.5 !important;
    font-weight: 500;
    text-align: left !important;
}

/* Ajout d'air autour du bloc CGV/L221 + bouton Payer */
#order-overlay .checkout-legal-consent,
#order-overlay .checkout-consent-text {
    margin-top: 16px !important;
    margin-bottom: 14px !important;
    line-height: 1.55;
}

/* Fallback color for any text inside modal that didn't get explicit override */
#order-overlay .order-modal,
#order-overlay .order-modal p,
#order-overlay .order-modal label,
#order-overlay .order-modal span,
#order-overlay .order-modal small,
#order-overlay .order-modal li {
    color: var(--gv-ink);
}
#order-overlay .order-modal .muted,
#order-overlay .order-modal small {
    color: var(--gv-ink-soft);
}
#order-overlay .order-modal a:not(.btn) {
    color: var(--gv-gold-deep);
    text-decoration: none;
}
#order-overlay .order-modal a:not(.btn):hover {
    color: var(--gv-ink);
}

/* Message guide block (textarea hints) */
#order-overlay .message-guide {
    background: var(--gv-bg-warm);
    border: 1px solid var(--gv-line);
    border-left: 3px solid var(--gv-gold);
    border-radius: 10px;
    padding: 12px 14px;
    margin-top: 10px;
}
#order-overlay .message-guide h4 {
    font-family: var(--gv-ff-body);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gv-gold-deep);
    margin: 0 0 8px;
    font-weight: 600;
}
#order-overlay .message-guide ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
#order-overlay .message-guide li {
    font-size: 12.5px;
    color: var(--gv-ink-soft);
    line-height: 1.5;
    padding-left: 12px;
    position: relative;
    margin-bottom: 4px;
}
#order-overlay .message-guide li::before {
    content: "·";
    position: absolute;
    left: 2px;
    color: var(--gv-gold);
    font-weight: 700;
}

/* ====================================================
   Utilities
   ==================================================== */
.gv-page .gv-mt-sm { margin-top: 12px; }
.gv-page .gv-mt-md { margin-top: 24px; }
.gv-page .gv-mt-lg { margin-top: 40px; }
.gv-page .gv-text-center { text-align: center; }

/* Bordered link "Voir plus" */
.gv-link-underline {
    color: var(--gv-gold-deep);
    border-bottom: 1px solid var(--gv-gold);
    padding-bottom: 2px;
    font-size: 14px;
    display: inline-flex;
    gap: 4px;
    align-items: center;
}
.gv-link-underline:hover { color: var(--gv-ink); border-bottom-color: var(--gv-ink); }

/* ====================================================
   In-text contextual links (SEO maillage)
   Soulignement discret pour les ancres en prose qui n'ont
   pas de classe utilitaire. Évite les boutons et la nav.
   ==================================================== */
.gv-page p > a:not([class]),
.gv-page li > a:not([class]),
.gv-info-card p > a:not([class]),
.gv-card p > a:not([class]),
.gv-pain-card p > a:not([class]),
.gv-painpoint-list li a:not([class]),
.gv-split p > a:not([class]),
.gv-capture-card p > a:not([class]),
.gv-trust-band div > a:not([class]),
.gv-story-testimonial p > a:not([class]) {
    color: var(--gv-gold-deep);
    border-bottom: 1px solid rgba(185, 138, 58, 0.45);
    padding-bottom: 1px;
    text-decoration: none;
    transition: border-color .2s ease, color .2s ease;
}

.gv-page p > a:not([class]):hover,
.gv-page li > a:not([class]):hover,
.gv-info-card p > a:not([class]):hover,
.gv-card p > a:not([class]):hover,
.gv-pain-card p > a:not([class]):hover,
.gv-painpoint-list li a:not([class]):hover,
.gv-split p > a:not([class]):hover,
.gv-capture-card p > a:not([class]):hover,
.gv-story-testimonial p > a:not([class]):hover {
    color: var(--gv-ink);
    border-bottom-color: var(--gv-ink);
}

.gv-page p > a:not([class]):focus-visible,
.gv-page li > a:not([class]):focus-visible {
    outline: 2px solid var(--gv-gold);
    outline-offset: 3px;
    border-radius: 2px;
}

/* Override sur contextes sombres (capture-card, section-dark, final-cta, voyant-hero)
   --gv-ink (#1A1A2E) disparait sur --gv-bg-deep (#161330) */
.gv-capture-card p > a:not([class]),
.gv-section-dark p > a:not([class]),
.gv-section-dark li > a:not([class]),
.gv-final-cta p > a:not([class]),
.gv-voyant-hero p > a:not([class]) {
    color: var(--gv-gold-soft);
    border-bottom-color: rgba(233, 215, 172, 0.5);
}

.gv-capture-card p > a:not([class]):hover,
.gv-section-dark p > a:not([class]):hover,
.gv-section-dark li > a:not([class]):hover,
.gv-final-cta p > a:not([class]):hover,
.gv-voyant-hero p > a:not([class]):hover {
    color: var(--gv-cream);
    border-bottom-color: var(--gv-cream);
}
