/* =====================================================
   DataEntreprise® — Feuille de style principale
   Marque déposée de Ness Assurances
   ===================================================== */

/* ===== RESET ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
a { text-decoration: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
ul { list-style: none; }

/* ===== VARIABLES ===== */
:root {
    --brand-50:  #f0f4f8;
    --brand-100: #d9e2ec;
    --brand-600: #486581;
    --brand-700: #334e68;
    --brand-800: #243b53;
    --brand-900: #102a43;
    --brand-950: #061220;

    /* Or champagne — sobre et élégant */
    --gold-400: #C9A96E;
    --gold-500: #B49657;
    --gold-600: #9A7840;

    --slate-50:  #f8fafc;
    --slate-100: #f1f5f9;
    --slate-200: #e2e8f0;
    --slate-300: #cbd5e1;
    --slate-400: #94a3b8;
    --slate-500: #64748b;
    --slate-600: #475569;
    --slate-700: #334155;
    --slate-800: #1e293b;
    --slate-900: #0f172a;

    --green-100:   #dcfce7;
    --green-400:   #4ade80;
    --green-600:   #16a34a;
    --emerald-100: #d1fae5;
    --emerald-600: #059669;
    --red-400:     #f87171;
    --red-500:     #ef4444;
    --blue-400:    #60a5fa;

    --serif: Georgia, 'Times New Roman', 'Palatino Linotype', serif;
    --sans:  -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* ===== BASE ===== */
body {
    font-family: var(--sans);
    color: var(--slate-800);
    background-color: var(--slate-50);
    -webkit-font-smoothing: antialiased;
    line-height: 1.5;
}

/* ===== LAYOUT ===== */
.container {
    max-width: 80rem;
    margin-left: auto; margin-right: auto;
    padding-left: 1rem; padding-right: 1rem;
}
@media (min-width: 640px)  { .container { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) { .container { padding-left: 2rem;   padding-right: 2rem;   } }

/* ===== SVG ICONS ===== */
.icon {
    display: inline-block;
    width: 1em; height: 1em;
    vertical-align: -0.15em;
    fill: currentColor;
    flex-shrink: 0;
}
.icon-xs  { font-size: 0.75rem; }
.icon-sm  { font-size: 0.875rem; }

/* ===== ANIMATIONS ===== */
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.5} }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

.animate-pulse { animation: pulse 2s cubic-bezier(.4,0,.6,1) infinite; }
.animate-pulse.delay-1000 { animation-delay: 1s; }
.chat-bubble { animation: float 3s ease-in-out infinite; }

.reveal { opacity: 0; transform: translateY(30px); transition: all .8s ease-out; }
.reveal.active { opacity: 1; transform: translateY(0); }
.delay-100 { transition-delay: .1s; }
.delay-200 { transition-delay: .2s; }
.delay-300 { transition-delay: .3s; }

.card-hover { transition: all .4s cubic-bezier(.4,0,.2,1); }
.card-hover:hover { transform: translateY(-8px); box-shadow: 0 25px 50px -12px rgba(16,42,67,.25); }

/* ===== SHARED COMPONENTS ===== */
.hero-gradient { background: linear-gradient(135deg, #102a43 0%, #1a3a5c 50%, #0d2137 100%); }
.glass-effect  { background: rgba(255,255,255,.03); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.1); }
.service-icon  { background: linear-gradient(135deg, #102a43 0%, #1a3a5c 100%); }

.divider-gold {
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, var(--gold-400) 50%, transparent 100%);
}

.tab-active {
    background: linear-gradient(90deg, var(--gold-400) 0%, var(--gold-500) 100%);
    color: #fff;
}

/* ===== SECTION HEADER ===== */
.section-header { text-align: center; max-width: 48rem; margin: 0 auto 4rem; }
.section-label  { color: var(--gold-600); font-weight: 600; font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; }
.section-title  { font-family: var(--serif); font-size: 2.25rem; font-weight: 700; color: var(--brand-900); margin-top: 1rem; margin-bottom: 1.5rem; }
.section-divider { width: 6rem; margin: 0 auto 1.5rem; }
.section-desc   { color: var(--slate-600); font-size: 1.125rem; line-height: 1.625; }

/* ===== NAV ===== */
#navbar {
    position: fixed; top: 0; left: 0; width: 100%; z-index: 50;
    background: rgba(255,255,255,.95); backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--slate-200); transition: box-shadow .3s;
}
#navbar.scrolled { box-shadow: 0 4px 6px -1px rgba(0,0,0,.1); }

.nav-inner { display: flex; justify-content: space-between; align-items: center; height: 5rem; }
.nav-logo  { display: flex; align-items: center; gap: .75rem; }
.nav-logo-box {
    width: 2.5rem; height: 2.5rem; background: var(--brand-900);
    border-radius: .5rem; display: flex; align-items: center; justify-content: center;
    color: var(--gold-400); font-size: 1.25rem;
}
.nav-logo-text { font-family: var(--serif); font-size: 1.5rem; font-weight: 700; color: var(--brand-900); letter-spacing: -.025em; }
.nav-logo-link { color: inherit; text-decoration: none; }
.nav-logo-sub  { display: block; font-size: .7rem; color: var(--slate-500); text-transform: uppercase; letter-spacing: .1em; font-weight: 500; }

.nav-links { display: none; align-items: center; gap: 2rem; }
@media (min-width: 768px) { .nav-links { display: flex; } }

.nav-link { font-size: .875rem; font-weight: 500; color: var(--slate-600); transition: color .15s; }
.nav-link:hover { color: var(--brand-900); }

.btn-nav {
    padding: .625rem 1.5rem; background: var(--brand-900); color: #fff;
    font-size: .875rem; font-weight: 600; border-radius: 9999px;
    box-shadow: 0 10px 15px -3px rgba(16,42,67,.2); transition: background .15s;
}
.btn-nav:hover { background: var(--brand-800); }

.nav-hamburger { display: flex; align-items: center; color: var(--slate-600); font-size: 1.5rem; }
@media (min-width: 768px) { .nav-hamburger { display: none; } }

#mobileMenu { display: none; background: #fff; border-top: 1px solid var(--slate-100); }
#mobileMenu.open { display: block; }
.mobile-menu-inner { padding: 1rem; display: flex; flex-direction: column; gap: .75rem; }
.mobile-link { color: var(--slate-600); font-weight: 500; padding: .5rem 0; display: block; }
.mobile-cta  { display: block; text-align: center; padding: .75rem 1.5rem; background: var(--brand-900); color: #fff; font-weight: 600; border-radius: .5rem; }

/* ===== FOOTER ===== */
footer { background: var(--brand-950); color: var(--slate-400); padding: 3rem 0; border-top: 1px solid var(--slate-800); }

.footer-grid { display: grid; gap: 2rem; margin-bottom: 2rem; }
@media (min-width: 768px) { .footer-grid { grid-template-columns: 2fr 1fr 1fr; } }

.footer-brand { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.footer-brand-box {
    width: 2rem; height: 2rem; background: var(--brand-800);
    border-radius: .5rem; display: flex; align-items: center; justify-content: center; color: var(--gold-400);
}
.footer-brand-name { font-family: var(--serif); font-size: 1.25rem; font-weight: 700; color: #fff; }
.footer-desc       { font-size: .875rem; line-height: 1.625; max-width: 24rem; }
.footer-col-title  { color: #fff; font-weight: 600; margin-bottom: 1rem; font-size: .875rem; text-transform: uppercase; letter-spacing: .05em; }
.footer-links      { display: flex; flex-direction: column; gap: .5rem; }
.footer-link       { font-size: .875rem; transition: color .15s; color: var(--slate-400); }
.footer-link:hover { color: var(--gold-400); }

.footer-bottom {
    border-top: 1px solid var(--slate-800); padding-top: 2rem;
    display: flex; flex-direction: column; align-items: center; gap: .5rem; font-size: .75rem;
}
@media (min-width: 768px) { .footer-bottom { flex-direction: row; justify-content: space-between; } }

/* ===== BUTTONS ===== */
.btn-primary {
    padding: 1rem 2rem; background: var(--gold-400); color: var(--brand-950);
    font-weight: 700; border-radius: .5rem;
    box-shadow: 0 20px 25px -5px rgba(201,169,110,.2); transition: background .15s; text-align: center;
}
.btn-primary:hover { background: var(--gold-500); }

.btn-ghost {
    padding: 1rem 2rem; color: #fff; font-weight: 600; border-radius: .5rem;
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    transition: background .15s;
}
.btn-ghost:hover { background: rgba(255,255,255,.1); }

/* ===== HERO ===== */
#hero { position: relative; min-height: 100vh; display: flex; align-items: center; overflow: hidden; padding-top: 5rem; }

.hero-blob { position: absolute; border-radius: 9999px; mix-blend-mode: multiply; filter: blur(64px); opacity: .2; }
.hero-blob-blue { top: 5rem; left: 2.5rem; width: 18rem; height: 18rem; background: var(--blue-400); }
.hero-blob-gold { bottom: 5rem; right: 2.5rem; width: 24rem; height: 24rem; background: var(--gold-400); }

.hero-grid { position: relative; z-index: 10; width: 100%; display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .hero-grid { grid-template-columns: 1fr 1fr; } }

.hero-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 1rem; border-radius: 9999px; }
.hero-badge-dot { width: .5rem; height: .5rem; background: var(--green-400); border-radius: 9999px; }
.hero-badge-txt { font-size: .875rem; font-weight: 500; color: var(--slate-300); }

.hero-title { font-family: var(--serif); font-size: 3rem; font-weight: 700; line-height: 1.1; color: #fff; }
@media (min-width: 1024px) { .hero-title { font-size: 4.5rem; } }
.hero-title .accent { color: var(--gold-400); font-style: italic; }

.hero-desc    { font-size: 1.25rem; color: var(--slate-300); line-height: 1.625; max-width: 36rem; }
.hero-actions { display: flex; flex-direction: column; gap: 1rem; }
@media (min-width: 640px) { .hero-actions { flex-direction: row; } }

.hero-checks { display: flex; align-items: center; gap: 1.5rem; padding-top: 1rem; color: var(--slate-400); font-size: .875rem; flex-wrap: wrap; }
.hero-check-item { display: flex; align-items: center; gap: .5rem; }

.hero-cards { position: relative; width: 100%; height: 37.5rem; display: none; }
@media (min-width: 1024px) { .hero-cards { display: block; } }

.hero-card { position: absolute; width: 20rem; border-radius: 1rem; padding: 1.5rem; background: rgba(255,255,255,.05); backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,.1); transition: transform .5s ease; }
.hero-card:hover { transform: rotate(0deg) !important; }
.hero-card-1 { top: 0; right: 0; transform: rotate(3deg); }
.hero-card-2 { top: 8rem; left: 0; transform: rotate(-3deg); }
.hero-card-3 { bottom: 0; right: 3rem; transform: rotate(6deg); height: 20rem; }
.hero-card-icon-wrap { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.hero-card-icon { width: 2.5rem; height: 2.5rem; border-radius: .5rem; display: flex; align-items: center; justify-content: center; font-size: 1rem; }
.hero-card-tag  { font-size: .75rem; color: var(--slate-400); }
.hero-card-title { font-family: var(--serif); font-size: 1.25rem; color: #fff; margin-bottom: .5rem; }
.hero-card-desc  { font-size: .875rem; color: var(--slate-400); line-height: 1.5; }

/* ===== EXPERTISE ===== */
.expertise-grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .expertise-grid { grid-template-columns: repeat(3, 1fr); } }

.expertise-card  { background: #fff; border-radius: 1rem; padding: 2rem; box-shadow: 0 10px 15px -3px rgba(0,0,0,.06); border: 1px solid var(--slate-100); }
.expertise-icon  { width: 3.5rem; height: 3.5rem; border-radius: .75rem; margin-bottom: 1.5rem; display: flex; align-items: center; justify-content: center; color: var(--gold-400); font-size: 1.5rem; }
.expertise-title { font-family: var(--serif); font-size: 1.25rem; font-weight: 700; color: var(--brand-900); margin-bottom: .75rem; }
.expertise-desc  { color: var(--slate-600); line-height: 1.625; }

/* ===== SERVICES ===== */
.tabs-wrap  { display: flex; justify-content: center; margin-bottom: 3rem; }
.tabs-inner { background: var(--slate-100); padding: .375rem; border-radius: 9999px; display: inline-flex; }
.tab-btn    { padding: .75rem 2rem; border-radius: 9999px; font-size: .875rem; font-weight: 600; color: var(--slate-600); transition: all .2s; display: flex; align-items: center; gap: .5rem; }
.tab-btn:hover { color: var(--brand-900); }
.tab-btn.tab-active { color: #fff; }

.service-content { display: none; }
.service-content.active { display: block; }

.service-two-col { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .service-two-col { grid-template-columns: 1fr 1fr; } }

.service-card-wrap { position: relative; }
.service-card-glow { position: absolute; inset: -1rem; border-radius: 1.5rem; filter: blur(40px); opacity: .5; }
.service-card      { position: relative; background: #fff; border-radius: 1rem; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,.25); }
.service-card-header { height: 16rem; display: flex; align-items: center; justify-content: center; position: relative; }
.service-card-header-bg-icon   { position: absolute; }
.service-card-header-inner     { position: relative; z-index: 10; text-align: center; padding: 2rem; }
.service-card-header-title     { font-family: var(--serif); font-size: 1.5rem; font-weight: 700; color: #fff; }
.service-card-body             { padding: 2rem; }
.service-check-list            { display: flex; flex-direction: column; gap: 1rem; }
.service-check-item            { display: flex; align-items: flex-start; gap: .75rem; }
.check-dot         { width: 1.5rem; height: 1.5rem; border-radius: 9999px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: .125rem; font-size: .7rem; }
.check-dot-green   { background: var(--green-100); color: var(--green-600); }
.check-dot-emerald { background: var(--emerald-100); color: var(--emerald-600); }
.check-item-title  { font-weight: 600; color: var(--brand-900); }
.check-item-sub    { font-size: .875rem; color: var(--slate-500); }

.service-detail     { display: flex; flex-direction: column; gap: 1.5rem; }
.service-pole-label { color: var(--gold-600); font-weight: 600; font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; }
.service-pole-title { font-family: var(--serif); font-size: 1.875rem; font-weight: 700; color: var(--brand-900); margin-top: .5rem; margin-bottom: 1rem; }
.service-pole-desc  { color: var(--slate-600); line-height: 1.625; margin-bottom: 1.5rem; }

.risque-list { display: flex; flex-direction: column; gap: 1rem; }
.risque-item { padding: 1rem; border-radius: .75rem; border: 1px solid var(--slate-200); transition: all .2s; cursor: pointer; }
.risque-item:hover { border-color: var(--gold-400); background: rgba(250,245,230,.3); }
.risque-item-inner { display: flex; align-items: center; justify-content: space-between; }
.risque-item-left  { display: flex; align-items: center; gap: 1rem; }
.risque-icon-box   { width: 3rem; height: 3rem; border-radius: .5rem; background: var(--brand-100); display: flex; align-items: center; justify-content: center; color: var(--brand-700); transition: all .2s; }
.risque-item:hover .risque-icon-box { background: var(--brand-900); color: var(--gold-400); }
.risque-item-title { font-weight: 600; color: var(--brand-900); }
.risque-item-sub   { font-size: .875rem; color: var(--slate-500); }
.risque-arrow      { color: var(--slate-300); transition: color .2s; }
.risque-item:hover .risque-arrow { color: var(--gold-400); }

.sante-grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .sante-grid { grid-template-columns: 1fr 1fr; } }
.sante-card          { padding: 1.25rem; background: var(--slate-50); border-radius: .75rem; border: 1px solid var(--slate-200); transition: border-color .2s; }
.sante-card:hover    { border-color: var(--gold-400); }
.sante-card-icon     { font-size: 1.5rem; color: var(--brand-600); margin-bottom: .75rem; }
.sante-card-title    { font-weight: 600; color: var(--brand-900); margin-bottom: .5rem; }
.sante-card-desc     { font-size: .875rem; color: var(--slate-600); }

.ani-info-box        { background: var(--brand-50); border-radius: .75rem; padding: 1.5rem; border-left: 4px solid var(--gold-400); display: flex; align-items: flex-start; gap: .75rem; }
.ani-info-icon       { color: var(--gold-500); margin-top: .125rem; flex-shrink: 0; }
.ani-info-title      { font-weight: 600; color: var(--brand-900); margin-bottom: .25rem; }
.ani-info-desc       { font-size: .875rem; color: var(--slate-600); }

/* ===== CHAT ===== */
#chat { padding: 6rem 0; background: var(--brand-900); position: relative; overflow: hidden; }
.chat-pattern {
    position: absolute; inset: 0; opacity: .1;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.chat-grid { position: relative; z-index: 10; display: grid; gap: 4rem; align-items: center; }
@media (min-width: 1024px) { .chat-grid { grid-template-columns: 1fr 1fr; } }

.chat-label  { color: var(--gold-400); font-weight: 600; font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; }
.chat-title  { font-family: var(--serif); font-size: 2.25rem; font-weight: 700; color: #fff; margin-top: 1rem; margin-bottom: 1.5rem; }
.chat-desc   { color: var(--slate-300); font-size: 1.125rem; line-height: 1.625; margin-bottom: 2rem; }

.chat-features    { display: flex; flex-direction: column; gap: 1.5rem; }
.chat-feature     { display: flex; align-items: flex-start; gap: 1rem; }
.chat-feature-icon { width: 3rem; height: 3rem; border-radius: .75rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: rgba(255,255,255,.1); font-size: 1.25rem; }
.chat-feature-icon.danger { background: rgba(239,68,68,.2); }
.chat-feature-title { font-weight: 600; color: #fff; font-size: 1.125rem; margin-bottom: .25rem; }
.chat-feature-desc  { color: var(--slate-400); font-size: .875rem; }

.chat-team    { display: flex; align-items: center; gap: 1rem; margin-top: 2.5rem; }
.chat-avatars { display: flex; }
.chat-avatar  { width: 2.5rem; height: 2.5rem; border-radius: 9999px; border: 2px solid var(--brand-900); display: flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 700; color: #fff; }
.chat-avatar + .chat-avatar { margin-left: -.5rem; }
.chat-avatar-1 { background: var(--slate-600); }
.chat-avatar-2 { background: var(--slate-500); }
.chat-avatar-3 { background: var(--slate-400); }
.chat-team-txt { font-size: .875rem; color: var(--slate-400); }
.chat-team-txt strong { color: #fff; }

.chat-widget-wrap { position: relative; }
.chat-widget-glow { position: absolute; inset: -.25rem; background: linear-gradient(to right, var(--gold-400), var(--gold-600)); border-radius: 1rem; filter: blur(4px); opacity: .3; }
.chat-widget      { position: relative; background: var(--slate-800); border-radius: 1rem; border: 1px solid var(--slate-700); overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,.5); }

.chat-header      { background: var(--slate-900); padding: 1rem; border-bottom: 1px solid var(--slate-700); display: flex; align-items: center; justify-content: space-between; }
.chat-header-left { display: flex; align-items: center; gap: .75rem; }
.chat-avatar-wrap { position: relative; }
.chat-agent-avatar { width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: var(--brand-600); display: flex; align-items: center; justify-content: center; color: #fff; font-size: .875rem; }
.chat-status-dot  { position: absolute; bottom: 0; right: 0; width: .75rem; height: .75rem; background: #22c55e; border-radius: 9999px; border: 2px solid var(--slate-900); }
.chat-agent-name  { font-weight: 600; color: #fff; font-size: .875rem; }
.chat-agent-status { font-size: .75rem; color: #4ade80; }
.chat-secure      { display: flex; align-items: center; gap: .5rem; color: var(--slate-400); font-size: .75rem; }
.chat-secure-icon { color: var(--gold-400); }

.chat-messages  { padding: 1.5rem; height: 24rem; overflow-y: auto; background: rgba(30,41,59,.5); display: flex; flex-direction: column; gap: 1rem; }
.chat-date-sep  { display: flex; justify-content: center; }
.chat-date-pill { font-size: .75rem; color: var(--slate-500); background: rgba(51,65,85,.5); padding: .25rem .75rem; border-radius: 9999px; }
.chat-msg       { display: flex; align-items: flex-end; gap: .5rem; }
.chat-msg.right { flex-direction: row-reverse; }
.chat-msg-avatar { width: 2rem; height: 2rem; border-radius: 9999px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: .7rem; }
.chat-msg-avatar.agent { background: var(--brand-600); color: #fff; }
.chat-msg-avatar.user  { background: var(--slate-600); color: #fff; }
.chat-bubble-txt { border-radius: 1rem; padding: .75rem 1rem; max-width: 80%; font-size: .875rem; }
.chat-bubble-txt.agent { background: var(--slate-700); color: var(--slate-200); border-bottom-left-radius: 0; }
.chat-bubble-txt.user  { background: var(--brand-600); color: #fff; border-bottom-right-radius: 0; }
.chat-file      { display: flex; align-items: center; gap: .75rem; background: var(--slate-600); border-radius: .5rem; padding: .75rem; margin-top: .5rem; }
.chat-file-icon { font-size: 1.25rem; color: var(--red-400); }
.chat-file-name { font-size: .875rem; font-weight: 500; color: #fff; }
.chat-file-meta { font-size: .75rem; color: var(--slate-400); }
.chat-file-dl   { color: var(--slate-400); cursor: pointer; transition: color .15s; }
.chat-file-dl:hover { color: #fff; }

.chat-input-bar  { padding: 1rem; background: var(--slate-900); border-top: 1px solid var(--slate-700); display: flex; align-items: center; gap: .75rem; }
.chat-clip-btn   { color: var(--slate-400); transition: color .15s; }
.chat-clip-btn:hover { color: #fff; }
.chat-text-input { flex: 1; background: var(--slate-800); color: #fff; border-radius: 9999px; padding: .625rem 1rem; font-size: .875rem; border: none; outline: none; font-family: var(--sans); }
.chat-text-input::placeholder { color: var(--slate-500); }
.chat-text-input:focus { box-shadow: 0 0 0 2px var(--gold-400); }
.chat-send-btn   { width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: var(--gold-500); color: var(--brand-950); display: flex; align-items: center; justify-content: center; transition: background .15s; }
.chat-send-btn:hover { background: var(--gold-400); }

/* ===== PROCESS ===== */
.process-grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .process-grid { grid-template-columns: repeat(4, 1fr); } }

.process-card-wrap { position: relative; }
.process-card  { background: #fff; border-radius: 1rem; padding: 2rem; box-shadow: 0 10px 15px -3px rgba(0,0,0,.06); border: 1px solid var(--slate-100); height: 100%; position: relative; z-index: 10; }
.process-step  { width: 3rem; height: 3rem; border-radius: 9999px; background: var(--brand-900); color: var(--gold-400); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.25rem; margin-bottom: 1.5rem; }
.process-title { font-family: var(--serif); font-size: 1.25rem; font-weight: 700; color: var(--brand-900); margin-bottom: .75rem; }
.process-desc  { color: var(--slate-600); font-size: .875rem; line-height: 1.625; }
.process-connector { display: none; position: absolute; top: 50%; right: -1rem; width: 2rem; height: 2px; background: var(--gold-400); z-index: 0; }
@media (min-width: 768px) { .process-connector { display: block; } }

/* ===== CONTACT ===== */
#contact { padding: 6rem 0; background: var(--brand-900); position: relative; overflow: hidden; }
.contact-blob-1 { position: absolute; top: 0; left: 25%; width: 24rem; height: 24rem; background: rgba(201,169,110,.1); border-radius: 9999px; filter: blur(64px); }
.contact-blob-2 { position: absolute; bottom: 0; right: 25%; width: 24rem; height: 24rem; background: rgba(96,165,250,.1); border-radius: 9999px; filter: blur(64px); }
.contact-inner { position: relative; z-index: 10; max-width: 56rem; margin: 0 auto; text-align: center; }
.contact-label { color: var(--gold-400); font-weight: 600; font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; }
.contact-title { font-family: var(--serif); font-size: 2.25rem; font-weight: 700; color: #fff; margin-top: 1rem; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .contact-title { font-size: 3rem; } }
.contact-desc  { color: var(--slate-300); font-size: 1.25rem; margin-bottom: 2.5rem; max-width: 42rem; margin-left: auto; margin-right: auto; }

.contact-actions { display: flex; flex-direction: column; gap: 1rem; justify-content: center; margin-bottom: 3rem; }
@media (min-width: 640px) { .contact-actions { flex-direction: row; } }

.btn-contact-primary { padding: 1rem 2rem; background: var(--gold-400); color: var(--brand-950); font-weight: 700; border-radius: .5rem; display: inline-flex; align-items: center; gap: .5rem; box-shadow: 0 20px 25px -5px rgba(201,169,110,.2); transition: background .15s; }
.btn-contact-primary:hover { background: var(--gold-500); }
.btn-contact-ghost   { padding: 1rem 2rem; color: #fff; font-weight: 600; border-radius: .5rem; display: inline-flex; align-items: center; gap: .5rem; transition: background .15s; }
.btn-contact-ghost:hover  { background: rgba(255,255,255,.1); }

.contact-info-grid { display: grid; gap: 1.5rem; text-align: left; max-width: 42rem; margin: 0 auto; }
@media (min-width: 640px) { .contact-info-grid { grid-template-columns: repeat(3, 1fr); } }
.contact-info-card  { background: rgba(255,255,255,.03); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.1); border-radius: .75rem; padding: 1.25rem; }
.contact-info-icon  { color: var(--gold-400); margin-bottom: .5rem; font-size: 1rem; }
.contact-info-title { color: #fff; font-weight: 600; font-size: .875rem; }
.contact-info-body  { color: var(--slate-400); font-size: .75rem; margin-top: .25rem; line-height: 1.5; }

/* ===== FLOATING BUTTON ===== */
#floatBtn {
    position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 50;
    width: 3.5rem; height: 3.5rem; border-radius: 9999px;
    background: var(--gold-500); color: var(--brand-950);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,.4);
    transition: background .15s, transform .15s; font-size: 1.25rem;
}
#floatBtn:hover { background: var(--gold-400); transform: scale(1.1); }
.float-badge { position: absolute; top: -.5rem; right: -.5rem; width: 1.25rem; height: 1.25rem; background: var(--red-500); border-radius: 9999px; border: 2px solid #fff; color: #fff; font-size: 10px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.float-icon-default { display: flex; }
.float-icon-hover   { display: none; }
#floatBtn:hover .float-icon-default { display: none; }
#floatBtn:hover .float-icon-hover   { display: flex; }

/* ===== LEGAL / CONTENT PAGES ===== */
.page-header {
    background: linear-gradient(135deg, #102a43 0%, #1a3a5c 50%, #0d2137 100%);
    padding: 9rem 0 4rem; text-align: center; position: relative; overflow: hidden;
}
.page-header-label { color: var(--gold-400); font-weight: 600; font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; }
.page-header-title { font-family: var(--serif); font-size: 2.5rem; font-weight: 700; color: #fff; margin-top: 1rem; }
@media (min-width: 768px) { .page-header-title { font-size: 3rem; } }
.page-header-divider { width: 6rem; margin: 1.5rem auto 0; }

.legal-content { padding: 4rem 0 6rem; background: #fff; }
.legal-card    { max-width: 52rem; margin: 0 auto; }

.legal-card h2 {
    font-family: var(--serif); font-size: 1.375rem; font-weight: 700;
    color: var(--brand-900); margin: 2.5rem 0 1rem;
    padding-bottom: .75rem; border-bottom: 2px solid var(--slate-100);
    display: flex; align-items: center; gap: .75rem;
}
.legal-card h2:first-of-type { margin-top: 0; }
.legal-card h2 .h2-num {
    width: 2rem; height: 2rem; border-radius: 9999px;
    background: var(--brand-900); color: var(--gold-400);
    font-size: .875rem; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.legal-card p       { color: var(--slate-600); line-height: 1.8; margin-bottom: .875rem; }
.legal-card strong  { color: var(--brand-900); font-weight: 600; }
.legal-card a       { color: var(--gold-600); text-decoration: underline; }
.legal-card a:hover { color: var(--gold-500); }
.legal-card ul      { margin: .5rem 0 1rem 1.5rem; color: var(--slate-600); line-height: 1.8; }
.legal-card ul li   { margin-bottom: .25rem; list-style: disc; }
.legal-card ul li::marker { color: var(--gold-400); }

.legal-info-box { background: var(--brand-50); border-left: 4px solid var(--gold-400); border-radius: 0 .5rem .5rem 0; padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.legal-info-box p { margin: 0; color: var(--brand-900); }

.legal-update { font-size: .875rem; color: var(--slate-400); margin-bottom: 2.5rem; padding: .75rem 1rem; background: var(--slate-50); border-radius: .5rem; border: 1px solid var(--slate-200); }

/* Cookie preferences panel */
.cookie-panel { border: 1px solid var(--slate-200); border-radius: 1rem; overflow: hidden; margin: 1.5rem 0; }
.cookie-panel-header { background: var(--brand-900); padding: 1.25rem 1.5rem; display: flex; align-items: center; justify-content: space-between; }
.cookie-panel-title  { font-family: var(--serif); font-size: 1.125rem; font-weight: 700; color: #fff; }
.cookie-panel-body   { padding: 1.5rem; background: #fff; }
.cookie-item         { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 1rem 0; border-bottom: 1px solid var(--slate-100); }
.cookie-item:last-child { border-bottom: none; }
.cookie-item-info    { flex: 1; }
.cookie-item-name    { font-weight: 600; color: var(--brand-900); margin-bottom: .25rem; }
.cookie-item-desc    { font-size: .875rem; color: var(--slate-500); line-height: 1.5; }
.cookie-item-badge   { font-size: .7rem; font-weight: 600; padding: .2rem .6rem; border-radius: 9999px; display: inline-block; margin-top: .25rem; }
.badge-required      { background: var(--green-100); color: var(--green-600); }
.badge-optional      { background: var(--slate-100); color: var(--slate-500); }

/* Toggle switch */
.toggle-wrap { flex-shrink: 0; display: flex; align-items: center; gap: .5rem; }
.toggle-label { font-size: .75rem; color: var(--slate-500); white-space: nowrap; }
.toggle { position: relative; width: 3rem; height: 1.5rem; }
.toggle input { opacity: 0; width: 0; height: 0; }
.toggle-slider {
    position: absolute; inset: 0; background: var(--slate-200); border-radius: 9999px; cursor: pointer;
    transition: background .2s;
}
.toggle-slider::before {
    content: ''; position: absolute; height: 1.125rem; width: 1.125rem;
    left: .1875rem; bottom: .1875rem; background: #fff; border-radius: 9999px;
    transition: transform .2s; box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.toggle input:checked + .toggle-slider { background: var(--gold-400); }
.toggle input:checked + .toggle-slider::before { transform: translateX(1.5rem); }
.toggle input:disabled + .toggle-slider { opacity: .6; cursor: not-allowed; }

.cookie-save-btn {
    margin-top: 1.5rem; padding: .875rem 2rem; background: var(--brand-900); color: #fff;
    font-weight: 600; border-radius: .5rem; cursor: pointer; transition: background .15s;
    font-family: var(--sans); font-size: .875rem;
}
.cookie-save-btn:hover { background: var(--brand-800); }
.cookie-save-confirm  { display: none; color: var(--green-600); font-size: .875rem; font-weight: 600; margin-top: .75rem; align-items: center; gap: .5rem; }
.cookie-save-confirm.show { display: flex; }
