/* ============================================================
   LEXFLOW WEB-SITE — SHARED STYLE (production)
   Design system: navy #152238 + gold #D4AF37/#C5A55A
   Fonts: Inter + Instrument Serif
   Dark/light theme, 3 languages (EN/IT/RU)
   ============================================================ */

:root{--gold:#D4AF37;--gold-deep:#C5A55A;--navy:#152238;--navy-2:#1C2C48;--surface:#0F1826;--surface-2:#18243A;--border:rgba(212,175,55,0.18);--text:#F2EFE9;--text-dim:#B9C2D0;--text-faint:#7C8AA0;--radius-lg:14px;--radius-xl:20px;--radius-md:10px;--shadow-sm:0 2px 10px rgba(0,0,0,0.25);--shadow-md:0 8px 30px rgba(0,0,0,0.35);}
[data-theme="light"]{--surface:#FBF9F4;--surface-2:#F2EEE3;--navy:#152238;--text:#1C2333;--text-dim:#4B5568;--text-faint:#8891A0;--border:rgba(21,34,56,0.12);--shadow-sm:0 2px 10px rgba(0,0,0,0.06);--shadow-md:0 8px 30px rgba(0,0,0,0.10);}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--surface);color:var(--text);line-height:1.5;transition:background .3s,color .3s;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}

/* ---- NAV ---- */
nav{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:20;backdrop-filter:blur(8px)}
.logo{display:flex;align-items:center;gap:10px;font-weight:600;font-size:18px;letter-spacing:.02em}
.logo img{width:32px;height:32px;border-radius:8px;object-fit:cover}
.logo-mark{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--navy),#0B1220);border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:'Instrument Serif',serif;font-size:16px}
.nav-links{display:flex;gap:22px;font-size:14px;color:var(--text-dim)}
.nav-links a.active{color:var(--gold)}
.nav-links a:hover{color:var(--gold)}
.nav-cta{display:flex;gap:10px;align-items:center;position:relative}
.btn{padding:10px 20px;border-radius:999px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:linear-gradient(135deg,var(--gold-deep),var(--gold));color:#1B1608;border:none}
.btn-gold:hover{box-shadow:0 6px 20px rgba(212,175,55,0.3)}
.btn-ghost{border:1px solid var(--border);color:var(--text)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px}
.icon-btn:hover{border-color:var(--gold);color:var(--gold)}

/* ---- LANGUAGE ---- */
.lang-wrap{position:relative}
.lang-menu{position:absolute;top:52px;right:0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:170px;padding:6px;display:none;flex-direction:column;z-index:30}
.lang-menu.open{display:flex}
.lang-menu button{background:none;border:none;color:var(--text);text-align:left;padding:10px 12px;border-radius:8px;font-size:14px;cursor:pointer;min-height:44px;display:flex;align-items:center;gap:10px}
.lang-menu button:hover,.lang-menu button:focus-visible{background:rgba(212,175,55,0.1)}
.lang-menu button.active-lang{color:var(--gold);font-weight:600}

/* ---- HERO / TYPO ---- */
.page-hero{padding:56px 0 32px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);border:1px solid var(--border);padding:6px 14px;border-radius:999px;margin-bottom:18px}
h1{font-family:'Instrument Serif',serif;font-size:40px;font-weight:400;line-height:1.15;margin-bottom:14px}
h1 em{font-style:italic;color:var(--gold)}
p.lede{color:var(--text-dim);font-size:16px;max-width:600px}
.section{padding:48px 0}
/* Article pages put the byline, then the info box, then the body. With the
   shared 48px section padding on top of the hero's 32px bottom padding and the
   info box's own top margin, ~106px of dead space sat between the byline and the
   body, which pushed the first paragraph below the fold. Tighten just that case. */
.section.section--article{padding-top:24px}
.section-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
h2{font-family:'Instrument Serif',serif;font-size:30px;font-weight:400;margin-bottom:14px}
.section-sub{color:var(--text-dim);max-width:560px;margin-bottom:32px;font-size:15px}
.section-label{display:block}
.section-label::after{display:none}

/* ---- CARDS / GRIDS ---- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:border-color .2s,transform .2s,box-shadow .2s}
.card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.card .icon{width:44px;height:44px;border-radius:var(--radius-md);background:rgba(212,175,55,0.1);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:16px}
.card h3{font-size:16px;font-weight:600;margin-bottom:8px}
.card p{font-size:14px;color:var(--text-dim)}

/* ---- PREMIUM VISUAL (Romanelli imagery) ---- */
.premium-visual{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-md);aspect-ratio:4/3;position:relative;display:flex;align-items:flex-end;padding:18px;background-size:cover;background-position:center}
.premium-visual img.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.premium-visual .tag{background:rgba(212,175,55,0.12);border:1px solid var(--gold);color:var(--gold);font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:6px 12px;border-radius:999px;position:relative;z-index:2}
.tag-cta{display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:background .2s,transform .2s}
.tag-cta:hover{background:rgba(212,175,55,0.25);transform:scale(1.04)}
.dash-card{position:absolute;top:18px;right:18px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;width:150px;box-shadow:var(--shadow-sm);z-index:2}
.dash-card .kpi{font-family:'Instrument Serif',serif;font-size:26px;color:var(--gold)}
.dash-card .kpi-label{font-size:11px;color:var(--text-faint);margin-top:2px}

/* ---- STATS ---- */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center}
.stat-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px;transition:border-color .2s}
.stat-card:hover{border-color:var(--gold)}
.stat-num{font-family:'Instrument Serif',serif;font-size:36px;color:var(--gold)}
.stat-label{font-size:13px;color:var(--text-dim);margin-top:6px}

/* ---- COMPLIANCE ---- */
.compliance-band{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.badge{border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:12px;color:var(--text-dim)}

/* ---- TESTIMONIALS ---- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.testi-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;transition:border-color .2s}
.testi-card:hover{border-color:var(--gold)}
.stars{color:var(--gold);font-size:13px;margin-bottom:12px;letter-spacing:2px}
.testi-quote{font-size:14px;color:var(--text-dim);margin-bottom:18px}
.testi-person{display:flex;align-items:center;gap:12px}
.testi-avatar{width:44px;height:44px;border-radius:50%;background:var(--navy-2);border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--gold);font-weight:600;flex-shrink:0;overflow:hidden;padding:0}
.testi-avatar img{width:100%;height:100%;object-fit:cover}
.testi-avatar-lg{width:56px;height:56px}
.testi-name{font-size:14px;font-weight:600}
.testi-role{font-size:12px;color:var(--text-faint)}

/* ---- HOW IT WORKS ---- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative}
.step-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;position:relative;transition:border-color .2s,transform .2s}
.step-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.step-num{width:36px;height:36px;border-radius:50%;background:var(--gold);color:#1B1608;font-family:'Instrument Serif',serif;font-size:18px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.step-card h3{font-size:17px;font-weight:600;margin-bottom:8px}
.step-card p{font-size:14px;color:var(--text-dim)}
.step-arrow{display:none}
.roles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.role-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;text-align:center;transition:border-color .2s}
.role-card:hover{border-color:var(--gold)}
.role-card .icon{width:44px;height:44px;border-radius:50%;background:rgba(212,175,55,0.1);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;margin:0 auto 12px}
.role-card h3{font-size:14px;font-weight:600;margin-bottom:6px}
.role-card p{font-size:12px;color:var(--text-dim)}
.timeline{border-left:2px solid var(--border);padding-left:24px;display:flex;flex-direction:column;gap:22px;max-width:640px}
.timeline-item{position:relative}
.timeline-item::before{content:"";position:absolute;left:-31px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--gold)}
.timeline-item h3{font-size:15px;font-weight:600;margin-bottom:4px}
.timeline-item p{font-size:13px;color:var(--text-dim)}

/* ---- PRICING ---- */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.price-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}
.price-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.price-card.featured{border-color:var(--gold);box-shadow:var(--shadow-md);position:relative}
.price-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gold);color:#1B1608;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 14px;border-radius:999px;text-transform:uppercase}
.price-tier{font-size:14px;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.price-amount{font-family:'Instrument Serif',serif;font-size:40px;margin-bottom:4px}
.price-amount span{font-size:14px;color:var(--text-faint);font-family:'Inter',sans-serif}
.price-desc{font-size:13px;color:var(--text-dim);margin-bottom:20px}
.price-features{list-style:none;font-size:14px;color:var(--text-dim);display:flex;flex-direction:column;gap:10px;margin-bottom:24px;flex:1}
.price-features li{display:flex;gap:8px;align-items:flex-start}
.price-features li .tick{color:var(--gold);flex-shrink:0}
.compare-table{width:100%;border-collapse:collapse;margin-top:40px;font-size:14px}
.compare-table th,.compare-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border)}
.compare-table th{color:var(--gold);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.compare-table td.hl{color:var(--gold);font-weight:600}
.compare-note{font-size:12px;color:var(--text-faint);margin-top:12px}

/* ---- PRACTICE AREAS ---- */
.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.practice-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;display:flex;align-items:center;gap:14px;transition:border-color .2s,transform .2s}
.practice-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.practice-card .icon{width:44px;height:44px;border-radius:var(--radius-md);background:rgba(212,175,55,0.1);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.practice-card h3{font-size:15px;font-weight:600;margin-bottom:4px}
.practice-card p{font-size:12px;color:var(--text-dim)}

/* ---- FAQ ---- */
.faq-list{display:flex;flex-direction:column;gap:14px;max-width:760px;margin:0 auto}
/* Accordion reveal uses grid rows instead of a fixed max-height cap:
   the approved FAQ answers are long and were being clipped at 400px. */
.faq-item{display:grid;grid-template-rows:auto 0fr;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s,grid-template-rows .3s ease}
.faq-item:hover{border-color:var(--gold)}
.faq-q{width:100%;text-align:left;padding:18px 22px;font-size:15px;font-weight:600;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:14px;cursor:pointer;background:none;border:none;min-height:44px}
.faq-q:hover{color:var(--gold)}
.faq-q:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.faq-q .faq-toggle,.faq-q .chev{color:var(--gold);font-size:20px;flex-shrink:0;transition:transform .2s}
.faq-item.open{grid-template-rows:auto 1fr}
.faq-item.open .faq-q .faq-toggle,.faq-item.open .faq-q .chev{transform:rotate(180deg)}
.faq-a{overflow:hidden;font-size:14px;color:var(--text-dim);line-height:1.6;padding:0 22px}
.faq-item.open .faq-a{padding:0 22px 18px}
.faq-a p{margin:0 0 10px}
.faq-a p:last-child{margin-bottom:0}
.faq-a ul,.faq-a ol{margin:8px 0 12px;padding-left:20px}
.faq-a li{margin-bottom:6px}
.faq-a a{color:var(--gold);text-decoration:underline}
/* Direct-answer lead: the short answer shown first, before the detail */
.faq-answer-lead{font-weight:650;color:var(--text);margin:0 0 10px}
.faq-tag{display:inline-block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--gold);border:1px solid var(--border);border-radius:6px;padding:2px 7px;margin-left:10px;vertical-align:middle}
.faq-tag.verify{color:#e0a83c}
.faq-group{margin:0 0 34px}
.faq-group>h2{font-size:19px;margin:0 0 6px}
.faq-group>.faq-group-sub{font-size:13.5px;color:var(--text-dim);margin:0 0 16px;max-width:760px}

/* ---- GLOSSARY (plain-language technical / privacy / product terms) ---- */
.glossary-note{max-width:760px;margin:0 auto 18px;font-size:13.5px;color:var(--text-dim);line-height:1.6}
.glossary-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;max-width:760px;margin:0 auto 20px}
.glossary-tools input{flex:1;min-width:200px;min-height:44px;padding:11px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:14px;font-family:'Inter',sans-serif}
.glossary-tools input:focus{outline:2px solid var(--gold);outline-offset:1px}
.glossary-count{font-size:12px;color:var(--text-dim)}
.glossary-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:900px;margin:0 auto}
.glossary-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}
.glossary-card:hover{border-color:var(--gold)}
.glossary-card dt{font-size:14.5px;font-weight:700;color:var(--text);margin:0 0 6px}
.glossary-card dd{margin:0;font-size:13.5px;line-height:1.6;color:var(--text-dim)}
.glossary-card .gloss-en{display:block;font-size:11px;color:var(--text-dim);opacity:.75;margin:-2px 0 6px;font-style:italic}
.glossary-empty{grid-column:1/-1;text-align:center;color:var(--text-dim);font-size:13.5px;padding:22px}
@media(max-width:760px){.glossary-list{grid-template-columns:1fr}}

/* ---- INTAKE FORM ---- */
.intake-form{display:flex;flex-direction:column;gap:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px}
.intake-row{display:flex;gap:14px;flex-wrap:wrap}
.intake-row input{flex:1;min-width:200px}
.intake-form input,.intake-form textarea{padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:rgba(255,255,255,0.04);color:var(--text);font-size:14px;min-height:44px;font-family:'Inter',sans-serif}
.intake-form textarea{resize:vertical;width:100%}
.intake-form input:focus,.intake-form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.intake-note{font-size:12px;color:var(--text-faint);text-align:center}

/* ---- CONTACT ---- */
/* The home contact form uses the same rhythm as .intake-form and .request-form, but
   it sits inside a .cta-band that already supplies the surface, border and padding,
   so it deliberately carries none of its own.

   This rule was missing entirely. With no .contact-form selector anywhere, the form
   stayed display:block, so its children stacked as plain block siblings with no
   margin: the name/email row sat flush against the message box (measured gap 0px)
   and the fields rendered with browser default styling (padding:0, a 2px inset
   border, square corners) instead of the site's own controls. */
.contact-form{display:flex;flex-direction:column;gap:14px}
.contact-form input,.contact-form textarea{padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:rgba(255,255,255,0.04);color:var(--text);font-size:14px;min-height:44px;font-family:'Inter',sans-serif;width:100%}
.contact-form textarea{resize:vertical;min-height:110px}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.faq-contact-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;transition:all .2s;text-decoration:none;min-height:44px}
.faq-contact-btn.whatsapp{background:rgba(37,211,102,0.12);color:#25D366;border:1px solid rgba(37,211,102,0.35)}
.faq-contact-btn.whatsapp:hover{background:rgba(37,211,102,0.22)}
.faq-contact-btn.email{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}
.faq-contact-btn.email:hover{color:var(--gold);border-color:var(--gold)}

/* ---- COOKIE BANNER (compact) ---- */
.cookie-banner{position:fixed;bottom:16px;left:16px;right:16px;max-width:560px;margin:0 auto;background:var(--surface-2);border:1px solid var(--gold);border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;z-index:9001;box-shadow:var(--shadow-md);font-size:12px;line-height:1.4}
.cookie-banner a{color:var(--gold);text-decoration:underline}
.cookie-actions{display:flex;gap:8px}
.cookie-actions .btn{padding:6px 12px;font-size:12px;min-height:32px}
@media(max-width:640px){.cookie-banner{flex-direction:column;text-align:center}}

/* ---- ANIMATIONS / REVEAL ---- */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.premium-visual img.cover{transition:transform .6s cubic-bezier(.16,1,.3,1)}
.premium-visual:hover img.cover{transform:scale(1.04)}
.hero-title-tail{color:var(--gold);font-style:italic}
.cta-band{background:linear-gradient(135deg,var(--navy),#0B1220);border:1px solid var(--gold);border-radius:var(--radius-xl);padding:44px;text-align:center;margin:0 24px}
.cta-band h2{color:var(--text)}
.cta-band p{color:var(--text-dim);margin-bottom:22px}
footer{padding:36px 24px;border-top:1px solid var(--border);margin-top:44px}
.footer-inner{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.footer-social{display:flex;gap:14px}
.footer-social a{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:16px;transition:all .2s}
.footer-social a:hover{color:var(--gold);border-color:var(--gold);transform:translateY(-2px)}
.footer-credit{font-size:12px;color:var(--text-faint)}
.footer-text{font-size:13px;color:var(--text-faint)}

/* ---- ACCESSIBILITY ---- */
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ---- WHATSAPP / CHAT FLOATS ---- */
.wa-float{position:fixed;bottom:84px;right:24px;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:var(--shadow-md);z-index:50;border:none;cursor:pointer;transition:transform .2s}
.wa-float:hover{transform:translateY(-2px)}
.wa-float:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wa-float:hover{transform:scale(1.08)}
.chat-float{position:fixed;bottom:24px;right:92px;width:56px;height:56px;border-radius:50%;background:var(--gold);color:#1B1608;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:var(--shadow-md);z-index:50;border:none;cursor:pointer;transition:transform .2s}
.chat-float:hover{transform:scale(1.08)}
.chat-panel{position:fixed;bottom:92px;right:24px;width:300px;max-width:calc(100vw - 48px);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:none;flex-direction:column;overflow:hidden;z-index:50}
.chat-panel.open{display:flex}
.chat-header{background:var(--navy);color:#fff;padding:14px 16px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.chat-body{padding:14px;font-size:13px;color:var(--text-dim);min-height:80px}
.chat-input-row{display:flex;border-top:1px solid var(--border)}
.chat-input-row input{flex:1;border:none;background:none;padding:12px;font-size:13px;color:var(--text);min-height:44px}
.chat-input-row button{border:none;background:none;color:var(--gold);padding:0 14px;cursor:pointer;font-size:14px;min-height:44px}

/* ---- ELISA DIGITAL INTAKE ASSISTANT (clone of a-Lexy LP widget) ---- */
/* ═══════════════════════════════════════════
   ELISA ASSISTANT WIDGET
   Cloned from the a-Lexy LP (#alWidget / #alLaunch):
   positions, panel dimensions, header, bubbles, chips,
   composer, thinking indicator, all states.
═══════════════════════════════════════════ */
.elisa-widget{position:fixed;right:20px;bottom:20px;z-index:9000;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.elisa-launcher{display:inline-flex;align-items:center;gap:9px;padding:8px 16px 8px 8px;border-radius:999px;background:linear-gradient(135deg,#1c2b42 0%,#152238 100%);color:#fff;box-shadow:0 14px 34px rgba(0,0,0,.42);font-size:13px;font-weight:700;letter-spacing:.01em;border:1px solid var(--gold-dim,rgba(197,165,90,.45));cursor:pointer;transition:transform .2s,box-shadow .2s}
.elisa-launcher:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(0,0,0,.5)}
.elisa-launcher:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.elisa-launcher-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid rgba(197,165,90,.85);flex-shrink:0;background:#2a3a52}
.elisa-panel{width:min(370px,calc(100vw - 28px));max-height:min(78vh,660px);display:none;flex-direction:column;border-radius:22px;overflow:hidden;border:1px solid #2c3f5c;background:#152238;box-shadow:0 22px 64px rgba(0,0,0,.55)}
.elisa-widget.open .elisa-panel{display:flex;animation:elisa-in .22s cubic-bezier(.16,1,.3,1)}
@keyframes elisa-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.elisa-panel{animation:none!important}.elisa-launcher{transition:none}}
.elisa-header{display:flex;align-items:center;gap:11px;padding:14px 15px;background:linear-gradient(135deg,#1c2b42 0%,#20344f 100%);border-bottom:1px solid #2c3f5c;flex-shrink:0}
.elisa-header-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid rgba(197,165,90,.8);flex-shrink:0;background:#2a3a52}
.elisa-header-info{min-width:0;flex:1}
.elisa-header-info h3{font-size:15px;font-weight:700;margin:0;line-height:1.15;color:#fff;letter-spacing:.01em}
.elisa-role{font-size:11px;margin:2px 0 0;opacity:.72;line-height:1.25;color:#dbe4f0}
.elisa-status{font-size:11px;font-weight:600;margin:3px 0 0;opacity:.9;color:#bfe9d8;line-height:1.2}
.elisa-online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#25bd72;margin-right:5px;vertical-align:middle}
.elisa-controls{display:flex;gap:6px;flex-shrink:0;align-self:flex-start}
.elisa-control{width:28px;height:28px;min-width:28px;border-radius:50%;border:none;background:rgba(255,255,255,.15);color:#fff;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.elisa-control:hover{background:rgba(255,255,255,.3)}
.elisa-control:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.elisa-body{padding:14px 15px 16px;background:#152238;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.elisa-log{display:flex;flex-direction:column;gap:9px;max-height:210px;overflow-y:auto;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){.elisa-log{scroll-behavior:auto}}
.elisa-row{display:flex;align-items:flex-start;gap:9px}
.elisa-row.user{justify-content:flex-end}
.elisa-msg-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1px solid rgba(197,165,90,.6);flex-shrink:0;background:#2a3a52;margin-top:2px}
.elisa-bubble{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.07);color:#e8ecf5;padding:10px 12px;border-radius:14px;font-size:13px;line-height:1.45;max-width:250px}
.elisa-bubble.user{background:rgba(197,165,90,.16);border-color:rgba(197,165,90,.4);color:#f5ecd8}
.elisa-bubble.sys{background:rgba(37,189,114,.12);border-color:rgba(37,189,114,.34);color:#bfe9d8;max-width:100%}
.elisa-thinking{display:flex;align-items:center;gap:8px;font-size:11px;color:rgba(232,236,245,.6);margin-left:35px}
.elisa-dots{display:inline-flex;gap:3px}
.elisa-dots i{width:5px;height:5px;border-radius:50%;background:#9d8fff;animation:elisa-dot 1.1s infinite}
.elisa-dots i:nth-child(2){animation-delay:.16s}
.elisa-dots i:nth-child(3){animation-delay:.32s}
@keyframes elisa-dot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.elisa-dots i{animation:none;opacity:.7}}
.elisa-chips-label{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:rgba(232,236,245,.5);font-weight:700;margin:0}
.elisa-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.elisa-chip{background:transparent;color:#c9bda0;border:1px solid rgba(197,165,90,.5);border-radius:999px;padding:7px 11px;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .16s;min-height:32px}
.elisa-chip:hover{border-color:var(--gold);color:#f0e4c8;background:rgba(197,165,90,.1)}
.elisa-chip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.elisa-composer{display:flex;gap:7px;align-items:stretch}
.elisa-composer input{flex:1;min-width:0;margin:0;background:#fff;color:#182536;border:1px solid #2c3f5c;border-radius:10px;padding:11px 12px;font-size:12.5px;font-family:'Inter',sans-serif;min-height:44px}
.elisa-composer input:focus{outline:2px solid var(--gold);outline-offset:1px}
.elisa-send{background:#25bd72;color:#fff;border:none;border-radius:10px;padding:0 14px;font-weight:700;font-size:12.5px;cursor:pointer;min-height:44px;white-space:nowrap;transition:background .16s}
.elisa-send:hover{background:#1fa662}
.elisa-send:disabled{opacity:.6;cursor:not-allowed}
.elisa-send:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.elisa-struct{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:0}
.elisa-struct>summary{font-size:11.5px;font-weight:700;color:#c9bda0;padding:11px 12px;cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center}
.elisa-struct>summary::-webkit-details-marker{display:none}
.elisa-struct>summary:after{content:'▾';margin-left:auto;transition:transform .2s;color:var(--gold)}
.elisa-struct[open]>summary:after{transform:rotate(180deg)}
.elisa-struct-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 12px 12px}
.elisa-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.elisa-field label,.elisa-field-label{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:rgba(232,236,245,.62);font-weight:700}
.elisa-field select{background:#1c2b42;border:1px solid #2c3f5c;color:#e8ecf5;border-radius:9px;padding:9px 10px;font-size:12px;font-family:'Inter',sans-serif;width:100%;min-height:44px}
.elisa-field select:focus{outline:2px solid var(--gold);outline-offset:1px}
.elisa-urg-chips{display:flex;gap:5px;flex-wrap:wrap}
.elisa-urg{background:transparent;color:#c9bda0;border:1px solid rgba(197,165,90,.45);border-radius:999px;padding:7px 10px;font-size:11px;font-weight:600;cursor:pointer;min-height:36px;transition:all .16s}
.elisa-urg:hover{border-color:var(--gold);color:#f0e4c8}
.elisa-urg.is-active{background:linear-gradient(135deg,#c5a55a,#a8893f);color:#152238;border-color:transparent}
.elisa-urg:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.elisa-disclaimer{font-size:10.5px;line-height:1.45;color:rgba(232,236,245,.55);margin:0;font-style:italic}
.elisa-wa{display:inline-flex;justify-content:center;align-items:center;min-height:44px;background:#20c66b;color:#fff;border-radius:11px;padding:11px 13px;font-weight:700;font-size:13px;text-decoration:none}
.elisa-wa:hover{background:#1bb25f}
.elisa-wa:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.elisa-escalate{font-size:10.5px;color:rgba(232,236,245,.55);margin:0;text-align:center}
.elisa-privacy{font-size:10px;line-height:1.45;color:rgba(232,236,245,.48);margin:0}
.elisa-privacy a{color:#c9bda0;text-decoration:underline}
.elisa-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Mobile: LP keeps the panel inside the viewport with a 12px gutter */
@media(max-width:520px){
  .elisa-widget{right:12px;bottom:12px;left:12px;align-items:stretch}
  .elisa-panel{width:100%;max-height:74vh}
  .elisa-struct-grid{grid-template-columns:1fr}
  .elisa-log{max-height:150px}
}

/* ---- RESPONSIVE ---- */
@media(max-width:860px){
  .nav-links{display:none}
  h1{font-size:30px}
  .grid-3,.stats-grid,.testi-grid,.pricing-grid,.practice-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .roles-grid{grid-template-columns:repeat(2,1fr)}
  .compare-table{font-size:12px}
  .chat-float{right:88px}
  .hero-split{grid-template-columns:1fr}
  .cta-band{margin:0;padding:32px 20px}
}
@media(max-width:480px){
  .roles-grid{grid-template-columns:1fr}
  .nav-cta .btn-ghost{display:none}
  .lang-menu{right:-40px}
}


/* ---- REQUEST / CONTACT FORM (shared by home, blog and articles) ---- */
.request-form{display:flex;flex-direction:column;gap:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;max-width:640px;margin:0 auto;text-align:left}
.request-row{display:flex;gap:14px;flex-wrap:wrap}
.request-row>*{flex:1;min-width:200px}
.request-form input,.request-form textarea,.request-form select{padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:rgba(255,255,255,0.04);color:var(--text);font-size:14px;min-height:44px;font-family:'Inter',sans-serif;width:100%}
.request-form textarea{resize:vertical;min-height:110px}
.request-form input:focus,.request-form textarea:focus,.request-form select:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.request-form label.check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--text-dim);line-height:1.5;min-height:44px;cursor:pointer}
.request-form label.check input{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--gold)}
.request-form .req{color:var(--gold)}
.request-form .request-actions{display:flex;justify-content:center}
.request-warning{margin:0;padding:11px 14px;border-radius:var(--radius-md);font-size:13px;background:rgba(224,168,60,.12);border:1px solid rgba(224,168,60,.4);color:#e0a83c}
.request-result{padding:26px 24px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-2);text-align:center}
.request-result h3{font-size:17px;margin:0 0 8px}
.request-result p{margin:0;font-size:13.5px;color:var(--text-dim);line-height:1.6}
.request-result.ok{border-color:rgba(37,189,114,.45)}
.request-result.ok h3{color:#25bd72}
.request-result.err{border-color:rgba(224,90,90,.45)}
.request-result.err h3{color:#e05a5a}
.request-result.warn{border-color:rgba(224,168,60,.45)}
.request-result.warn h3{color:#e0a83c}
.request-result-wa{display:inline-flex;margin-top:16px}
@media(max-width:520px){
  .request-form{padding:20px}
  .wa-float{bottom:80px;right:18px;width:50px;height:50px;font-size:23px}
}


/* ---- ELISA STEP FLOW (contact first, then matter, then description) ---- */
.elisa-step{display:flex;flex-direction:column;gap:9px;padding:12px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.elisa-step-title{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:#c9bda0;font-weight:700;margin:0}
.elisa-field input,.elisa-field textarea{background:#fff;color:#182536;border:1px solid #2c3f5c;border-radius:9px;padding:10px 11px;font-size:12.5px;font-family:'Inter',sans-serif;width:100%;min-height:44px}
.elisa-field textarea{resize:vertical;min-height:76px;line-height:1.45}
.elisa-field input:focus,.elisa-field textarea:focus{outline:2px solid var(--gold);outline-offset:1px}
.elisa-next{background:linear-gradient(135deg,#c5a55a,#a8893f);color:#152238;border:none;border-radius:10px;padding:0 14px;font-weight:700;font-size:12.5px;cursor:pointer;min-height:44px;transition:filter .16s}
.elisa-next:hover{filter:brightness(1.06)}
.elisa-next:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.elisa-next.ghost{background:transparent;color:#c9bda0;border:1px solid rgba(197,165,90,.5)}
.elisa-warn{margin:0;font-size:11.5px;line-height:1.45;color:#f0c869}
.elisa-step .elisa-chips{margin:0}
@media(max-width:520px){.elisa-step{padding:10px}}

/* ---- Italian runs longer than English; tighten the nav so the sticky bar stays compact ---- */
:lang(it) .nav-links,.nav-links:lang(it){font-size:12.5px;gap:17px;letter-spacing:-.005em}
:lang(ru) .nav-links,.nav-links:lang(ru){font-size:12.5px;gap:17px;letter-spacing:-.005em}
:lang(it) .nav-cta .btn{font-size:12.5px;padding:9px 14px}
:lang(ru) .nav-cta .btn{font-size:12.5px;padding:9px 14px}

.footer-legal{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center;font-size:12.5px;color:var(--text-faint)}
.footer-legal a{color:var(--text-dim);text-decoration:none;transition:color .2s}
.footer-legal a:hover{color:var(--gold)}
.fl-sep{color:var(--border);opacity:.8;font-size:10px}

main.legal{margin:0 auto;padding:84px 20px 60px;max-width:860px}
main.legal table{width:100%;border-collapse:collapse;margin:18px 0;font-size:13.5px}
main.legal th,main.legal td{border:1px solid var(--border,rgba(212,175,55,.18));padding:10px 12px;text-align:left;vertical-align:top}
main.legal th{background:var(--surface-2,#18243A);font-weight:600}
main.legal td{color:var(--text-dim,#B9C2D0)}
.legal-note{border-left:3px solid var(--gold,#D4AF37);padding:10px 14px;background:rgba(212,175,55,.08);border-radius:0 8px 8px 0;font-size:13px;color:var(--text-dim,#B9C2D0)}
